<?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>9976</bug_id>
          
          <creation_ts>2006-07-17 13:07:50 -0700</creation_ts>
          <short_desc>Fix negative width issue in Hixie&apos;s test</short_desc>
          <delta_ts>2007-06-26 01:56:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://hixie.ch/tests/adhoc/svg/error/013.xml</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6018</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>50195</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-17 13:07:50 -0700</bug_when>
    <thetext>Fix negative width issues in test error/013.xml of Hixie&apos;s svg
tests, see bug 6018.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50318</commentid>
    <comment_count>1</comment_count>
      <attachid>9563</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-19 00:29:46 -0700</bug_when>
    <thetext>Created attachment 9563
First attempt

As the ChangeLog says, handle negative widths/heights properly.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51180</commentid>
    <comment_count>2</comment_count>
      <attachid>9770</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-31 01:11:32 -0700</bug_when>
    <thetext>Created attachment 9770
Now with testcase

I didnt realize the testcase was needed for review! But OTOH I could have known :) So
in future I&apos;ll try to include it.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51183</commentid>
    <comment_count>3</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2006-07-31 01:27:35 -0700</bug_when>
    <thetext>Note: As far as I can tell from reading the patch, this fix doesn&apos;t actually completely fix the original test case. (In particular, the last part of the pass condition isn&apos;t addressed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51187</commentid>
    <comment_count>4</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-07-31 02:40:48 -0700</bug_when>
    <thetext>Hi,

(In reply to comment #3)
&gt; Note: As far as I can tell from reading the patch, this fix doesn&apos;t actually
&gt; completely fix the original test case. (In particular, the last part of the
&gt; pass condition isn&apos;t addressed.)

There is no code for the svg error reporting at all, besides the fprintf error
reporting which is mostly useful only to developers. Do you have suggestions
on how to signal errors visually? I heard w3c recommends a checkerboard pattern,
but I could be wrong...
Cheers,

Rob.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51546</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-08-02 23:57:05 -0700</bug_when>
    <thetext>Despite this not being a complete fix for all issues in the test, I think it is still worth landing. Perhaps with a FIXME in the appropriate place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51547</commentid>
    <comment_count>6</comment_count>
      <attachid>9770</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-08-02 23:58:23 -0700</bug_when>
    <thetext>Comment on attachment 9770
Now with testcase

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52334</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-12 03:37:53 -0700</bug_when>
    <thetext>Rob, are you going to land this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52344</commentid>
    <comment_count>8</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-12 04:45:12 -0700</bug_when>
    <thetext>Hi Eric,

(In reply to comment #7)
&gt; Rob, are you going to land this?
&gt; 

Yes, I am in the process of making my mbp
a triple-boot machine, but when I find some time
I&apos;ll land it.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52427</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-08-12 14:57:40 -0700</bug_when>
    <thetext>Hi Eric,

(In reply to comment #7)
&gt; Rob, are you going to land this?
&gt; 

Update, there is actually a different rendering for missing-xlink.svg that shows a
bug, the error handling code creates a xhtml doc, the svg element should calculate
now against the parent (body), not the viewport anymore. Because we have no code for
this it defaults to w/h zero, and the patch doesnt render in this case. I&apos;ll see if I can come
up with code to calculate against parent, but until that time I think it is impossible to land this patch.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52599</commentid>
    <comment_count>10</comment_count>
      <attachid>9770</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-08-14 23:33:04 -0700</bug_when>
    <thetext>Comment on attachment 9770
Now with testcase

Since rob has since found issues with his own patch, I&apos;m removing the r+ for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55356</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-12 23:22:52 -0700</bug_when>
    <thetext>/me pokes rob to see if he wants to take another go at fixing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55396</commentid>
    <comment_count>12</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-13 07:29:17 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; /me pokes rob to see if he wants to take another go at fixing this patch.

Looking at it tonight.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55495</commentid>
    <comment_count>13</comment_count>
      <attachid>10555</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-14 05:48:51 -0700</bug_when>
    <thetext>Created attachment 10555
Another attempt

This patch now should also fix calculating width/height against non-svg viewports.
Also it seems to me viewportElement member var is not needed anymore, so I removed it.
Let me know what you think about this, and how we can improve the Lengths further.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55524</commentid>
    <comment_count>14</comment_count>
      <attachid>10555</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-14 15:27:47 -0700</bug_when>
    <thetext>Comment on attachment 10555
Another attempt

Not safe:
+    if (viewportElement-&gt;isSVGElement()) {
         const SVGSVGElement* svg = static_cast&lt;const SVGSVGElement*&gt;(viewportElement);

Having SVGLength objects have a context is still the wrong model.  They shouldn&apos;t need to be &quot;smart tearoffs&quot;, they should just be containers of length data, other classes should have the smarts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55878</commentid>
    <comment_count>15</comment_count>
      <attachid>10555</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-18 21:15:51 -0700</bug_when>
    <thetext>Comment on attachment 10555
Another attempt

I&apos;m not sure why I didn&apos;t r- this before.  The unsafe cast would prevent this from landing.

However, I think it&apos;s also time to finally fix the SVGLength issue, and maybe that part of this patch should be broken off into a separate patch.  To fix SVGLength would require all uses of x()-&gt;doSomethingToTheLength() to be removed.  and setX(new SVGLength()) to be used instead.  Better yet would be to stop using Length* and instead store the values on the objects themselves.

Let&apos;s talk over IRC, maybe we can find a smaller piece to chop off for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55884</commentid>
    <comment_count>16</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-19 00:29:54 -0700</bug_when>
    <thetext>Hi Eric,

(In reply to comment #31)
&gt; (From update of attachment 10574 [edit])
&gt; I&apos;m still not a big fan of needing a separate class &quot;CursorList&quot; to hold all
&gt; the nodes, when the individual CursorData nodes could just form a singly linked
&gt; list and know how to delete their &quot;next&quot; pointer when they are themselves
&gt; deleted.
&gt; 
&gt; This would also remove the need for RenderStyle::addCursor...

I think I agree with ap, seems a bit silly to redo linked lists multiple times. (See earlier entries)

&gt; +using namespace SVGNames;
&gt; 
&gt; needs to be inside a SVG_SUPPORT block in FrameView.cpp

Fixed locally.
 
&gt; Is there any need to check the type here?
&gt; +            value = valueList-&gt;next(); // comma

Will check.
 
&gt; We&apos;ll need some more tests.

For testing css3 cursor syntax?
 
&gt; It&apos;s not clear to me how the CursorList is ever destroyed.

It is referenced by a RefPtr, so it should destroy itself whenever RenderStyle
gets deleted(but taking into account refcounting ofcourse).
 
&gt; It&apos;s also not clear to me that two divs, one inside the other, both which use
&gt; independent cursor fallback will properly function (i.e. when is the cursors()
&gt; list cleared?)

Can you give an example? I tried but could not get it right.

&gt; I don&apos;t think we can land this without at least answering the leak question.

Sure, np. I did some --leaks runs, didnt see a problem, but will do some bigger
tests now.
Cheers,

Rob. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55886</commentid>
    <comment_count>17</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-09-19 00:34:34 -0700</bug_when>
    <thetext>Hi Eric,

(In reply to comment #31)
&gt; (From update of attachment 10574 [edit])
&gt; I&apos;m still not a big fan of needing a separate class &quot;CursorList&quot; to hold all
&gt; the nodes, when the individual CursorData nodes could just form a singly linked
&gt; list and know how to delete their &quot;next&quot; pointer when they are themselves
&gt; deleted.
&gt; 
&gt; This would also remove the need for RenderStyle::addCursor...

I think I agree with ap, seems a bit silly to redo linked lists multiple times. (See earlier entries)

&gt; +using namespace SVGNames;
&gt; 
&gt; needs to be inside a SVG_SUPPORT block in FrameView.cpp

Fixed locally.
 
&gt; Is there any need to check the type here?
&gt; +            value = valueList-&gt;next(); // comma

Will check.
 
&gt; We&apos;ll need some more tests.

For testing css3 cursor syntax?
 
&gt; It&apos;s not clear to me how the CursorList is ever destroyed.

It is referenced by a RefPtr, so it should destroy itself whenever RenderStyle
gets deleted(but taking into account refcounting ofcourse).
 
&gt; It&apos;s also not clear to me that two divs, one inside the other, both which use
&gt; independent cursor fallback will properly function (i.e. when is the cursors()
&gt; list cleared?)

Can you give an example? I tried but could not get it right.

&gt; I don&apos;t think we can land this without at least answering the leak question.

Sure, np. I did some --leaks runs, didnt see a problem, but will do some bigger
tests now.
Cheers,

Rob. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42575</commentid>
    <comment_count>18</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-12-10 12:39:31 -0800</bug_when>
    <thetext>This should probably be (finally) done after SVGLength redesign is done.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7471</commentid>
    <comment_count>19</comment_count>
      <attachid>15043</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-06-14 23:43:55 -0700</bug_when>
    <thetext>Created attachment 15043
Retrying this one.

I think because of a lot of other fixes have gone in this one should work now.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6281</commentid>
    <comment_count>20</comment_count>
      <attachid>15043</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-06-25 20:27:05 -0700</bug_when>
    <thetext>Comment on attachment 15043
Retrying this one.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6237</commentid>
    <comment_count>21</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2007-06-26 01:56:06 -0700</bug_when>
    <thetext>Landed in 23789.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9563</attachid>
            <date>2006-07-19 00:29:46 -0700</date>
            <delta_ts>2006-07-31 01:11:32 -0700</delta_ts>
            <desc>First attempt</desc>
            <filename>9976.diff</filename>
            <type>text/plain</type>
            <size>4275</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTUyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDYtMDctMTkgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWd6
aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3NgorICAgICAgICBGaXggbmVn
YXRpdmUgd2lkdGggaXNzdWUgaW4gSGl4aWUncyB0ZXN0CisKKyAgICAgICAgUmVmdXNlIHRvIHJl
bmRlciBzdmcgY29udGFpbmVycyB3aXRoIHplcm8gb3IgbmVnYXRpdmUgd2lkdGgvaGVpZ2h0Lgor
ICAgICAgICBGaXggU1ZHU1ZHRWxlbWVudDo6d2lkdGggYW5kIFNWR1NWR0VsZW1lbnQ6OmhlaWdo
dCBjYWxjdWxhdGlvbiB0bworICAgICAgICBtYWtlIHRoaXMgcG9zc2libGUuCisKKyAgICAgICAg
KiBrY2FudmFzL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdDb250YWluZXI6OnBhaW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHSGVscGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQpOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1NWR0VsZW1lbnQ6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6
OmhlaWdodCk6CisKIDIwMDYtMDctMTggIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeCBmb3IgcmFkYXIgNDYxMTI4NywgbWFrZSByZXNpemFibGUgdGV4dCBmaWVs
ZHMgb3B0LWluIHJhdGhlciB0aGFuCkluZGV4OiBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29u
dGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29udGFp
bmVyLmNwcAkocmV2aXNpb24gMTU1MjEpCisrKyBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29u
dGFpbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCwxMCBAQCB2b2lkIFJlbmRl
clNWR0NvbnRhaW5lcjo6cGFpbnQoUGFpbnRJbmZvCiAgICAgaWYgKHBhaW50SW5mby5waGFzZSAh
PSBQYWludFBoYXNlRm9yZWdyb3VuZCB8fCAhZHJhd3NDb250ZW50cygpIHx8IHN0eWxlKCktPnZp
c2liaWxpdHkoKSA9PSBISURERU4pCiAgICAgICAgIHJldHVybjsKICAgICAKKyAgICAvLyBBIHZh
bHVlIG9mIHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9mIHRoZSBlbGVtZW50LiAKKyAgICBpZiAo
c3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQoKSktPmlzU1ZHKCkgJiYgKHZpZXdwb3J0
KCkud2lkdGgoKSA8PSAwLiB8fCB2aWV3cG9ydCgpLmhlaWdodCgpIDw9IDAuKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgS0NhbnZhc0ZpbHRlciAqZmlsdGVyID0gZ2V0RmlsdGVyQnlJZChkb2N1
bWVudCgpLCBzdHlsZSgpLT5zdmdTdHlsZSgpLT5maWx0ZXIoKS5taWQoMSkpOwogICAgIGlmICgh
Zmlyc3RDaGlsZCgpICYmICFmaWx0ZXIpCiAgICAgICAgIHJldHVybjsgLy8gU3BlYzogZ3JvdXBz
IHcvbyBjaGlsZHJlbiBzdGlsbCBtYXkgcmVuZGVyIGZpbHRlciBjb250ZW50LgpJbmRleDogV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdIZWxwZXIuY3BwCShyZXZpc2lvbiAxNTUyMSkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0hlbHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgZmxvYXQgU1ZH
SGVscGVyOjpQZXJjZW50YWdlT2ZWaWV3cG9ydChmbAogIAogICAgIGlmICh2aWV3cG9ydEVsZW1l
bnQtPmlzU1ZHKCkpIHsKICAgICAgICAgY29uc3QgU1ZHU1ZHRWxlbWVudCogc3ZnID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgU1ZHU1ZHRWxlbWVudCo+KHZpZXdwb3J0RWxlbWVudCk7Ci0gICAgICAgIGlm
IChzdmctPmhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIpKSB7CisgICAgICAgIGlm
IChzdmctPmhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIpICYmIHN2Zy0+dmlld0Jv
eCgpLT5iYXNlVmFsKCktPndpZHRoKCkgPiAwICYmIHN2Zy0+dmlld0JveCgpLT5iYXNlVmFsKCkt
PmhlaWdodCgpID4gMCkgewogICAgICAgICAgICAgd2lkdGggPSBzdmctPnZpZXdCb3goKS0+YmFz
ZVZhbCgpLT53aWR0aCgpOwogICAgICAgICAgICAgaGVpZ2h0ID0gc3ZnLT52aWV3Qm94KCktPmJh
c2VWYWwoKS0+aGVpZ2h0KCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc3ZnLT53aWR0aCgpLT5iYXNl
VmFsKCktPnVuaXRUeXBlKCkgPT0gU1ZHTGVuZ3RoOjpTVkdfTEVOR1RIVFlQRV9QRVJDRU5UQUdF
IHx8CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1MjEp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODQsOCArODQsOSBAQCBTVkdBbmltYXRlZExlbmd0aCAqU1ZHU1ZHRWxlbWVudDo6d2lkdGgo
CiB7CiAgICAgaWYgKCFtX3dpZHRoKSB7CiAgICAgICAgIFN0cmluZyB0ZW1wKCIxMDAlIik7Ci0g
ICAgICAgIGNvbnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0ID0gb3duZXJEb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSA9PSB0aGlzID8gdGhpcyA6IHZpZXdwb3J0RWxlbWVudCgpOwotICAgICAg
ICBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZExlbmd0aD4obV93aWR0aCwgKFNWR1N0eWxlZEVsZW1l
bnQgKilvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMgPyAwIDogdGhp
cywgTE1fV0lEVEgsIHZpZXdwb3J0KTsKKyAgICAgICAgYm9vbCBvdXRlclN2ZyA9ICFvd25lckRv
Y3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpIHx8IG93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRF
bGVtZW50KCkgPT0gdGhpczsKKyAgICAgICAgY29uc3QgU1ZHRWxlbWVudCAqdmlld3BvcnQgPSBv
dXRlclN2ZyA/IHRoaXMgOiB2aWV3cG9ydEVsZW1lbnQoKTsKKyAgICAgICAgbGF6eV9jcmVhdGU8
U1ZHQW5pbWF0ZWRMZW5ndGg+KG1fd2lkdGgsIG91dGVyU3ZnID8gMCA6IHRoaXMsIExNX1dJRFRI
LCB2aWV3cG9ydCk7CiAgICAgICAgIG1fd2lkdGgtPmJhc2VWYWwoKS0+c2V0VmFsdWVBc1N0cmlu
Zyh0ZW1wLmltcGwoKSk7CiAgICAgfQogCkBAIC05Niw4ICs5Nyw5IEBAIFNWR0FuaW1hdGVkTGVu
Z3RoICpTVkdTVkdFbGVtZW50OjpoZWlnaHQKIHsKICAgICBpZiAoIW1faGVpZ2h0KSB7CiAgICAg
ICAgIFN0cmluZyB0ZW1wKCIxMDAlIik7Ci0gICAgICAgIGNvbnN0IFNWR0VsZW1lbnQgKnZpZXdw
b3J0ID0gb3duZXJEb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzID8gdGhpcyA6
IHZpZXdwb3J0RWxlbWVudCgpOwotICAgICAgICBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZExlbmd0
aD4obV9oZWlnaHQsIChTVkdTdHlsZWRFbGVtZW50ICopb3duZXJEb2N1bWVudCgpLT5kb2N1bWVu
dEVsZW1lbnQoKSA9PSB0aGlzID8gMCA6IHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnQpOworICAg
ICAgICBib29sIG91dGVyU3ZnID0gIW93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkg
fHwgb3duZXJEb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzOworICAgICAgICBj
b25zdCBTVkdFbGVtZW50ICp2aWV3cG9ydCA9IG91dGVyU3ZnID8gdGhpcyA6IHZpZXdwb3J0RWxl
bWVudCgpOworICAgICAgICBsYXp5X2NyZWF0ZTxTVkdBbmltYXRlZExlbmd0aD4obV9oZWlnaHQs
IG91dGVyU3ZnID8gMCA6IHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnQpOwogICAgICAgICBtX2hl
aWdodC0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5nKHRlbXAuaW1wbCgpKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9770</attachid>
            <date>2006-07-31 01:11:32 -0700</date>
            <delta_ts>2006-08-14 23:33:04 -0700</delta_ts>
            <desc>Now with testcase</desc>
            <filename>9976-2.diff</filename>
            <type>text/plain</type>
            <size>11106</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE1NzA1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMDctMzEgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgY2FzZSBmb3IKKyAgICAgICAgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk3Nj4KKyAgICAgICAgRml4IG5lZ2F0aXZlIHdpZHRoIGlzc3VlIGlu
IEhpeGllJ3MgdGVzdAorCisgICAgICAgICogc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0
aC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vbmVnYXRpdmUtd2lk
dGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL25lZ2F0aXZlLXdp
ZHRoLnN2ZzogQWRkZWQuCisKIDIwMDYtMDctMzEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLXRhYmxlLTAwMi1leHBl
Y3RlZC50eHQ6IENvcnJlY3RlZCBvbmUgcmVzdWx0CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL25lZ2F0aXZlLXdpZHRoLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRpdmUtd2lkdGgtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25lZ2F0aXZlLXdpZHRoLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACis4NTNkZTAwNTY3ZDEyMWJlYTBi
N2JlY2U2NmE1ZDYxYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9jdXN0b20vbmVnYXRpdmUtd2lkdGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRpdmUtd2lkdGgtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgS0NhbnZhc0Nv
bnRhaW5lciB7c3ZnfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4
dH0gYXQgKDAsMCkgc2l6ZSA3ODV4MTMKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMTI1eDEzCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTI1OiAi
RkFJTCAoVGhpcyBzaG91bGQgbm90IHJlbmRlci4pIgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9uZWdhdGl2ZS13aWR0aC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1
c3RvbS9uZWdhdGl2ZS13aWR0aC5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL25lZ2F0aXZlLXdpZHRoLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACis8
c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9Ii0xMDAiIGhlaWdo
dD0iMjAiPgorPHRleHQgeD0iMTAiIHk9IjMwIiBmb250LXNpemU9IjEwIiBmaWxsPSJyZWQiPkZB
SUwgKFRoaXMgc2hvdWxkIG5vdCByZW5kZXIuKTwvdGV4dD4KKzwvc3ZnPgpJbmRleDogV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1
NzA1KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBA
QAorMjAwNi0wNy0zMSAgUm9iIEJ1aXMgIDxidWlzQGtkZS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3
aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc2CisgICAgICAgIEZpeCBuZWdhdGl2ZSB3aWR0aCBp
c3N1ZSBpbiBIaXhpZSdzIHRlc3QKKworICAgICAgICBSZWZ1c2UgdG8gcmVuZGVyIHN2ZyBjb250
YWluZXJzIHdpdGggemVybyBvciBuZWdhdGl2ZSB3aWR0aC9oZWlnaHQuCisgICAgICAgIEZpeCBT
VkdTVkdFbGVtZW50Ojp3aWR0aCBhbmQgU1ZHU1ZHRWxlbWVudDo6aGVpZ2h0IGNhbGN1bGF0aW9u
IHRvCisgICAgICAgIG1ha2UgdGhpcyBwb3NzaWJsZS4KKworICAgICAgICAqIGtjYW52YXMvUmVu
ZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0NvbnRhaW5l
cjo6cGFpbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSGVscGVyOjpQZXJjZW50YWdlT2ZWaWV3cG9ydCk6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVu
dDo6d2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6aGVpZ2h0KToKKwog
MjAwNi0wNy0zMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6IFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdDb250
YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwCShyZXZpc2lvbiAxNTcwNSkKKysrIFdlYkNvcmUva2NhbnZhcy9SZW5kZXJTVkdDb250
YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDEwIEBAIHZvaWQgUmVuZGVy
U1ZHQ29udGFpbmVyOjpwYWludChQYWludEluZm8KICAgICBpZiAocGFpbnRJbmZvLnBoYXNlICE9
IFBhaW50UGhhc2VGb3JlZ3JvdW5kIHx8ICFkcmF3c0NvbnRlbnRzKCkgfHwgc3R5bGUoKS0+dmlz
aWJpbGl0eSgpID09IEhJRERFTikKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIC8vIEEgdmFs
dWUgb2YgemVybyBkaXNhYmxlcyByZW5kZXJpbmcgb2YgdGhlIGVsZW1lbnQuIAorICAgIGlmIChz
dGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVudCgpKS0+aXNTVkcoKSAmJiAodmlld3BvcnQo
KS53aWR0aCgpIDw9IDAuIHx8IHZpZXdwb3J0KCkuaGVpZ2h0KCkgPD0gMC4pKQorICAgICAgICBy
ZXR1cm47CisKICAgICBLQ2FudmFzRmlsdGVyICpmaWx0ZXIgPSBnZXRGaWx0ZXJCeUlkKGRvY3Vt
ZW50KCksIHN0eWxlKCktPnN2Z1N0eWxlKCktPmZpbHRlcigpLm1pZCgxKSk7CiAgICAgaWYgKCFm
aXJzdENoaWxkKCkgJiYgIWZpbHRlcikKICAgICAgICAgcmV0dXJuOyAvLyBTcGVjOiBncm91cHMg
dy9vIGNoaWxkcmVuIHN0aWxsIG1heSByZW5kZXIgZmlsdGVyIGNvbnRlbnQuCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIv
c3ZnL1NWR0hlbHBlci5jcHAJKHJldmlzaW9uIDE1NzA1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHSGVscGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBmbG9hdCBTVkdI
ZWxwZXI6OlBlcmNlbnRhZ2VPZlZpZXdwb3J0KGZsCiAgCiAgICAgaWYgKHZpZXdwb3J0RWxlbWVu
dC0+aXNTVkcoKSkgewogICAgICAgICBjb25zdCBTVkdTVkdFbGVtZW50KiBzdmcgPSBzdGF0aWNf
Y2FzdDxjb25zdCBTVkdTVkdFbGVtZW50Kj4odmlld3BvcnRFbGVtZW50KTsKLSAgICAgICAgaWYg
KHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0cikpIHsKKyAgICAgICAgaWYg
KHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94QXR0cikgJiYgc3ZnLT52aWV3Qm94
KCktPmJhc2VWYWwoKS0+d2lkdGgoKSA+IDAgJiYgc3ZnLT52aWV3Qm94KCktPmJhc2VWYWwoKS0+
aGVpZ2h0KCkgPiAwKSB7CiAgICAgICAgICAgICB3aWR0aCA9IHN2Zy0+dmlld0JveCgpLT5iYXNl
VmFsKCktPndpZHRoKCk7CiAgICAgICAgICAgICBoZWlnaHQgPSBzdmctPnZpZXdCb3goKS0+YmFz
ZVZhbCgpLT5oZWlnaHQoKTsKICAgICAgICAgfSBlbHNlIGlmIChzdmctPndpZHRoKCktPmJhc2VW
YWwoKS0+dW5pdFR5cGUoKSA9PSBTVkdMZW5ndGg6OlNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0Ug
fHwKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTcwNSkK
KysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NCw4ICs4NCw5IEBAIFNWR0FuaW1hdGVkTGVuZ3RoICpTVkdTVkdFbGVtZW50Ojp3aWR0aCgK
IHsKICAgICBpZiAoIW1fd2lkdGgpIHsKICAgICAgICAgU3RyaW5nIHRlbXAoIjEwMCUiKTsKLSAg
ICAgICAgY29uc3QgU1ZHRWxlbWVudCAqdmlld3BvcnQgPSBvd25lckRvY3VtZW50KCktPmRvY3Vt
ZW50RWxlbWVudCgpID09IHRoaXMgPyB0aGlzIDogdmlld3BvcnRFbGVtZW50KCk7Ci0gICAgICAg
IGxhenlfY3JlYXRlPFNWR0FuaW1hdGVkTGVuZ3RoPihtX3dpZHRoLCAoU1ZHU3R5bGVkRWxlbWVu
dCAqKW93bmVyRG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgPT0gdGhpcyA/IDAgOiB0aGlz
LCBMTV9XSURUSCwgdmlld3BvcnQpOworICAgICAgICBib29sIG91dGVyU3ZnID0gIW93bmVyRG9j
dW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCkgfHwgb3duZXJEb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKSA9PSB0aGlzOworICAgICAgICBjb25zdCBTVkdFbGVtZW50ICp2aWV3cG9ydCA9IG91
dGVyU3ZnID8gdGhpcyA6IHZpZXdwb3J0RWxlbWVudCgpOworICAgICAgICBsYXp5X2NyZWF0ZTxT
VkdBbmltYXRlZExlbmd0aD4obV93aWR0aCwgb3V0ZXJTdmcgPyAwIDogdGhpcywgTE1fV0lEVEgs
IHZpZXdwb3J0KTsKICAgICAgICAgbV93aWR0aC0+YmFzZVZhbCgpLT5zZXRWYWx1ZUFzU3RyaW5n
KHRlbXAuaW1wbCgpKTsKICAgICB9CiAKQEAgLTk2LDggKzk3LDkgQEAgU1ZHQW5pbWF0ZWRMZW5n
dGggKlNWR1NWR0VsZW1lbnQ6OmhlaWdodAogewogICAgIGlmICghbV9oZWlnaHQpIHsKICAgICAg
ICAgU3RyaW5nIHRlbXAoIjEwMCUiKTsKLSAgICAgICAgY29uc3QgU1ZHRWxlbWVudCAqdmlld3Bv
cnQgPSBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMgPyB0aGlzIDog
dmlld3BvcnRFbGVtZW50KCk7Ci0gICAgICAgIGxhenlfY3JlYXRlPFNWR0FuaW1hdGVkTGVuZ3Ro
PihtX2hlaWdodCwgKFNWR1N0eWxlZEVsZW1lbnQgKilvd25lckRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpID09IHRoaXMgPyAwIDogdGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydCk7CisgICAg
ICAgIGJvb2wgb3V0ZXJTdmcgPSAhb3duZXJEb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSB8
fCBvd25lckRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpID09IHRoaXM7CisgICAgICAgIGNv
bnN0IFNWR0VsZW1lbnQgKnZpZXdwb3J0ID0gb3V0ZXJTdmcgPyB0aGlzIDogdmlld3BvcnRFbGVt
ZW50KCk7CisgICAgICAgIGxhenlfY3JlYXRlPFNWR0FuaW1hdGVkTGVuZ3RoPihtX2hlaWdodCwg
b3V0ZXJTdmcgPyAwIDogdGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydCk7CiAgICAgICAgIG1faGVp
Z2h0LT5iYXNlVmFsKCktPnNldFZhbHVlQXNTdHJpbmcodGVtcC5pbXBsKCkpOwogICAgIH0KIApJ
bmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBlY3RlZC5wbmcK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQVlBQUFDYWRvSndBQUFNYTBs
RVFWUjRuTzNYTVFFQUlBekFNTUMvNStHaQpIQ1FLK25iUHpDd0FBSURBZVIwQUFBRDh3NEFBQUFB
WkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFB
WkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFa
QXdJQUFHUU0KQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFa
QXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFa
QXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFa
QXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpB
d0lBQUdRTUNBQUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpB
d0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpB
d0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBCkFBQVpB
d0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3
SUFBR1FNQ0FBQWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3
SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RFZ0FBQkF4b0FBQUFBWkF3
SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaCkF3
SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lB
CkFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZwpBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFB
R1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQQp4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQQpBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBCkFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpD
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaCkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QQprREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBCkFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZwpBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQQp4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQQpBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBCkFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWcK
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaCkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBCkFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1F1NlZjSXJHWkdzVFVBQUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="2998"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10555</attachid>
            <date>2006-09-14 05:48:51 -0700</date>
            <delta_ts>2006-09-18 21:15:51 -0700</delta_ts>
            <desc>Another attempt</desc>
            <filename>9976-3.diff</filename>
            <type>text/plain</type>
            <size>44416</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MzYzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMDktMTQgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgY2FzZSBmb3IKKyAgICAgICAgPGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk3Nj4KKyAgICAgICAgRml4IG5lZ2F0aXZlIHdpZHRoIGlzc3VlIGlu
IEhpeGllJ3MgdGVzdAorCisgICAgICAgICogc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0
aC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vbmVnYXRpdmUtd2lk
dGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL25lZ2F0aXZlLXdp
ZHRoLnN2ZzogQWRkZWQuCisKIDIwMDYtMDktMTQgIEdyYWhhbSBEZW5uaXMgIDxncmFoYW0uZGVu
bmlzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKdXN0aW4gR2FyY2lhLgpJbmRl
eDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC1leHBlY3RlZC5jaGVja3N1
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25lZ2F0aXZlLXdpZHRoLWV4
cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9u
ZWdhdGl2ZS13aWR0aC1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBA
QAorODUzZGUwMDU2N2QxMjFiZWEwYjdiZWNlNjZhNWQ2MWMKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25lZ2F0aXZlLXdpZHRoLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL25lZ2F0aXZlLXdp
ZHRoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20v
bmVnYXRpdmUtd2lkdGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorICAgIEtDYW52YXNDb250YWluZXIge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAg
ICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICgwLDApIHNpemUgODAweDEzCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDEyNXgxMworICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDEyNTogIkZBSUwgKFRoaXMgc2hvdWxkIG5vdCByZW5kZXIuKSIKSW5k
ZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRpdmUtd2lkdGguc3ZnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRpdmUtd2lkdGguc3ZnCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9uZWdhdGl2ZS13aWR0aC5zdmcJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHdpZHRoPSItMTAwIiBoZWlnaHQ9IjIwIj4KKzx0ZXh0IHg9IjEwIiB5PSIzMCIgZm9udC1z
aXplPSIxMCIgZmlsbD0icmVkIj5GQUlMIChUaGlzIHNob3VsZCBub3QgcmVuZGVyLik8L3RleHQ+
Cis8L3N2Zz4KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNjM2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsODAgQEAKKzIwMDYtMDktMTQgIFJvYiBCdWlzICA8YnVpc0BrZGUu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3NgorICAgICAg
ICBGaXggbmVnYXRpdmUgd2lkdGggaXNzdWUgaW4gSGl4aWUncyB0ZXN0CisKKyAgICAgICAgUmVm
dXNlIHRvIHJlbmRlciBzdmcgY29udGFpbmVycyB3aXRoIHplcm8gb3IgbmVnYXRpdmUgd2lkdGgv
aGVpZ2h0LgorICAgICAgICBSZWRlc2lnbiBTVkdMZW5ndGggc28gaXQgZG9lcyBub3QgbmVlZCB2
aWV3cG9ydEVsZW1lbnQgbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIGFuZCBtYWtlIGl0IHdvcmsg
Y29ycmVjdGx5IHdoZW4gdGhlIG91dGVyIHN2ZyBlbGVtZW50IG5lZWRzIHRvIGJlCisgICAgICAg
IGNhbGN1bGF0ZWQgYWdhaW5zdCBhIG5vbi1zdmcgdmlld3BvcnQuCisKKyAgICAgICAgKiBrY2Fu
dmFzL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdD
b250YWluZXI6OnBhaW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5j
cHA6CisgICAgICAgIChTVkdDaXJjbGVFbGVtZW50OjpTVkdDaXJjbGVFbGVtZW50KToKKyAgICAg
ICAgKFNWR0NpcmNsZUVsZW1lbnQ6OnB1c2hBdHRyaWJ1dGVDb250ZXh0KToKKyAgICAgICAgKiBr
c3ZnMi9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1l
bnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50Lmg6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Vs
bGlwc2VFbGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdF
bGxpcHNlRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQpOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5oOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQpOgor
ICAgICAgICAqIGtzdmcyL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
Y3BwOgorICAgICAgICAoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMpOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudDo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSGVscGVyOjpQZXJjZW50
YWdlT2ZWaWV3cG9ydCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0hlbHBlci5oOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZHSW1hZ2VFbGVt
ZW50OjpTVkdJbWFnZUVsZW1lbnQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdMZW5ndGguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpTVkdMZW5ndGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnVw
ZGF0ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6dXBkYXRlVmFsdWVJblNw
ZWNpZmllZFVuaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6Y29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldENvbnRleHQpOgorICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGVuZ3RoTGlzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpwYXJzZSk6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHTGluZUVsZW1l
bnQuY3BwOgorICAgICAgICAoU1ZHTGluZUVsZW1lbnQ6OlNWR0xpbmVFbGVtZW50KToKKyAgICAg
ICAgKFNWR0xpbmVFbGVtZW50OjpwdXNoQXR0cmlidXRlQ29udGV4dCk6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0xpbmVFbGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5jcHA6CisgICAgICAgIChTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNW
R0xpbmVhckdyYWRpZW50RWxlbWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6U1ZHTWFya2Vy
RWxlbWVudCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50OjpTVkdNYXNrRWxlbWVudCk6CisgICAgICAgICog
a3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpTVkdQYXR0ZXJuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
YXR0ZXJuRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUGF0dGVybkVsZW1lbnQ6OmRyYXdQYXR0ZXJuQ29udGVudEludG9UaWxlKToKKyAgICAgICAg
KiBrc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudDo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KToKKyAgICAgICAgKiBrc3Zn
Mi9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1l
bnQ6OlNWR1JlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50Ojpw
dXNoQXR0cmlidXRlQ29udGV4dCk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1JlY3RFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTVkdFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1N0
eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVkRWxlbWVudDo6cHVz
aEF0dHJpYnV0ZUNvbnRleHQpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50
Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZH
VXNlRWxlbWVudDo6U1ZHVXNlRWxlbWVudCk6CisKIDIwMDYtMDktMTQgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFBhcnQgb2YgYSBidWlsZCBmaXggZm9yIFdp
bmRvd3MgLSByZXN0IHdpbGwgYmUgd29ya2luZyBvdXQgYSBtZXNzIG9mIHRlbXBvcmFyeSBsaW5r
IHN0dWJzCkluZGV4OiBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAkocmV2aXNp
b24gMTYzNjMpCisrKyBXZWJDb3JlL2tjYW52YXMvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgIktSZW5kZXJpbmdEZXZpY2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRF
bGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0xlbmd0
aC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRy
YW5zZm9ybWFibGVFbGVtZW50LmgiCiAKQEAgLTEzNiw3ICsxMzgsMTMgQEAgdm9pZCBSZW5kZXJT
VkdDb250YWluZXI6OnBhaW50KFBhaW50SW5mbwogewogICAgIGlmIChwYWludEluZm8ucC0+cGFp
bnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKKyAgICAvLyBBIHZhbHVl
IG9mIHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9mIHRoZSBlbGVtZW50LiAKKyAgICBTVkdTVkdF
bGVtZW50KiBlID0gc3RhdGljX2Nhc3Q8U1ZHU1ZHRWxlbWVudCo+KGVsZW1lbnQoKSk7CisgICAg
aWYgKGUgJiYgZS0+aXNTVkcoKSAmJiAoZS0+d2lkdGgoKS0+dmFsdWUoKSA8PSAwLiB8fCBlLT5o
ZWlnaHQoKS0+dmFsdWUoKSA8PSAwLikpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IC8vIE5vIG9uZSBzaG91bGQgYmUgdHJhbnNmb3JtaW5nIHVzIHZpYSB0aGVzZS4KICAgICAvL0FT
U0VSVChkLT54ID09IDApOwogICAgIC8vQVNTRVJUKGQtPnkgPT0gMCk7CkluZGV4OiBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOSAr
MzgsOSBAQCBTVkdDaXJjbGVFbGVtZW50OjpTVkdDaXJjbGVFbGVtZW50KGNvbnN0CiAgICAgLCBT
VkdUZXN0cygpCiAgICAgLCBTVkdMYW5nU3BhY2UoKQogICAgICwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCgpCi0gICAgLCBtX2N4KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZp
ZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1fY3kobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlH
SFQsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1fcihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExN
X09USEVSLCB2aWV3cG9ydEVsZW1lbnQoKSkpCisgICAgLCBtX2N4KG5ldyBTVkdMZW5ndGgodGhp
cywgTE1fV0lEVEgpKQorICAgICwgbV9jeShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCkp
CisgICAgLCBtX3IobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9PVEhFUikpCiB7CiB9CiAKQEAgLTgw
LDEwICs4MCwxMCBAQCBQYXRoIFNWR0NpcmNsZUVsZW1lbnQ6OnRvUGF0aERhdGEoKSBjb25zCiAg
ICAgcmV0dXJuIFBhdGg6OmNyZWF0ZUNpcmNsZShGbG9hdFBvaW50KF9jeCwgX2N5KSwgX3IpOwog
fQogCi1jb25zdCBTVkdTdHlsZWRFbGVtZW50ICpTVkdDaXJjbGVFbGVtZW50OjpwdXNoQXR0cmli
dXRlQ29udGV4dChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQorY29uc3QgU1ZHRWxl
bWVudCAqU1ZHQ2lyY2xlRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHRWxl
bWVudCAqY29udGV4dCkKIHsKICAgICAvLyBBbGwgYXR0cmlidXRlJ3MgY29udGV4dHMgYXJlIGVx
dWFsIChzbyBqdXN0IHRha2UgdGhlIG9uZSBmcm9tICdjeCcpLgotICAgIGNvbnN0IFNWR1N0eWxl
ZEVsZW1lbnQgKnJlc3RvcmUgPSBjeCgpLT5jb250ZXh0KCk7CisgICAgY29uc3QgU1ZHRWxlbWVu
dCAqcmVzdG9yZSA9IGN4KCktPmNvbnRleHQoKTsKIAogICAgIGN4KCktPnNldENvbnRleHQoY29u
dGV4dCk7CiAgICAgY3koKS0+c2V0Q29udGV4dChjb250ZXh0KTsKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdDaXJjbGVFbGVtZW50LmgJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHQ2lyY2xlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlCiB7CiAgICAgY2xhc3MgU1ZHTGVuZ3RoOwogICAgIGNsYXNzIFNWR0Np
cmNsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVGVzdHMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1Rlc3RzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFNWR0NpcmNsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlICpzdHlsZSkgeyBy
ZXR1cm4gU3R5bGVkRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7IH0KICAgICAgICAg
dmlydHVhbCBQYXRoIHRvUGF0aERhdGEoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQgKnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVs
ZW1lbnQgKmNvbnRleHQpOworICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQgKnB1c2hB
dHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR0VsZW1lbnQgKmNvbnRleHQpOwogCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdGhpczsgfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxl
bWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDggQEAgU1ZHQ3Vyc29yRWxl
bWVudDo6U1ZHQ3Vyc29yRWxlbWVudChjb25zdAogICAgICwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCgpCiAgICAgLCBTVkdVUklSZWZlcmVuY2UoKQogICAgICwgQ2FjaGVkUmVzb3VyY2VD
bGllbnQoKQotICAgICwgbV94KG5ldyBTVkdMZW5ndGgoMCwgTE1fV0lEVEgsIHZpZXdwb3J0RWxl
bWVudCgpKSkKLSAgICAsIG1feShuZXcgU1ZHTGVuZ3RoKDAsIExNX0hFSUdIVCwgdmlld3BvcnRF
bGVtZW50KCkpKQorICAgICwgbV94KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgpKQorICAg
ICwgbV95KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKIHsKICAgICBtX2NhY2hlZElt
YWdlID0gMDsKIH0KSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgJKHJldmlz
aW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNywxMCArMzcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICBjbGFz
cyBTVkdMZW5ndGg7CiAKICAgICBjbGFzcyBTVkdDdXJzb3JFbGVtZW50IDogcHVibGljIFNWR0Vs
ZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVGVzdHMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBT
VkdVUklSZWZlcmVuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
Q2FjaGVkUmVzb3VyY2VDbGllbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR1Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlj
IFNWR1VSSVJlZmVyZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENh
Y2hlZFJlc291cmNlQ2xpZW50CiAgICAgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHQ3Vyc29y
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tz
dmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29y
ZS9rc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwx
MCArMzgsMTAgQEAgU1ZHRWxsaXBzZUVsZW1lbnQ6OlNWR0VsbGlwc2VFbGVtZW50KGNvbgogICAg
ICwgU1ZHVGVzdHMoKQogICAgICwgU1ZHTGFuZ1NwYWNlKCkKICAgICAsIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQoKQotICAgICwgbV9jeChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRI
LCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX2N5KG5ldyBTVkdMZW5ndGgodGhpcywgTE1f
SEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3J4KG5ldyBTVkdMZW5ndGgodGhp
cywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1fcnkobmV3IFNWR0xlbmd0
aCh0aGlzLCBMTV9IRUlHSFQsIHZpZXdwb3J0RWxlbWVudCgpKSkKKyAgICAsIG1fY3gobmV3IFNW
R0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX2N5KG5ldyBTVkdMZW5ndGgodGhpcywg
TE1fSEVJR0hUKSkKKyAgICAsIG1fcngobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisg
ICAgLCBtX3J5KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKIHsKIH0gICAgCiAKQEAg
LTg0LDEwICs4NCwxMCBAQCBQYXRoIFNWR0VsbGlwc2VFbGVtZW50Ojp0b1BhdGhEYXRhKCkgY29u
CiAgICAgcmV0dXJuIFBhdGg6OmNyZWF0ZUVsbGlwc2UoRmxvYXRQb2ludChfY3gsIF9jeSksIF9y
eCwgX3J5KTsKIH0KIAotY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqU1ZHRWxsaXBzZUVsZW1lbnQ6
OnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpCitj
b25zdCBTVkdFbGVtZW50ICpTVkdFbGxpcHNlRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQo
Y29uc3QgU1ZHRWxlbWVudCAqY29udGV4dCkKIHsKICAgICAvLyBBbGwgYXR0cmlidXRlJ3MgY29u
dGV4dHMgYXJlIGVxdWFsIChzbyBqdXN0IHRha2UgdGhlIG9uZSBmcm9tICdjeCcpLgotICAgIGNv
bnN0IFNWR1N0eWxlZEVsZW1lbnQgKnJlc3RvcmUgPSBjeCgpLT5jb250ZXh0KCk7CisgICAgY29u
c3QgU1ZHRWxlbWVudCAqcmVzdG9yZSA9IGN4KCktPmNvbnRleHQoKTsKIAogICAgIGN4KCktPnNl
dENvbnRleHQoY29udGV4dCk7CiAgICAgY3koKS0+c2V0Q29udGV4dChjb250ZXh0KTsKSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkocmV2aXNpb24gMTYzNjMpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlICpzdHlsZSkgeyByZXR1cm4gU3R5bGVkRWxlbWVudDo6
cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7IH0KICAgICAgICAgdmlydHVhbCBQYXRoIHRvUGF0aERh
dGEoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKnB1
c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQpOworICAg
ICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQgKnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0
IFNWR0VsZW1lbnQgKmNvbnRleHQpOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsg
fQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2
MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDEwICs0NCwxMCBAQCBTVkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVt
ZW50KGNvbnN0CiAgICAgLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKCkKICAgICAsIG1f
ZmlsdGVyVW5pdHMoU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9Y
KQogICAgICwgbV9wcmltaXRpdmVVbml0cyhTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNF
UlNQQUNFT05VU0UpCi0gICAgLCBtX3gobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCwgdmll
d3BvcnRFbGVtZW50KCkpKQotICAgICwgbV95KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hU
LCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3dpZHRoKG5ldyBTVkdMZW5ndGgodGhpcywg
TE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1faGVpZ2h0KG5ldyBTVkdMZW5n
dGgodGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCisgICAgLCBtX3gobmV3IFNW
R0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX3kobmV3IFNWR0xlbmd0aCh0aGlzLCBM
TV9IRUlHSFQpKQorICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRIKSkK
KyAgICAsIG1faGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKICAgICAsIG1f
ZmlsdGVyUmVzWCgwKQogICAgICwgbV9maWx0ZXJSZXNZKDApCiAKSW5kZXg6IFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMCAr
MzgsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50ICpkb2MpCiAgICAgOiBTVkdTdHls
ZWRFbGVtZW50KHRhZ05hbWUsIGRvYykKLSAgICAsIG1feChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExN
X1dJRFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3kobmV3IFNWR0xlbmd0aCh0aGlz
LCBMTV9IRUlHSFQsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1fd2lkdGgobmV3IFNWR0xl
bmd0aCh0aGlzLCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV9oZWlnaHQo
bmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQsIHZpZXdwb3J0RWxlbWVudCgpKSkKKyAgICAs
IG1feChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRIKSkKKyAgICAsIG1feShuZXcgU1ZHTGVu
Z3RoKHRoaXMsIExNX0hFSUdIVCkpCisgICAgLCBtX3dpZHRoKG5ldyBTVkdMZW5ndGgodGhpcywg
TE1fV0lEVEgpKQorICAgICwgbV9oZWlnaHQobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQp
KQogewogICAgIC8vIFNwZWMgOiBJZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRo
ZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAg
bV93aWR0aC0+c2V0VmFsdWVBc1N0cmluZygiMTAwJSIpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDEwICs0MCwxMCBAQCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6U1ZHRm9yZWln
bk9iamVjCiAgICAgLCBTVkdUZXN0cygpCiAgICAgLCBTVkdMYW5nU3BhY2UoKQogICAgICwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCgpCi0gICAgLCBtX3gobmV3IFNWR0xlbmd0aCh0aGlz
LCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV95KG5ldyBTVkdMZW5ndGgo
dGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3dpZHRoKG5ldyBT
VkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1faGVp
Z2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCisg
ICAgLCBtX3gobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX3kobmV3IFNW
R0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQpKQorICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRo
aXMsIExNX1dJRFRIKSkKKyAgICAsIG1faGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJ
R0hUKSkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdIZWxwZXIuY3BwCShyZXZpc2lvbiAxNjM2
MykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0hlbHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDM0ICszNywzNSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWZsb2F0IFNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQoZmxvYXQgdmFsdWUs
IGNvbnN0IFNWR0VsZW1lbnQqIHZpZXdwb3J0RWxlbWVudCwgTGVuZ3RoTW9kZSBtb2RlKQorZmxv
YXQgU1ZHSGVscGVyOjpQZXJjZW50YWdlT2ZWaWV3cG9ydChmbG9hdCB2YWx1ZSwgY29uc3QgTm9k
ZSogdmlld3BvcnRFbGVtZW50LCBMZW5ndGhNb2RlIG1vZGUpCiB7CiAgICAgZmxvYXQgd2lkdGgg
PSAwLCBoZWlnaHQgPSAwOwogICAgIGlmICghdmlld3BvcnRFbGVtZW50KQogICAgICAgICByZXR1
cm4gMC4wOwogIAotICAgIGlmICh2aWV3cG9ydEVsZW1lbnQtPmlzU1ZHKCkpIHsKKyAgICBpZiAo
dmlld3BvcnRFbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkgewogICAgICAgICBjb25zdCBTVkdTVkdF
bGVtZW50KiBzdmcgPSBzdGF0aWNfY2FzdDxjb25zdCBTVkdTVkdFbGVtZW50Kj4odmlld3BvcnRF
bGVtZW50KTsKICAgICAgICAgaWYgKHN2Zy0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjp2aWV3Qm94
QXR0cikpIHsKICAgICAgICAgICAgIHdpZHRoID0gc3ZnLT52aWV3Qm94KCkud2lkdGgoKTsKICAg
ICAgICAgICAgIGhlaWdodCA9IHN2Zy0+dmlld0JveCgpLmhlaWdodCgpOwotICAgICAgICB9IGVs
c2UgaWYgKHN2Zy0+d2lkdGgoKS0+dW5pdFR5cGUoKSA9PSBTVkdMZW5ndGg6OlNWR19MRU5HVEhU
WVBFX1BFUkNFTlRBR0UgfHwKLSAgICAgICAgICAgICAgICBzdmctPmhlaWdodCgpLT51bml0VHlw
ZSgpID09IFNWR0xlbmd0aDo6U1ZHX0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSkgewotICAgICAgICAg
ICAgLy8gVE9ETzogU2hvdWxkbid0IHcvaCBiZSBtdWx0aXBsaWVkIHdpdGggdGhlIHBlcmNlbnRh
Z2UgdmFsdWVzPyEKLSAgICAgICAgICAgIC8vIEFGQUlLLCB0aGlzIGFzc3VtZXMgd2lkdGggJiBo
ZWlnaHQgPT0gMTAwJSwgUm9iPz8KLSAgICAgICAgICAgIERvY3VtZW50ICpkb2MgPSBzdmctPmRv
Y3VtZW50KCk7Ci0gICAgICAgICAgICBpZiAoZG9jLT5kb2N1bWVudEVsZW1lbnQoKSA9PSBzdmcp
IHsKLSAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGFzayB0aGUgY2FudmFzIGZvciB0aGUg
ZnVsbCAiY2FudmFzIHNpemUiLi4uCi0gICAgICAgICAgICAgICAgUmVuZGVyVmlldyogdmlldyA9
IHN0YXRpY19jYXN0PFJlbmRlclZpZXcgKj4oZG9jLT5yZW5kZXJlcigpKTsKLSAgICAgICAgICAg
ICAgICBpZiAodmlldykgewotICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IHZpZXctPmZyYW1l
VmlldygpLT52aXNpYmxlV2lkdGgoKTsgLy8gVE9ETzogcmVjaGVjayEKLSAgICAgICAgICAgICAg
ICAgICAgaGVpZ2h0ID0gdmlldy0+ZnJhbWVWaWV3KCktPnZpc2libGVIZWlnaHQoKTsgLy8gVE9E
TzogcmVjaGVjayEKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICB3aWR0aCA9IHN2Zy0+d2lkdGgoKS0+dmFsdWUoKTsKICAgICAg
ICAgICAgIGhlaWdodCA9IHN2Zy0+aGVpZ2h0KCktPnZhbHVlKCk7CiAgICAgICAgIH0KKyAgICB9
IGVsc2UgaWYgKHZpZXdwb3J0RWxlbWVudC0+aXNEb2N1bWVudE5vZGUoKSkgeworICAgICAgICAv
LyBUT0RPOiBTaG91bGRuJ3Qgdy9oIGJlIG11bHRpcGxpZWQgd2l0aCB0aGUgcGVyY2VudGFnZSB2
YWx1ZXM/IQorICAgICAgICAvLyBBRkFJSywgdGhpcyBhc3N1bWVzIHdpZHRoICYgaGVpZ2h0ID09
IDEwMCUsIFJvYj8/CisgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGFzayB0aGUgY2FudmFzIGZv
ciB0aGUgZnVsbCAiY2FudmFzIHNpemUiLi4uCisgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSBz
dGF0aWNfY2FzdDxSZW5kZXJWaWV3ICo+KHZpZXdwb3J0RWxlbWVudC0+cmVuZGVyZXIoKSk7Cisg
ICAgICAgIGlmICh2aWV3KSB7CisgICAgICAgICAgICB3aWR0aCA9IHZpZXctPmZyYW1lVmlldygp
LT52aXNpYmxlV2lkdGgoKTsgLy8gVE9ETzogcmVjaGVjayEKKyAgICAgICAgICAgIGhlaWdodCA9
IHZpZXctPmZyYW1lVmlldygpLT52aXNpYmxlSGVpZ2h0KCk7IC8vIFRPRE86IHJlY2hlY2shCisg
ICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodmlld3BvcnRFbGVtZW50LT5yZW5k
ZXJlcigpICYmIHZpZXdwb3J0RWxlbWVudC0+cmVuZGVyZXIoKS0+Y29udGFpbmluZ0Jsb2NrKCkp
IHsKKyAgICAgICAgICAgIHdpZHRoID0gdmlld3BvcnRFbGVtZW50LT5yZW5kZXJlcigpLT5jb250
YWluaW5nQmxvY2tXaWR0aCgpOyAvLyBUT0RPOiByZWNoZWNrIQorICAgICAgICAgICAgaGVpZ2h0
ID0gdmlld3BvcnRFbGVtZW50LT5yZW5kZXJlcigpLT5jb250YWluaW5nQmxvY2tIZWlnaHQoKTsg
Ly8gVE9ETzogcmVjaGVjayEKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChtb2RlID09IExN
X1dJRFRIKQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmgJKHJldmlzaW9uIDE2MzYzKQorKysgV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHSGVscGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU1ZHRWxlbWVudDsKKyAgICBj
bGFzcyBOb2RlOwogICAgIGNsYXNzIFNWR1N0cmluZ0xpc3Q7CiAKICAgICAvLyBLU1ZHIGV4dGVu
c2lvbgpAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBT
VkdIZWxwZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIGZsb2F0IFBlcmNlbnRhZ2VP
ZlZpZXdwb3J0KGZsb2F0IHZhbHVlLCBjb25zdCBTVkdFbGVtZW50ICp2aWV3cG9ydEVsZW1lbnQs
IExlbmd0aE1vZGUgbW9kZSk7CisgICAgICAgIHN0YXRpYyBmbG9hdCBQZXJjZW50YWdlT2ZWaWV3
cG9ydChmbG9hdCB2YWx1ZSwgY29uc3QgTm9kZSogdmlld3BvcnRFbGVtZW50LCBMZW5ndGhNb2Rl
IG1vZGUpOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIFBhcnNlU2VwZXJhdGVkTGlzdChTVkdTdHJp
bmdMaXN0ICpsaXN0LCBjb25zdCBEZXByZWNhdGVkU3RyaW5nICZkYXRhLCBjb25zdCBEZXByZWNh
dGVkQ2hhciAmZGVsaW1pdGVyID0gJywnKTsKICAgICB9OwpJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjM2MykKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEwICs0OCwxMCBAQCBT
VkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudChjb25zdCBRCiAgICAgLCBTVkdMYW5nU3Bh
Y2UoKQogICAgICwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCgpCiAgICAgLCBTVkdVUklS
ZWZlcmVuY2UoKQotICAgICwgbV94KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdw
b3J0RWxlbWVudCgpKSkKLSAgICAsIG1feShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwg
dmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExN
X1dJRFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3Ro
KHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50KCkpKQorICAgICwgbV94KG5ldyBTVkdM
ZW5ndGgodGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95KG5ldyBTVkdMZW5ndGgodGhpcywgTE1f
SEVJR0hUKSkKKyAgICAsIG1fd2lkdGgobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisg
ICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCkpCiAgICAgLCBtX3By
ZXNlcnZlQXNwZWN0UmF0aW8obmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8odGhpcykpCiAgICAg
LCBtX2ltYWdlTG9hZGVyKHRoaXMpCiB7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aC5jcHAJKHJl
dmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogVW5pdFRleHRbXSA9
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHTGVuZ3RoOjpTVkdMZW5ndGgoY29uc3QgU1ZH
U3R5bGVkRWxlbWVudCAqY29udGV4dCwgTGVuZ3RoTW9kZSBtb2RlLCBjb25zdCBTVkdFbGVtZW50
ICp2aWV3cG9ydCkKK1NWR0xlbmd0aDo6U1ZHTGVuZ3RoKGNvbnN0IFNWR0VsZW1lbnQgKmNvbnRl
eHQsIExlbmd0aE1vZGUgbW9kZSkKICAgICA6IFNoYXJlZDxTVkdMZW5ndGg+KCkKICAgICAsIG1f
dmFsdWUoMCkKICAgICAsIG1fdmFsdWVJblNwZWNpZmllZFVuaXRzKDApCkBAIC02MCw3ICs2MCw2
IEBAIFNWR0xlbmd0aDo6U1ZHTGVuZ3RoKGNvbnN0IFNWR1N0eWxlZEVsZW0KICAgICAsIG1fdW5p
dFR5cGUoU1ZHX0xFTkdUSFRZUEVfVU5LTk9XTikKICAgICAsIG1fcmVxdWlyZXNMYXlvdXQoZmFs
c2UpCiAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fdmlld3BvcnRFbGVtZW50KHZp
ZXdwb3J0KQogewogfQogCkBAIC05MSw4ICs5MCwxMCBAQCBmbG9hdCBTVkdMZW5ndGg6OnZhbHVl
KCkgY29uc3QKICAgICBpZiAobV9iYm94UmVsYXRpdmUpCiAgICAgICAgIHJldHVybiB2YWx1ZTsK
IAotICAgIC8vIFVzZSB0aGUgbWFudWFsIG92ZXJyaWRlICJtX3ZpZXdwb3J0RWxlbWVudCIgd2hl
biB0aGVyZSBpcyBubyBjb250ZXh0IGVsZW1lbnQgb2ZmIG9mIHdoaWNoIHRvIGVzdGFibGlzaCB0
aGUgdmlld3BvcnQuCi0gICAgcmV0dXJuIFNWR0hlbHBlcjo6UGVyY2VudGFnZU9mVmlld3BvcnQo
dmFsdWUsIG1fY29udGV4dCA/IG1fY29udGV4dC0+dmlld3BvcnRFbGVtZW50KCkgOiBtX3ZpZXdw
b3J0RWxlbWVudCwgc3RhdGljX2Nhc3Q8TGVuZ3RoTW9kZT4obV9tb2RlKSk7CisgICAgaWYgKCFt
X2NvbnRleHQpCisgICAgICAgIHJldHVybiAwLjsKKworICAgIHJldHVybiBTVkdIZWxwZXI6OlBl
cmNlbnRhZ2VPZlZpZXdwb3J0KHZhbHVlLCBtX2NvbnRleHQtPnZpZXdwb3J0RWxlbWVudCgpID8g
bV9jb250ZXh0LT52aWV3cG9ydEVsZW1lbnQoKSA6IG1fY29udGV4dC0+cGFyZW50Tm9kZSgpLCBz
dGF0aWNfY2FzdDxMZW5ndGhNb2RlPihtX21vZGUpKTsKIH0KIAogdm9pZCBTVkdMZW5ndGg6OnNl
dFZhbHVlSW5TcGVjaWZpZWRVbml0cyhmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCkBAIC0y
MzAsOCArMjMxLDkgQEAgdm9pZCBTVkdMZW5ndGg6OnVwZGF0ZVZhbHVlKGJvb2wgbm90aWZ5KQog
ICAgICAgICBjYXNlIFNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0U6CiAgICAgICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgaWYgKG5vdGlmeSAmJiBtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4
dC0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CisgICAgLy8gVE9ETzogY3Vyc29yIG5vdCBzdHls
ZWQsIGJ1dCBuZWVkcyBub3RpZmljYXRpb24gCisgICAgaWYgKG5vdGlmeSAmJiBtX2NvbnRleHQg
JiYgbV9jb250ZXh0LT5pc1N0eWxlZCgpKQorICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBTVkdT
dHlsZWRFbGVtZW50Kj4obV9jb250ZXh0KS0+bm90aWZ5QXR0cmlidXRlQ2hhbmdlKCk7CiB9CiAK
IGJvb2wgU1ZHTGVuZ3RoOjp1cGRhdGVWYWx1ZUluU3BlY2lmaWVkVW5pdHMoYm9vbCBub3RpZnkp
CkBAIC0yNzIsOSArMjc0LDEwIEBAIGJvb2wgU1ZHTGVuZ3RoOjp1cGRhdGVWYWx1ZUluU3BlY2lm
aWVkVW4KICAgICAgICAgY2FzZSBTVkdfTEVOR1RIVFlQRV9OVU1CRVI6CiAgICAgICAgICAgICBi
cmVhazsKICAgICB9OwotICAgIAotICAgIGlmIChub3RpZnkgJiYgbV9jb250ZXh0KQotICAgICAg
ICBtX2NvbnRleHQtPm5vdGlmeUF0dHJpYnV0ZUNoYW5nZSgpOworICAgCisgICAgLy8gVE9ETzog
Y3Vyc29yIG5vdCBzdHlsZWQsIGJ1dCBuZWVkcyBub3RpZmljYXRpb24gCisgICAgaWYgKG5vdGlm
eSAmJiBtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pc1N0eWxlZCgpKQorICAgICAgICBzdGF0aWNf
Y2FzdDxjb25zdCBTVkdTdHlsZWRFbGVtZW50Kj4obV9jb250ZXh0KS0+bm90aWZ5QXR0cmlidXRl
Q2hhbmdlKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI4OSwxMiArMjkyLDEyIEBAIHZv
aWQgU1ZHTGVuZ3RoOjpzZXRCYm94UmVsYXRpdmUoYm9vbCByZWwKICAgICBtX2Jib3hSZWxhdGl2
ZSA9IHJlbGF0aXZlOwogfQogCi1jb25zdCBTVkdTdHlsZWRFbGVtZW50ICpTVkdMZW5ndGg6OmNv
bnRleHQoKSBjb25zdAorY29uc3QgU1ZHRWxlbWVudCAqU1ZHTGVuZ3RoOjpjb250ZXh0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0OwogfQogCi12b2lkIFNWR0xlbmd0aDo6c2V0Q29u
dGV4dChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KQordm9pZCBTVkdMZW5ndGg6OnNl
dENvbnRleHQoY29uc3QgU1ZHRWxlbWVudCAqY29udGV4dCkKIHsKICAgICBtX2NvbnRleHQgPSBj
b250ZXh0OwogfQpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmgJKHJldmlzaW9uIDE2MzYzKQorKysg
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDExICsz
MSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBSZW5kZXJQYXRoOwogICAg
IGNsYXNzIFNWR0VsZW1lbnQ7Ci0gICAgY2xhc3MgU1ZHU3R5bGVkRWxlbWVudDsKIAogICAgIGNs
YXNzIFNWR0xlbmd0aCA6IHB1YmxpYyBTaGFyZWQ8U1ZHTGVuZ3RoPiB7CiAgICAgcHVibGljOgot
ICAgICAgICBTVkdMZW5ndGgoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCwgTGVuZ3Ro
TW9kZSBtb2RlID0gTE1fVU5LTk9XTiwgY29uc3QgU1ZHRWxlbWVudCogdmlld3BvcnQgPSAwKTsK
KyAgICAgICAgU1ZHTGVuZ3RoKGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQsIExlbmd0aE1vZGUg
bW9kZSA9IExNX1VOS05PV04pOwogICAgICAgICB2aXJ0dWFsIH5TVkdMZW5ndGgoKTsKICAgICAg
ICAgCiAgICAgICAgIGVudW0gU1ZHTGVuZ3RoVHlwZSB7CkBAIC03MSw4ICs3MCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBiYm94UmVsYXRpdmUoKSBjb25zdDsKICAgICAg
ICAgdm9pZCBzZXRCYm94UmVsYXRpdmUoYm9vbCk7CiAKLSAgICAgICAgY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCogY29udGV4dCgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldENvbnRleHQoY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7CisgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHQoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRDb250ZXh0KGNvbnN0IFNWR0VsZW1lbnQg
KmNvbnRleHQpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCB1cGRhdGVWYWx1ZUluU3Bl
Y2lmaWVkVW5pdHMoYm9vbCBub3RpZnkgPSB0cnVlKTsKQEAgLTg4LDggKzg3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBTVkdMZW5ndGhUeXBlIG1fdW5pdFR5cGUgOiA0OwogICAg
ICAgICBib29sIG1fcmVxdWlyZXNMYXlvdXQgOiAxOwogCi0gICAgICAgIGNvbnN0IFNWR1N0eWxl
ZEVsZW1lbnQgKm1fY29udGV4dDsKLSAgICAgICAgY29uc3QgU1ZHRWxlbWVudCAqbV92aWV3cG9y
dEVsZW1lbnQ7CisgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQgKm1fY29udGV4dDsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5n
dGhMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0
LmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGhMaXN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBTVkdMZW5ndGhMaXN0Ojp+U1ZH
TGVuZ3RoTGlzdCgpCiB7CiB9CiAKLXZvaWQgU1ZHTGVuZ3RoTGlzdDo6cGFyc2UoY29uc3QgRGVw
cmVjYXRlZFN0cmluZyYgdmFsdWUsIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQsIExl
bmd0aE1vZGUgbW9kZSkKK3ZvaWQgU1ZHTGVuZ3RoTGlzdDo6cGFyc2UoY29uc3QgRGVwcmVjYXRl
ZFN0cmluZyYgdmFsdWUsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQsIExlbmd0aE1vZGUgbW9k
ZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHTGVuZ3RoTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xl
bmd0aExpc3QuaAkocmV2aXNpb24gMTYzNjMpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5n
dGhMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUKICAgICAgICAgU1ZHTGVuZ3RoTGlzdCgpOwogICAgICAgICB2aXJ0dWFsIH5TVkdMZW5ndGhM
aXN0KCk7CiAKLSAgICAgICAgdm9pZCBwYXJzZShjb25zdCBEZXByZWNhdGVkU3RyaW5nJiB2YWx1
ZSwgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCogY29udGV4dCwgTGVuZ3RoTW9kZSBtb2RlKTsKKyAg
ICAgICAgdm9pZCBwYXJzZShjb25zdCBEZXByZWNhdGVkU3RyaW5nJiB2YWx1ZSwgY29uc3QgU1ZH
RWxlbWVudCogY29udGV4dCwgTGVuZ3RoTW9kZSBtb2RlKTsKICAgICB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNjM2MykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzgsMTAgKzM4LDEwIEBAIFNWR0xpbmVFbGVtZW50OjpTVkdMaW5lRWxl
bWVudChjb25zdCBRdWEKICAgICAsIFNWR1Rlc3RzKCkKICAgICAsIFNWR0xhbmdTcGFjZSgpCiAg
ICAgLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKCkKLSAgICAsIG1feDEobmV3IFNWR0xl
bmd0aCh0aGlzLCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV95MShuZXcg
U1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV94
MihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAg
LCBtX3kyKG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkp
CisgICAgLCBtX3gxKG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95MShu
ZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCkpCisgICAgLCBtX3gyKG5ldyBTVkdMZW5ndGgo
dGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95MihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdI
VCkpCiB7CiB9CiAKQEAgLTgyLDEwICs4MiwxMCBAQCBQYXRoIFNWR0xpbmVFbGVtZW50Ojp0b1Bh
dGhEYXRhKCkgY29uc3QKICAgICByZXR1cm4gUGF0aDo6Y3JlYXRlTGluZShGbG9hdFBvaW50KF94
MSwgX3kxKSwgRmxvYXRQb2ludChfeDIsIF95MikpOwogfQogCi1jb25zdCBTVkdTdHlsZWRFbGVt
ZW50ICpTVkdMaW5lRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVk
RWxlbWVudCAqY29udGV4dCkKK2NvbnN0IFNWR0VsZW1lbnQgKlNWR0xpbmVFbGVtZW50OjpwdXNo
QXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdFbGVtZW50ICpjb250ZXh0KQogewogICAgIC8vIEFs
bCBhdHRyaWJ1dGUncyBjb250ZXh0cyBhcmUgZXF1YWwgKHNvIGp1c3QgdGFrZSB0aGUgb25lIGZy
b20gJ3gxJykuCi0gICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqcmVzdG9yZSA9IHgxKCktPmNv
bnRleHQoKTsKKyAgICBjb25zdCBTVkdFbGVtZW50ICpyZXN0b3JlID0geDEoKS0+Y29udGV4dCgp
OwogCiAgICAgeDEoKS0+c2V0Q29udGV4dChjb250ZXh0KTsKICAgICB5MSgpLT5zZXRDb250ZXh0
KGNvbnRleHQpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGluZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaW5lRWxlbWVudC5oCShyZXZpc2lvbiAx
NjM2MykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUgKnN0eWxlKSB7IHJldHVybiBTdHlsZWRF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKHN0eWxlKTsgfQogICAgICAgICB2aXJ0dWFsIFBhdGgg
dG9QYXRoRGF0YSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHU3R5bGVkRWxl
bWVudCAqcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4
dCk7CisgICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCAqcHVzaEF0dHJpYnV0ZUNvbnRl
eHQoY29uc3QgU1ZHRWxlbWVudCAqY29udGV4dCk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0aGlzOyB9CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTAgKzQyLDEwIEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNW
R0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCAqZG9jKQogICAgIDogU1ZHR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvYykKLSAgICAs
IG1feDEobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQot
ICAgICwgbV95MShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50
KCkpKQotICAgICwgbV94MihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRILCB2aWV3cG9ydEVs
ZW1lbnQoKSkpCi0gICAgLCBtX3kyKG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3
cG9ydEVsZW1lbnQoKSkpCisgICAgLCBtX3gxKG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgp
KQorICAgICwgbV95MShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCkpCisgICAgLCBtX3gy
KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95MihuZXcgU1ZHTGVuZ3Ro
KHRoaXMsIExNX0hFSUdIVCkpCiB7CiAgICAgLy8gU3BlYyA6IElmIHRoZSBhdHRyaWJ1dGUgaXMg
bm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJl
IHNwZWNpZmllZC4KICAgICBtX3gyLT5zZXRWYWx1ZUFzU3RyaW5nKCIxMDAlIik7CkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDUsMTAgKzQ1LDEwIEBAIFNWR01hcmtlckVsZW1lbnQ6OlNWR01hcmtlckVsZW1lbnQoY29uc3QK
ICAgICAsIFNWR0xhbmdTcGFjZSgpCiAgICAgLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
KCkKICAgICAsIFNWR0ZpdFRvVmlld0JveCgpCi0gICAgLCBtX3JlZlgobmV3IFNWR0xlbmd0aCh0
aGlzLCBMTV9XSURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV9yZWZZKG5ldyBTVkdM
ZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX21hcmtl
cldpZHRoKG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkK
LSAgICAsIG1fbWFya2VySGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3
cG9ydEVsZW1lbnQoKSkpCisgICAgLCBtX3JlZlgobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURU
SCkpCisgICAgLCBtX3JlZlkobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQpKQorICAgICwg
bV9tYXJrZXJXaWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRIKSkKKyAgICAsIG1fbWFy
a2VySGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKICAgICAsIG1fbWFya2Vy
VW5pdHMoU1ZHX01BUktFUlVOSVRTX1NUUk9LRVdJRFRIKQogICAgICwgbV9vcmllbnRUeXBlKDAp
CiAgICAgLCBtX29yaWVudEFuZ2xlKG5ldyBTVkdBbmdsZSh0aGlzKSkKSW5kZXg6IFdlYkNvcmUv
a3N2ZzIvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMCArNDcsMTAg
QEAgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50KGNvbnN0IFF1YQogICAgICwgU1ZHVGVz
dHMoKQogICAgICwgU1ZHTGFuZ1NwYWNlKCkKICAgICAsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQoKQotICAgICwgbV94KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0
RWxlbWVudCgpKSkKLSAgICAsIG1feShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmll
d3BvcnRFbGVtZW50KCkpKQotICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJ
RFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRo
aXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50KCkpKQorICAgICwgbV94KG5ldyBTVkdMZW5n
dGgodGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJ
R0hUKSkKKyAgICAsIG1fd2lkdGgobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAg
LCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCkpCiAgICAgLCBtX21hc2tl
cigwKQogICAgICwgbV9kaXJ0eSh0cnVlKQogewpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmNwcAkocmV2aXNpb24gMTYzNjMpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdQYXR0ZXJuRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDEwICs1NCwxMCBAQCBT
VkdQYXR0ZXJuRWxlbWVudDo6U1ZHUGF0dGVybkVsZW1lbnQoY29uCiAgICAgLCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKCkKICAgICAsIFNWR0ZpdFRvVmlld0JveCgpCiAgICAgLCBLQ2Fu
dmFzUmVzb3VyY2VMaXN0ZW5lcigpCi0gICAgLCBtX3gobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9X
SURUSCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV95KG5ldyBTVkdMZW5ndGgodGhpcywg
TE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3dpZHRoKG5ldyBTVkdMZW5n
dGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1faGVpZ2h0KG5l
dyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCisgICAgLCBt
X3gobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX3kobmV3IFNWR0xlbmd0
aCh0aGlzLCBMTV9IRUlHSFQpKQorICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExN
X1dJRFRIKSkKKyAgICAsIG1faGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkK
ICAgICAsIG1fcGF0dGVyblVuaXRzKFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RC
T1VORElOR0JPWCkKICAgICAsIG1fcGF0dGVybkNvbnRlbnRVbml0cyhTVkdVbml0VHlwZXM6OlNW
R19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpCiAgICAgLCBtX3BhdHRlcm5UcmFuc2Zvcm0obmV3
IFNWR1RyYW5zZm9ybUxpc3QpCkBAIC0xMjAsMTAgKzEyMCwxMCBAQCB2b2lkIFNWR1BhdHRlcm5F
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpCiAgICAgfQogfQogCi1jb25zdCBTVkdTdHlsZWRFbGVt
ZW50KiBTVkdQYXR0ZXJuRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5
bGVkRWxlbWVudCogY29udGV4dCkKK2NvbnN0IFNWR0VsZW1lbnQqIFNWR1BhdHRlcm5FbGVtZW50
OjpwdXNoQXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0KQogewogICAg
IC8vIEFsbCBhdHRyaWJ1dGUncyBjb250ZXh0cyBhcmUgZXF1YWwgKHNvIGp1c3QgdGFrZSB0aGUg
b25lIGZyb20gJ3gnKS4KLSAgICBjb25zdCBTVkdTdHlsZWRFbGVtZW50KiByZXN0b3JlID0geCgp
LT5jb250ZXh0KCk7CisgICAgY29uc3QgU1ZHRWxlbWVudCogcmVzdG9yZSA9IHgoKS0+Y29udGV4
dCgpOwogCiAgICAgeCgpLT5zZXRDb250ZXh0KGNvbnRleHQpOwogICAgIHkoKS0+c2V0Q29udGV4
dChjb250ZXh0KTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50Ojpk
cmF3UGF0dGVybkNvbnRlCiAKICAgICBib29sIGJib3ggPSAocGF0dGVyblVuaXRzKCkgPT0gU1ZH
VW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKTsKIAotICAgIGNvbnN0
IFNWR1N0eWxlZEVsZW1lbnQqIHNhdmVkQ29udGV4dCA9IDA7CisgICAgY29uc3QgU1ZHRWxlbWVu
dCogc2F2ZWRDb250ZXh0ID0gMDsKICAgICBpZiAoYmJveCkgewogICAgICAgICBpZiAod2lkdGgo
KS0+dW5pdFR5cGUoKSAhPSBTVkdMZW5ndGg6OlNWR19MRU5HVEhUWVBFX1BFUkNFTlRBR0UpCiAg
ICAgICAgICAgICB3aWR0aCgpLT5uZXdWYWx1ZVNwZWNpZmllZFVuaXRzKFNWR0xlbmd0aDo6U1ZH
X0xFTkdUSFRZUEVfUEVSQ0VOVEFHRSwgd2lkdGgoKS0+dmFsdWUoKSAqIDEwMC4pOwpJbmRleDog
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiAxNjM2MykKKysrIFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICAgICAgLy8gJ1NWR1BhdHRlcm5FbGVt
ZW50JyBmdW5jdGlvbnMKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRl
KE1hcHBlZEF0dHJpYnV0ZSAqYXR0cik7CiAKLSAgICAgICAgY29uc3QgU1ZHU3R5bGVkRWxlbWVu
dCAqcHVzaEF0dHJpYnV0ZUNvbnRleHQoY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqY29udGV4dCk7
CisgICAgICAgIGNvbnN0IFNWR0VsZW1lbnQgKnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNW
R0VsZW1lbnQgKmNvbnRleHQpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZU5vdGlm
aWNhdGlvbigpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QXR0cmlidXRlQ2hh
bmdlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQgKmRvYykKICAgICA6IFNWR0dyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2MpCi0gICAgLCBt
X2N4KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAg
ICAsIG1fY3kobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQsIHZpZXdwb3J0RWxlbWVudCgp
KSkKLSAgICAsIG1fcihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX09USEVSLCB2aWV3cG9ydEVsZW1l
bnQoKSkpCi0gICAgLCBtX2Z4KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0
RWxlbWVudCgpKSkKLSAgICAsIG1fZnkobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9IRUlHSFQsIHZp
ZXdwb3J0RWxlbWVudCgpKSkKKyAgICAsIG1fY3gobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURU
SCkpCisgICAgLCBtX2N5KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKKyAgICAsIG1f
cihuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX09USEVSKSkKKyAgICAsIG1fZngobmV3IFNWR0xlbmd0
aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX2Z5KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJ
R0hUKSkKIHsKICAgICAvLyBTcGVjOiBJZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQs
IHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiNTAlIiB3ZXJlIHNwZWNpZmllZC4KICAg
ICBtX2N4LT5zZXRWYWx1ZUFzU3RyaW5nKCI1MCUiKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1JlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdS
ZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMiArNDEsMTIgQEAgU1ZHUmVj
dEVsZW1lbnQ6OlNWR1JlY3RFbGVtZW50KGNvbnN0IFF1YQogICAgICwgU1ZHVGVzdHMoKQogICAg
ICwgU1ZHTGFuZ1NwYWNlKCkKICAgICAsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQoKQot
ICAgICwgbV94KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgp
KSkKLSAgICAsIG1feShuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVt
ZW50KCkpKQotICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRILCB2aWV3
cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hF
SUdIVCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV9yeChuZXcgU1ZHTGVuZ3RoKHRoaXMs
IExNX1dJRFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAgLCBtX3J5KG5ldyBTVkdMZW5ndGgo
dGhpcywgTE1fSEVJR0hULCB2aWV3cG9ydEVsZW1lbnQoKSkpCisgICAgLCBtX3gobmV3IFNWR0xl
bmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX3kobmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9I
RUlHSFQpKQorICAgICwgbV93aWR0aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRIKSkKKyAg
ICAsIG1faGVpZ2h0KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKKyAgICAsIG1fcngo
bmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX3J5KG5ldyBTVkdMZW5ndGgo
dGhpcywgTE1fSEVJR0hUKSkKIHsKIH0KIApAQCAtMTAyLDEwICsxMDIsMTAgQEAgUGF0aCBTVkdS
ZWN0RWxlbWVudDo6dG9QYXRoRGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIFBhdGg6OmNyZWF0ZVJl
Y3RhbmdsZShyZWN0KTsKIH0KIAotY29uc3QgU1ZHU3R5bGVkRWxlbWVudCAqU1ZHUmVjdEVsZW1l
bnQ6OnB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQgKmNvbnRleHQp
Citjb25zdCBTVkdFbGVtZW50ICpTVkdSZWN0RWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQo
Y29uc3QgU1ZHRWxlbWVudCAqY29udGV4dCkKIHsKICAgICAvLyBBbGwgYXR0cmlidXRlJ3MgY29u
dGV4dHMgYXJlIGVxdWFsIChzbyBqdXN0IHRha2UgdGhlIG9uZSBmcm9tICd4JykuCi0gICAgY29u
c3QgU1ZHU3R5bGVkRWxlbWVudCAqcmVzdG9yZSA9IHgoKS0+Y29udGV4dCgpOworICAgIGNvbnN0
IFNWR0VsZW1lbnQgKnJlc3RvcmUgPSB4KCktPmNvbnRleHQoKTsKIAogICAgIHgoKS0+c2V0Q29u
dGV4dChjb250ZXh0KTsKICAgICB5KCktPnNldENvbnRleHQoY29udGV4dCk7CkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdSZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3Zn
Mi9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZQogICAgICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSAqc3R5bGUpIHsgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpOyB9CiAgICAgICAgIHZpcnR1YWwgUGF0aCB0b1BhdGhEYXRhKCkgY29uc3Q7CiAK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpwdXNoQXR0cmlidXRlQ29u
dGV4dChjb25zdCBTVkdTdHlsZWRFbGVtZW50ICpjb250ZXh0KTsKKyAgICAgICAgdmlydHVhbCBj
b25zdCBTVkdFbGVtZW50ICpwdXNoQXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdFbGVtZW50ICpj
b250ZXh0KTsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjM2MykKKysrIFdlYkNvcmUva3N2
ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxMyArNTgsMTAg
QEAgU1ZHU1ZHRWxlbWVudDo6U1ZHU1ZHRWxlbWVudChjb25zdCBRdWFsaQogICAgICwgbV91c2VD
dXJyZW50VmlldyhmYWxzZSkKICAgICAsIG1fdGltZVNjaGVkdWxlcihuZXcgVGltZVNjaGVkdWxl
cihkb2MpKQogewotICAgIGNvbnN0IFNWR0VsZW1lbnQqIHZpZXdwb3J0ID0gb3duZXJEb2N1bWVu
dCgpLT5kb2N1bWVudEVsZW1lbnQoKSA9PSB0aGlzID8gdGhpcyA6IHZpZXdwb3J0RWxlbWVudCgp
OwotICAgIGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIGNvbnRleHQgPSBvd25lckRvY3VtZW50KCkt
PmRvY3VtZW50RWxlbWVudCgpID09IHRoaXMgPyAwIDogdGhpczsKLQotICAgIG1feCA9IG5ldyBT
VkdMZW5ndGgoY29udGV4dCwgTE1fV0lEVEgsIHZpZXdwb3J0KTsKLSAgICBtX3kgPSBuZXcgU1ZH
TGVuZ3RoKGNvbnRleHQsIExNX0hFSUdIVCwgdmlld3BvcnQpOwotICAgIG1fd2lkdGggPSBuZXcg
U1ZHTGVuZ3RoKGNvbnRleHQsIExNX1dJRFRILCB2aWV3cG9ydCk7Ci0gICAgbV9oZWlnaHQgPSBu
ZXcgU1ZHTGVuZ3RoKGNvbnRleHQsIExNX0hFSUdIVCwgdmlld3BvcnQpOworICAgIG1feCA9IG5l
dyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgpOworICAgIG1feSA9IG5ldyBTVkdMZW5ndGgodGhp
cywgTE1fSEVJR0hUKTsKKyAgICBtX3dpZHRoID0gbmV3IFNWR0xlbmd0aCh0aGlzLCBMTV9XSURU
SCk7CisgICAgbV9oZWlnaHQgPSBuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCk7CiAKICAg
ICBtX3dpZHRoLT5zZXRWYWx1ZUFzU3RyaW5nKCIxMDAlIik7CiAgICAgbV9oZWlnaHQtPnNldFZh
bHVlQXNTdHJpbmcoIjEwMCUiKTsKQEAgLTM3Niw2ICszNzMsNyBAQCBSZW5kZXJPYmplY3QqIFNW
R1NWR0VsZW1lbnQ6OmNyZWF0ZVJlbmRlCiAgICAgZmxvYXQgX3kgPSB5KCktPnZhbHVlKCk7CiAg
ICAgZmxvYXQgX3dpZHRoID0gd2lkdGgoKS0+dmFsdWUoKTsKICAgICBmbG9hdCBfaGVpZ2h0ID0g
aGVpZ2h0KCktPnZhbHVlKCk7CitmcHJpbnRmKHN0ZGVyciwgIl93aWR0aCA6ICVmXG4iLCBfd2lk
dGgpOwogCiAgICAgcm9vdENvbnRhaW5lci0+c2V0Vmlld3BvcnQoRmxvYXRSZWN0KF94LCBfeSwg
X3dpZHRoLCBfaGVpZ2h0KSk7CiAgICAgcm9vdENvbnRhaW5lci0+c2V0Vmlld0JveCh2aWV3Qm94
KCkpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFNWR1N0eWxlZEVsZW1lbnQ6OnVwZGF0
ZUNhbnZhc0l0ZW0oCiAgICAgbV91cGRhdGVWZWN0b3JpYWwgPSBmYWxzZTsKIH0KIAotY29uc3Qg
U1ZHU3R5bGVkRWxlbWVudCogU1ZHU3R5bGVkRWxlbWVudDo6cHVzaEF0dHJpYnV0ZUNvbnRleHQo
Y29uc3QgU1ZHU3R5bGVkRWxlbWVudCopCitjb25zdCBTVkdFbGVtZW50KiBTVkdTdHlsZWRFbGVt
ZW50OjpwdXNoQXR0cmlidXRlQ29udGV4dChjb25zdCBTVkdFbGVtZW50KikKIHsKICAgICBpZiAo
dmlldygpKQogICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJQYXRoKj4ocmVuZGVyZXIoKSktPnNl
dFBhdGgodG9QYXRoRGF0YSgpKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1N0eWxlZEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdTdHlsZWRFbGVtZW50
LmgJKHJldmlzaW9uIDE2MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHU3R5bGVkRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgLy8gYW5kIG91ciAnd2lkdGgnIGF0dHJpYnV0ZSBpcyBzZXQgdG8gNTAlLiBXaGVu
IHRoZSBwYXR0ZXJuIGdldHMgcmVmZXJlbmNlZCBpdCBrbm93cyB0aGUgImJib3giCiAgICAgICAg
IC8vIG9mIGl0J3MgdXNlciBhbmQgaGFzIHRvIHB1c2ggdGhlICJhY3RpdmUgY2xpZW50J3MgYmJv
eCIgYXMgbmV3IGF0dHJpYnV0ZSBjb250ZXh0IHRvIGFsbCBhdHRyaWJ1dGVzCiAgICAgICAgIC8v
IG9mIHRoZSAncmVjdCcuIFRoaXMgZnVuY3Rpb24gYWxzbyByZXR1cm5zIHRoZSBvbGQgYXR0cmli
dXRlIGNvbnRleHQsIHRvIGJlIGFibGUgdG8gcmVzdG9yZSBpdC4uLgotICAgICAgICB2aXJ0dWFs
IGNvbnN0IFNWR1N0eWxlZEVsZW1lbnQqIHB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR1N0
eWxlZEVsZW1lbnQqIGNvbnRleHQpOworICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQq
IHB1c2hBdHRyaWJ1dGVDb250ZXh0KGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHQpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBoYXNQZXJjZW50YWdlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE2
MzYzKQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDEwICs0NywxMCBAQCBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0
IFF1YWxpCiAgICAgLCBTVkdMYW5nU3BhY2UoKQogICAgICwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCgpCiAgICAgLCBTVkdVUklSZWZlcmVuY2UoKQotICAgICwgbV94KG5ldyBTVkdMZW5n
dGgodGhpcywgTE1fV0lEVEgsIHZpZXdwb3J0RWxlbWVudCgpKSkKLSAgICAsIG1feShuZXcgU1ZH
TGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50KCkpKQotICAgICwgbV93aWR0
aChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX1dJRFRILCB2aWV3cG9ydEVsZW1lbnQoKSkpCi0gICAg
LCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMsIExNX0hFSUdIVCwgdmlld3BvcnRFbGVtZW50
KCkpKQorICAgICwgbV94KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fV0lEVEgpKQorICAgICwgbV95
KG5ldyBTVkdMZW5ndGgodGhpcywgTE1fSEVJR0hUKSkKKyAgICAsIG1fd2lkdGgobmV3IFNWR0xl
bmd0aCh0aGlzLCBMTV9XSURUSCkpCisgICAgLCBtX2hlaWdodChuZXcgU1ZHTGVuZ3RoKHRoaXMs
IExNX0hFSUdIVCkpCiB7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRp
dmUtd2lkdGgtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFy
a2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3N2Zy9jdXN0b20vbmVnYXRp
dmUtd2lkdGgtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICAr
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFB
QUpZQ0FZQUFBQ2Fkb0p3QUFBTWEwbEVRVlI0bk8zWE1RRUFJQXpBTU1DLzUrR2kKSENRSytuYlB6
Q3dBQUlEQWVSMEFBQUQ4dzRBQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZwpBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQQp4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQQpBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU0K
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBCkFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaCkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBCkFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZwpBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNCkNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQQp4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBCmtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQQpBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
CkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBCkFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaCkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBCkFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZwpBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQQp4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhv
QUFBQUFaQXdJQUFHUU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhv
QUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFrREVnQUFCQXhv
QUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9B
QQpBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9B
QUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9B
QUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtERWdBQUJBeG9B
QUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FB
QUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FB
QUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FB
QUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RFZ0FBQkF4b0FB
QUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFB
QUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRdTZWY0lyR1pHc1RVQUFBQUFT
VVZPUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="3419"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15043</attachid>
            <date>2007-06-14 23:43:55 -0700</date>
            <delta_ts>2007-06-25 20:27:05 -0700</delta_ts>
            <desc>Retrying this one.</desc>
            <filename>9976-4.diff</filename>
            <type>text/plain</type>
            <size>28744</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIzNTQ2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDctMDYtMTUgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3RjYXNlIGZvcjoKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NgorICAgICAgICBGaXggbmVnYXRpdmUgd2lkdGggaXNzdWUgaW4gSGl4aWUncyB0
ZXN0CisKKyAgICAgICAgKiBzdmcvaGl4aWUvZXJyb3IvMDEzLWJyb2tlbi1leHBlY3RlZC5jaGVj
a3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvaGl4aWUvZXJyb3IvMDEzLWJyb2tlbi1leHBl
Y3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL2hpeGllL2Vycm9yLzAxMy1icm9rZW4t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9oaXhpZS9lcnJvci8wMTMtYnJv
a2VuLnhtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdmcvaGl4aWUvZXJyb3IvMDEzLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvaGl4aWUvZXJyb3IvMDEzLWV4cGVjdGVk
LnBuZzogQWRkZWQuCisgICAgICAgICogc3ZnL2hpeGllL2Vycm9yLzAxMy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorCiAyMDA3LTA2LTE1ICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAx
My1icm9rZW4tZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2hpeGllL2Vycm9yLzAxMy1icm9rZW4tZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDIzNTQx
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy1icm9rZW4tZXhwZWN0ZWQuY2hl
Y2tzdW0JKHdvcmtpbmcgY29weSkKQEAgLTEgKzAsMCBAQAotNjFmMmEwMzZjOWE2YmMwNjJlYjkw
NWVjMTIyMjVjNjAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvaGl4aWUvZXJyb3IvMDEzLWJyb2tlbi1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5u
b3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9
IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vy
cm9yLzAxMy1icm9rZW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9oaXhpZS9lcnJvci8wMTMtYnJva2VuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjM1NDEpCisr
KyBMYXlvdXRUZXN0cy9zdmcvaGl4aWUvZXJyb3IvMDEzLWJyb2tlbi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBF
cnJvcjogQSBuZWdhdGl2ZSB2YWx1ZSBmb3Igc3ZnIGF0dHJpYnV0ZSA8d2lkdGg+IGlzIG5vdCBh
bGxvd2VkCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDEwMAotICBSZW5kZXJCbG9j
ayB7aHRtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQg
KDgsOCkgc2l6ZSA3ODR4NzYKLSAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDAp
IHNpemUgNzg0eDI0Ci0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7c3ZnfSBhdCAoMTgsMjgp
IHNpemUgMTI1eDEzCi0gICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDMwKSBz
aXplIDEyNXgxMyBjb250YWlucyAxIGNodW5rKHMpIFtjb2xvcj0jRkYwMDAwXQotICAgICAgICAg
ICAgUmVuZGVyU1ZHSW5saW5lVGV4dCB7I3RleHR9IGF0ICgwLC0xMCkgc2l6ZSAxMjV4MTMKLSAg
ICAgICAgICAgICAgY2h1bmsgMSB0ZXh0IHJ1biAxIGF0ICgxMC4wMCwzMC4wMCkgc3RhcnRPZmZz
ZXQgMCBlbmRPZmZzZXQgMzAgd2lkdGggMTI1LjAwOiAiRkFJTCAoVGhpcyBzaG91bGQgbm90IHJl
bmRlci4pIgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAg
ICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCw0MCkgc2l6ZSA3ODR4MzYgW2NvbG9yPSMwMDgwMDBd
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc0OXgzNgotICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQxNzogIlRoaXMgbGluZSBzaG91bGQgYmUgZ3Jl
ZW4sIHRoZSB3b3JkIFwiRkFJTFwiIHNob3VsZCBub3QgYXBwZWFyIG9uICIKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNDE3LDApIHdpZHRoIDMzMjogInRoaXMgcGFnZSwgYnV0IGEgaGlnaGx5IHBl
cmNlaXZhYmxlIGluZGljYXRpb24gb2YgZXJyb3IiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MTgpIHdpZHRoIDY1OiAic2hvdWxkIGJlICIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjUsMTgp
IHdpZHRoIDEyNTogInByZXNlbnQgc29tZXdoZXJlLiIKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9o
aXhpZS9lcnJvci8wMTMtYnJva2VuLnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
aGl4aWUvZXJyb3IvMDEzLWJyb2tlbi54bWwJKHJldmlzaW9uIDIzNTQxKQorKysgTGF5b3V0VGVz
dHMvc3ZnL2hpeGllL2Vycm9yLzAxMy1icm9rZW4ueG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3
ICswLDAgQEAKLTw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iMDAxYS5jc3MiPz4KLTxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KLSA8aGVhZD4KLSAgPHRpdGxlPkVycm9y
IGhhbmRsaW5nIGluIGEgbWl4ZWQtY29udGVudCBkb2N1bWVudDwvdGl0bGU+Ci0gIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+Ci0gICBwIHsgY29sb3I6IGdyZWVuOyB9Ci0gIDwvc3R5bGU+Ci0gPC9o
ZWFkPgotIDxib2R5PgotICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIg
d2lkdGg9Ii0xMDAiIGhlaWdodD0iMjAiPgotICAgPHRleHQgeD0iMTAiIHk9IjMwIiBmb250LXNp
emU9IjEwIiBmaWxsPSJyZWQiPkZBSUwgKFRoaXMgc2hvdWxkIG5vdCByZW5kZXIuKTwvdGV4dD4K
LSAgPC9zdmc+Ci0gIDxwPlRoaXMgbGluZSBzaG91bGQgYmUgZ3JlZW4sIHRoZSB3b3JkICJGQUlM
IiBzaG91bGQgbm90IGFwcGVhciBvbgotICB0aGlzIHBhZ2UsIGJ1dCBhIGhpZ2hseSBwZXJjZWl2
YWJsZSBpbmRpY2F0aW9uIG9mIGVycm9yIHNob3VsZCBiZQotICBwcmVzZW50IHNvbWV3aGVyZS48
L3A+Ci0gPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL3N2Zy9oaXhpZS9lcnJvci8wMTMtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy1leHBlY3RlZC5jaGVja3N1
bQkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9oaXhpZS9lcnJvci8wMTMtZXhwZWN0
ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzVkNDE0NWU1NzU2MjA3ZTM0
NWJjNTVlNjFlOTdjMjEyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0
VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvaGl4aWUvZXJyb3IvMDEzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBFcnJvcjogQSBu
ZWdhdGl2ZSB2YWx1ZSBmb3Igc3ZnIGF0dHJpYnV0ZSA8d2lkdGg+IGlzIG5vdCBhbGxvd2VkCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDEwMAorICBSZW5kZXJCbG9jayB7aHRtbH0g
YXQgKDAsMCkgc2l6ZSA4MDB4MTAwCisgICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NzYKKyAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0
eDI0CisgICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7c3ZnfSBhdCAoMTgsMjgpIHNpemUgMTI1
eDEzCisgICAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDEwLDMwKSBzaXplIDEyNXgx
MyBjb250YWlucyAxIGNodW5rKHMpCisgICAgICAgICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsj
dGV4dH0gYXQgKDAsLTEwKSBzaXplIDEyNXgxMworICAgICAgICAgICAgICBjaHVuayAxIHRleHQg
cnVuIDEgYXQgKDEwLjAwLDMwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNldCAzMCB3aWR0aCAx
MjUuMDA6ICJGQUlMIChUaGlzIHNob3VsZCBub3QgcmVuZGVyLikiCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgw
LDQwKSBzaXplIDc4NHgzNiBbY29sb3I9IzAwODAwMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNzQ5eDM2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDE3OiAiVGhpcyBsaW5lIHNob3VsZCBiZSBncmVlbiwgdGhlIHdvcmQgXCJGQUlMXCIgc2hv
dWxkIG5vdCBhcHBlYXIgb24gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg0MTcsMCkgd2lkdGgg
MzMyOiAidGhpcyBwYWdlLCBidXQgYSBoaWdobHkgcGVyY2VpdmFibGUgaW5kaWNhdGlvbiBvZiBl
cnJvciIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggNjU6ICJzaG91bGQgYmUg
IgorICAgICAgICAgIHRleHQgcnVuIGF0ICg2NSwxOCkgd2lkdGggMTI1OiAicHJlc2VudCBzb21l
d2hlcmUuIgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy54bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2hpeGllL2Vycm9yLzAxMy54bWwJKHJldmlzaW9uIDIz
NTQxKQkoZnJvbSBMYXlvdXRUZXN0cy9zdmcvaGl4aWUvZXJyb3IvMDEzLWJyb2tlbi54bWw6MjM1
NDEpCisrKyBMYXlvdXRUZXN0cy9zdmcvaGl4aWUvZXJyb3IvMDEzLnhtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE3IEBACis8P3htbC1zdHlsZXNoZWV0IGhyZWY9IjAwMWEuY3NzIj8+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0
aXRsZT5FcnJvciBoYW5kbGluZyBpbiBhIG1peGVkLWNvbnRlbnQgZG9jdW1lbnQ8L3RpdGxlPgor
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgcCB7IGNvbG9yOiBncmVlbjsgfQorICA8L3N0
eWxlPgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHdpZHRoPSItMTAwIiBoZWlnaHQ9IjIwIj4KKyAgIDx0ZXh0IHg9IjEwIiB5PSIz
MCIgZm9udC1zaXplPSIxMCIgZmlsbD0icmVkIj5GQUlMIChUaGlzIHNob3VsZCBub3QgcmVuZGVy
Lik8L3RleHQ+CisgIDwvc3ZnPgorICA8cD5UaGlzIGxpbmUgc2hvdWxkIGJlIGdyZWVuLCB0aGUg
d29yZCAiRkFJTCIgc2hvdWxkIG5vdCBhcHBlYXIgb24KKyAgdGhpcyBwYWdlLCBidXQgYSBoaWdo
bHkgcGVyY2VpdmFibGUgaW5kaWNhdGlvbiBvZiBlcnJvciBzaG91bGQgYmUKKyAgcHJlc2VudCBz
b21ld2hlcmUuPC9wPgorIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjM1NDYpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDA3LTA2LTE1ICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc2CisgICAgICAgIEZpeCBuZWdhdGl2
ZSB3aWR0aCBpc3N1ZSBpbiBIaXhpZSdzIHRlc3QKKworICAgICAgICBSZWZ1c2UgdG8gcmVuZGVy
IHplcm8gb3IgbmVnYXRpdmUgd2lkdGgvaGVpZ2h0LgorCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWlu
ZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjphcHBseUNvbnRlbnRUcmFuc2Zvcm1zKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OnBhaW50KToKKwogMjAwNy0wNi0xNSAgUm9i
IEJ1aXMgIDxidWlzQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMjM1NDEp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTVkdDb250YWluZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTIsNiArMTUyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpwYWludChQ
YWludEluZm8KICAgICBpZiAocGFpbnRJbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSB8
fCAhZHJhd3NDb250ZW50cygpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBIHZhbHVlIG9m
IHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9mIHRoZSBlbGVtZW50LiAKKyAgICBpZiAoIXZpZXdw
b3J0KCkuaXNFbXB0eSgpICYmICh2aWV3cG9ydCgpLndpZHRoKCkgPD0gMC4gfHwgdmlld3BvcnQo
KS5oZWlnaHQoKSA8PSAwLikpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICghZmlyc3RDaGls
ZCgpKSB7CiAjaWYgRU5BQkxFKFNWR19FWFBFUklNRU5UQUxfRkVBVFVSRVMpCiAgICAgICAgIC8v
IFNwZWM6IGdyb3VwcyB3L28gY2hpbGRyZW4gc3RpbGwgbWF5IHJlbmRlciBmaWx0ZXIgY29udGVu
dC4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiAyMzU0MSkK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzUsMTIgKzEzNSwxMCBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmFwcGx5Q29udGVudFRyYW5z
Zm9yCiAgICAgU1ZHU1ZHRWxlbWVudCogc3ZnID0gc3RhdGljX2Nhc3Q8U1ZHU1ZHRWxlbWVudCo+
KGVsZW1lbnQoKSk7CiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmNvbmNhdENUTShBZmZpbmVUcmFu
c2Zvcm0oKS5zY2FsZShzdmctPmN1cnJlbnRTY2FsZSgpKSk7CiAgICAgCi0gICAgaWYgKCF2aWV3
cG9ydCgpLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoc3R5bGUoKS0+b3ZlcmZsb3dYKCkgIT0g
T1ZJU0lCTEUpCi0gICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+Y2xpcChlbmNsb3NpbmdJ
bnRSZWN0KHZpZXdwb3J0KCkpKTsgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2UnbGwgd2FudCBmbG9h
dC1wcmVjaXNpb24gY2xpcHBpbmcKKyAgICBpZiAoc3R5bGUoKS0+b3ZlcmZsb3dYKCkgIT0gT1ZJ
U0lCTEUpCisgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5jbGlwKGVuY2xvc2luZ0ludFJlY3Qo
dmlld3BvcnQoKSkpOyAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSdsbCB3YW50IGZsb2F0LXByZWNp
c2lvbiBjbGlwcGluZwogICAgICAgICAKLSAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmNvbmNh
dENUTShBZmZpbmVUcmFuc2Zvcm0oKS50cmFuc2xhdGUodmlld3BvcnQoKS54KCksIHZpZXdwb3J0
KCkueSgpKSk7Ci0gICAgfQorICAgIHBhaW50SW5mby5jb250ZXh0LT5jb25jYXRDVE0oQWZmaW5l
VHJhbnNmb3JtKCkudHJhbnNsYXRlKHZpZXdwb3J0KCkueCgpLCB2aWV3cG9ydCgpLnkoKSkpOwog
ICAgIGlmICghbG9jYWxUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCiAgICAgICAgIHBhaW50SW5m
by5jb250ZXh0LT5jb25jYXRDVE0obG9jYWxUcmFuc2Zvcm0oKSk7CiAgICAgcGFpbnRJbmZvLmNv
bnRleHQtPmNvbmNhdENUTShBZmZpbmVUcmFuc2Zvcm0oKS50cmFuc2xhdGUoc3ZnLT5jdXJyZW50
VHJhbnNsYXRlKCkueCgpLCBzdmctPmN1cnJlbnRUcmFuc2xhdGUoKS55KCkpKTsKQEAgLTE1MSw2
ICsxNDksMTAgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludChQYWludEluZm8mIHBhaQogICAg
IGlmIChwYWludEluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKKyAgICAvLyBBIHZhbHVlIG9mIHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9mIHRoZSBl
bGVtZW50LiAKKyAgICBpZiAodmlld3BvcnQoKS53aWR0aCgpIDw9IDAuIHx8IHZpZXdwb3J0KCku
aGVpZ2h0KCkgPD0gMC4pCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIFRoaXMgc2hvdWxkIG9u
bHkgZXhpc3QgZm9yIDxzdmc+IHJlbmRlcmVycwogICAgIGlmIChoYXNCb3hEZWNvcmF0aW9ucygp
ICYmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVncm91bmQgfHwgcGFpbnRJbmZv
LnBoYXNlID09IFBhaW50UGhhc2VTZWxlY3Rpb24pKSAKICAgICAgICAgcGFpbnRCb3hEZWNvcmF0
aW9ucyhwYWludEluZm8sIG1feCArIHBhcmVudFgsIG1feSArIHBhcmVudFkpOwpAQCAtMTg2LDgg
KzE4OCw3IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGlmICghdmlld0JveCgpLmlzRW1wdHkoKSkKLSAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQtPmNvbmNhdENUTSh2aWV3cG9ydFRyYW5zZm9ybSgpKTsKKyAgICBwYWlu
dEluZm8uY29udGV4dC0+Y29uY2F0Q1RNKHZpZXdwb3J0VHJhbnNmb3JtKCkpOwogCiAgICAgUmVu
ZGVyQ29udGFpbmVyOjpwYWludChwYWludEluZm8sIDAsIDApOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvaGl4aWUvZXJyb3IvMDEzLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGlj
YXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcv
aGl4aWUvZXJyb3IvMDEzLWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5
cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQWdBRWxFUVZSNG5PM2RlNWlWZGIwMy9zOE1NTU53ClJr
QVFRVUJSUVNVOHBlNDBFeVBMeEsxYmM1Y2QzT3BQNDltNzJ0ZVRqM3RmdFovOW1IcVZaU1pobGdK
YXVpVU5OZk9BbVFjOG9vRW4KTkJWQkJSRVJSTTdIQVdhWXVYOS9zSm1ZWVIySDRhdTJYNit1cmxy
clhuenY3LzA5M2ZkNzFyM1dxc2l5TEFzQUFJQUVLai9zQ2dBQQpBUDl6Q0NBQUFFQXlBZ2dBQUpD
TUFBSUFBQ1FqZ0FBQUFNa0lJQUFBUURJQ0NBQUFrSXdBQWdBQUpDT0FBQUFBeVFnZ0FBQkFNZ0lJ
CkFBQ1FqQUFDQUFBa0k0QUFBQURKQ0NBQUFFQXlBZ2dBQUpDTUFBSUFBQ1FqZ0FBQUFNa0lJQUFB
UURJQ0NBQUFrSXdBQWdBQUpDT0EKQUFBQXlRZ2dBQUJBTWdJSUFBQ1FqQUFDQUFBa0k0QUFBQURK
Q0NBQUFFQXlBZ2dBQUpDTUFBSUFBQ1FqZ0FBQUFNa0lJQUFBUURJQwpDQUFBa0l3QUFnQUFKQ09B
QUFBQXlRZ2dBQUJBTWdJSUFBQ1FqQUFDQUFBa0k0QUFBQURKQ0NBQUFFQXlBZ2dBQUpDTUFBSUFB
Q1FqCmdBQUFBTWtJSUFBQVFESUNDQUFBa0l3QUFnQUFKQ09BQUFBQXlRZ2dBQUJBTWdJSUFBQ1Fq
QUFDQUFBa0k0QUFBQURKdEdrQTJWQy8KSVJhdFc1UjMrOHBOSytPdFZXK1ZYZTZXaGkzeDUvZit2
TXZsN0lwaXg3YXJXaDVqU3cxWlE4eGRPVGZ2OWczMUcyTHgrc1c3bzJvZgpLN3U3bjNhM1l2MWN1
N1UyVm01YUdSSFJKc2U1ZXZQcVhTNGpuN2FvNjBkOTN2SGgyRjNubW8rcWo5TDYzdFp0WDZ5OFlu
UDA0Nkl0CngyU3g4YkFyYmJhcjlXeTVadTZ1dWZoUm1lUExhcGZGWSs4OEZxczJyL3F3cS9LeFV6
U0FqUG5kbU9oNVpjLzR3cTFmaUgvOC9UOUcKdTh2YnhaQnJoc1NYN3Z4U0hIZlRjZEh1OG5aeHl5
dTN4RzJ2M1JaOXIrb2JrMStabkxlc1N4Ni9KRTZmY25wWkZYeDI4Yk54NUtRago0NHpiejlpbGNu
WkZLY2UySzNJZDQ0NmVYL0o4SERyaDBQam0xRy9tM0Q3eHhZblI2OHBlY2VmcmQrNlcrbjFjN081
KzJ0Mks5WE5FCnhMZ1o0MkxzL1dOajdzcTVNWGo4NEtodnJJK0lpRHRldnlPRy8ycDRWRnhXRVNm
ZWNtSmNPUFhDdUdEcUJmRzFQM3d0RHZ6bGdYSHkKclNmbkxPL3N1ODdPZTRIOXAzbC9pdEdUUjBm
RlpSVXg5TnFoY2YwTDF6ZmJ6NmovR2hYVEZrd3J1NjZsK3FqUE96NGN1K3RjODFIMQpVVnJmMjdy
dGk1VlhiSTUrbkxUVm1DdzJIbmExelhhbG5ybld6TjAxRno4S2MzelNyRWt4NWJVcDhlUTdUOGJC
dnpvNHRqUnMrVkRyCjgzRlROSURVTjlUSHJMR3o0c0d2UFJoM2ZPbU9xR3BYRlNjTVBpRitmOWJ2
NCtuem5vNnJUcm9xTm0vZEhGODk1S3N4cU1lZ2dtVmQKUHVyeXVPY3I5NVJWd2FQM1Bqck9QZlRj
WFM1blY1UnliTHNpMXpIdTZKUDlQeGtuREQ0aE9sUjJ5TGw5N0JGam8yZE56OTFVdTQrMgpMUTFi
NHZGM0hvK0kzZDlQdTF1eGZvNkk2RjdkUGJwV2RZMXUxZDJpcGtOTjAydi84YUIvakhOR25oTVJF
VmQ4OW9xNDRkUWI0c1pUCmI0eGJ6N2cxWmw0d002cmJWKzlVMXJ6VjgrTGgrUS9IcjU3N1ZjNTlu
VHowNVBqUDQvOHpJaUsrL29tdnh6OGYrYy9OOXZQOVQzOC8KUmc4WlhYWmRTL1ZSbjNkdFljZnhT
MzdsenZQVTU0amRxUzNXOTdZYVoyM2Q5c1hLS3paSFAwN2Fha3dXR3crNzJtYTdVczljYTJaYgpI
WGZMTWZ4aHovR045UnZqb29jdWltOGY5ZTI0N0lUTDRxNHYzeFhWN1hZK3o1SmYwUUJ5MGQ5ZEZF
TjZETW03ZmV3UlkrUGdQZ2RIClJFU0h5ZzVSRVJWNVg5dXJwbGZzdjhmK096MmZSVmF3RGxYdHFw
cVZtNitjdHRTeVRzV09iVmUxUE1idEdxTXhJaUxhVjdhUHlvcjgKM2JVNzZsZXNYejVzOVkzMThZ
Mjd2eEhUMzUzZTlOenU3cWZkcGRSKzNyZm52akdveDZEWXE4dGVjV0N2QTV0dDY5R3hSMFRFVHNm
Zgp1YXB6VEJ3emNhZXlicHgxWTV4MzZIbHh5MTl1aVEzMUczTHVyMmZIbnMzK2Q4ZjlkSy91WHZD
WUN0VTFuNC9idk5zVnVjWnZQbHV6CnJRVzNGNXVyclozTHhmYWJRbXZtZVd2UE5hVyt0bEM3N0k1
MWMxZm1RVnVPczFMcVVtN2JGeXN2M3h4dGpRL3puTmJhNjVaY2ZiSTcKMjZ5MTljeTNacmFtdkpi
SG5Hc01wN2dPTE9UVlphOUdYVU5kVlA3M1pmU25CbnpxUTZ2THgxWDdZaS80L0g2Zkw3aTljNGZP
Y2V6QQpZNXNlTjJhTmNja1RsOFROTDk4YzNhcTd4ZFN6cDhhUUhrUGkvUTN2eCtSWEpzZmRjKzZP
R2YvZmpJaUl1SDMyN2JGcTA2cFl0MlZkCjNQdkd2ZkhuODR2ZnM5aXluTWZmZVR3bXZqZ3hCblFi
RU1ON0Q0OHJwbDhSSGRwMWlEOTk3VTlOd2VtRGpSL0VsYzljR1M4dWVURTIKMUcySVg1M3lxemht
NzJOeWxsK29Udm1PTFdMYlBabmZtL2E5cUc1WEhmTlh6NDk5dXU4VFY0NitNbXJhMThUdHMyK1Bp
eDY2S0w1MwozUGZpTzBkOUo2Yk1uaEkvZVB3SE1XcklxSmh3eW9TYzlhamRXaHNYUDN4eDlPdlNM
NWFzWHhLemw4Mk9qdTA3Rm15YjJ2cmF1UGlSCmkyUHlYeWJIZ0c0RDRyZG4vRGFHOXg1ZWRodlVi
cTJOZjMvazMyUFB6bnZHMCs4K0hYdlU3QkdIOVRzc1BqWHdVOXN1WmwrWUdIMDYKOTRtYTlqVXhm
dWI0K09QWC9oaUR1Zy9LVzM2K2ZaZlNkNFdNbnprKzdudmp2cGkzYWw3TVh6VS9yanZsdXFMOVZH
bzcvR0h1SDJMcwoxTEZ4M0Q3SHhVMm4zeFQzekwwbi91M2hmNHREK3gwYTE0KzVQb2IySEJyalpv
Nkx1K2ZjSFkrYzgwaDBiTmV4NEJpWXRYUld6blk3ClpNOUR5dXJuZlh2dUc4czJMb3VLcUlqUERQ
NU0wVGJLSW92dlRmdGVqRHRwWExQbk56ZHNqbVVibDhXbEoxd2FONzk4Yzl6eWwxdmkKWDQ3OGw2
TGxsYU9jdW40YzUxMHA0N2RRL1hLTjM4NGRPamZieDZNTEhvMFhscndRRlJVVmNlL2NlMlBpcVJQ
amtENkh4TFFGMCtMWApzMzRkUS9jWUd2V045WEh6eXpkSFZidXErTTFwdjRuUlEwWVgzUjVSZUM3
azIyKytjWHhVLzZPYTFidlFjWmM3Nzh1ZDU2MDkxNVRTClp2bmFaZnZZeWJkdWZucWZUNWUxQnVl
U2IzMHZOczUzWlp6bFUwN2JGMnVYUXVXMWROdHJ0OFdQbnZwUkRPNHhPSzcrL05VeHJOZXcKZUhY
WnEvSE5xZCtNS3o1N1JZd2FQS3JzUHMzWEwvbkcrb2c5UjhRUG4vcGhkS3Z1RnJQZW54V2YzUHVU
Y2ZIZlhWeXdySmJ0Y3Y5Ygo5OGNGOTEwUUE3c05qTjk5NlhjeHRPZlFlRzdKYzNIV0hXZkZEWDkv
UTV5MDcwbEYrNlRRK2I2bFVzZGVhNjZ2Q3EyWnVjYkRwcTJiCjhyWmZ2bU51T1lZditjd2xjZGVj
dTVxVjI1WnJUckh5Ym56cHh2ajk2NytQclkxYjQxc1BmQ3RxT3RURXp6NzNzNUxiUGRmWXV2b0wK
VjhjekM1L1phYndkMU9lZ3NxOHJXcTdISDFsWm1UcitzR04yN2ozbjV0ejJpZXMva1kyY01ES2I5
dmEwYk5HNlJkbXdYdzdMTHJqdgpnaXpMc216WnhtWFovN3IvZjJXOWY5bzd5N0lzcTIrc3o0NmNk
R1RUdi8zdVE5L05HcktHbk9YKzR0bGZaUDErMWk5bk9VczNMTTBPCnVQYUFiTmd2aDJWVDM1eWF2
YlBtbmV6QVh4NllYVGoxd2l6THNteHI0OWJzNUZ0UHp0WnRXWmMxWkEzWjJQdkhabjJ1NnBPdDNy
eDYKcC8wVXFsT2hZOHV5TER2K3B1T3pXLzV5UzVabFdWYlhVSmNkZGNOUjJaamJ4alJ0MzN2YzN0
bVBwditvNmZGSmswL0t6cnJ6ckp6SAptR1ZaZHNwdHAyUlRYcHVTWlZtV05XUU5XZityKzJlZm0v
eTVuTzJUWlZrMllOeUE3T0RyRHM3dWUrTys3TEVGajJXRHh3L085cjFtCjM2eStzYjZzTnNpeUxM
djJ1V3V6Ly9Qdy84bXlMTXRlWGZacUZwZEdkdVV6VjJidnJIa25tL0hlakt6bmxUMnpReWNjbXYz
KzlkOW4KWSs4Zm04MVpNU2R2K1lYMlhhenZTakY0L09Ec2l1bFhORDB1MUUvbHRzUGhFdy9QenIv
My9LYkhKOXg4UW5iZXZlYzFQZjdqVzMvTQpibnI1cHFiSGhjWkFyblo3YytXYlpmZHpYVU5kdHJ4
MmVaWmxXYlo0L2VKbTI2NTcvcm9zTG8zc2tzY3Z5Vzc1eXkzWnBCY25aV2ZmCmRYYXpjYmJkelMv
Zm5OMy81djFabG0wYmF3Zjk2cUNjKzN0NTZjdFpYQnJaK0puamQ5clB6UGRtNXExbnNicnU2T002
NzBvWnY4WHEKMTNMODdtaEx3NVpzNzNGN1o0OHRlQ3pMc2l5NzlJbExzelB2T0RQTHNpeGJzR1pC
dHVkVmUyWkRyaG1TVFg5M2V2Ymt3aWV6a1JORwpaZ04vUHJDazdZWG1RcUg5NWh2SExSVTY3dGJN
KzNMbWVXdlBOY1hhckZDN1pGbmhkYlBjdGFlbFF1dDdsaFVmNTYwZFo3bVUwL2JGCjJxVlllVm0y
OHh3OS9xYmpzOUczakc1NnZMVnhhOTc2N3NvOHlEZld2L0RiTDJRejNwdVJaVm1XdmJEa2hTd3Vq
ZXpGOTE4c1dGYXUKZHJuZ3ZndXkvYS9kditseGZXTjlkdlpkWjVmVUo4WEd3NDV0VnM3WUsvZjZL
c3NLcjVtNWpqdGYreFU3NWgzSGNLNXkyM3JOS2JaMgozekg3anF6eXNzcTgvNzdjc1hYSDdEdHlq
cmZXWEZkOFhMVDV2UVZqRGhnVG54M3kyUmpRZFVDTUdqSXE1cTdZOWdIWFBwMzZ4SWkrCkk1cmVB
bDJ6ZVUyOHZQVGxlR0RlQXhFUmNlSGhGMGFXRlg5N3RHVTVmVHYzamYzMjJDOUc5QjBSWS9ZZkU0
TzZENG9UaDV3WWI2eDQKSXlJaTdwaDlSMlJaRnRQZm5SNFB6bnN3OXVxeVZ5emZ1RHllV3ZqVVRt
VVhxMU8rWTN0dy9vUHg5THRQeDFjTytVcEViSHQ3OVB6RAp6by83Mzd3L1pyeTNMWjNYdEs5cDlw
Wm9wdzZkOHI1Rk9uUHh6SGpnclFmaTgwTzN2ZnRVR1pYeHhmMi9XTFJ0emhsNVRweDZ3S2t4CmF2
Q28rTW5vbjhUYnE5K09hVzlQSzZzTklpSW0vMlZ5OUtycEZSRVJoL1E1SlBwMDdoTVJFWU82RDRw
ajlqNG1odlVlRnNQN0RJOHoKaDU4WkUwNlpFQys5LzFMZThndnR1MWpmbGFxaW9uazc1dXVuY3R2
aHZNUE9pNGZtUDlUMDF2TG9mVWZIMURlbU5yMDlQTzN0YVhIVwpRV2RGUlBFeGtLdmRWbTVhV1hZ
L2Q2anNFTDFyZWtkRVJQOHUvWE8vcGwySHFHcFhGZFh0cS9PK0ZYLy9tL2ZIRjRaK0lTSzIzVWI1
Cit2TFgyL3l6Q0tYVU5lTGpPKytLamQ5UzZoZXg4L2pkcmtObGh6aGorQmt4c3QvSWlJam8xYWxY
ekZrK0p5SWlCbmNmSEFPN0Q0eS8KUC9EdjQ3aUJ4OFh4K3h3ZlU3NDBKUmF0WFJSelZzd3B1cjNR
WENpMDMxemp1T1Z0RU1XT3U3WHp2dFI1M3RwelRiRTJLOVF1RVlYWAp6WExYbmx6eXJlOFJwWTN6
MW95emZFcHQrMkx0VXF5OFhMNzdkOStOUnhjOEdndldMSWlJaUtmZmZUcE9IcHI3U3paMlpSN2tH
dXVMCjFpMktsNWErRkVmdmZYUkVSQnl4MXhFeFljeUVvbjJjcTEyK2ZkUzM0NjJWYjhYelM1NlBp
T2JuazFMNnBOQjQyRkU1WTYvYzY2dGkKYTJiTDhoNTc1N0c4N1ZmS01XOGZ3eTNMYmVzMXA5UzF1
NUJ5eDlaWkI1MjEwM1B6Vjg4dis3cml3N3d0clZ4dEhrQjJYUFI2ZHV3WgpHK28yTk51MmZYdnZt
dDV4eHZBejR0VGJUbzF2UGZDdEdOeGpjTFNyYUZmeVBuYmNUOHZIWGF1Nnh1YXRteU1pWXNaN002
SlhwMTVSCjFhNHFxdHBWeGJIN0hCdVBuUE5JSExIWEVUdVZXNnhPK1k3dHVjWFBSWi9PZlpwOThP
cW92YmU5QmZiUzBwZEtPcVlkUGZIT0V6R3MKOTdEb1VkMmo2Ymt1VlYySzN0TzU0ejM1eHd6WTl2
YnFXeXZmS3FzTklpSzZWbmR0TnNuNmRlblh0R0JFYkR2WjllblVwK2x4b2ZLTAo3YnRRMzVWcXB4
TnRubjRxdHgzT1B1VHNXTDV4ZVV4ZnVPMiswOWVXdlJZYjZ6ZkdvMjgvR3BzYk5rZGoxdGgwSzBN
cFk2Qmx1N1cyCm40djUzTDZmaXk4Zi9PVTQ1eFBueEUybjNSUUR1ZzFvdHYybHBTL0ZpdG9WOGV1
WGZoMlRaazJLUmVzV1JWVzdxdmpsYzcvY3BmMjIKMXNkNTNoVWF2NlhXTDEvNUZWRVJ2L2pDTDJM
TjVqVng1VE5YeHBQdlBCbnI2OVkzMjc1ak93M3JOU3g2MXZSc3VnZ3B0TDNRWENpMgozNWJqdUtW
U2pyczE4NzdVZWQ2eS9ITE9OWVhhckZpN0ZGbzN5MTE3Y3NtM3ZwZXF0ZU9zV0ZtRjJqNmkrUG1r
V0hrdG5YckFxVEd3CjI4Q1k5T0traU5qMng1UXpEenF6WUYxYk13OGlkaDdyVHkxOEtqNDE4RlBO
Nmp2MmlMSFJxNlpYMmVlNmtYMUh4aEg5ajRqZnZ2TGIKaUloNGFONURjY29CcHpTOXRsaWZsRG9l
eWgxNzVWeGZsYkptN3ZqdkM3VmZLY2Vjcjl5MlhuUGE0dHhTN3RqSzlWeHJyaXMrVG9wKwpCbVIz
dXUzTTI2Si8xLzV4emJQWHhLejNaOFZEMzNnb3VsVjFhOU45cktoZEVlMHIyeGY4dHA1ZHJWTnRm
VzJzcUYwUkcrbzNSSmNPClhTSWlZa1RmRWRHK3NuMXNyTnRZZHAzZlcvZGVyS2hkc2RQeitmNkNs
Y3VnN29PaWEzWFg2RnJkdGV3MitPNHgzNDF6N3prM1hsMzIKYWxTM3I0NU9IVHJGWndibHY0ZS9V
UG5sN250M0tyY3V2V3A2eFpnRHhzU3RyOTRhUFRyMmlDUDdIeG1WRlpVeDViVXBzWGJMMmpoOQoy
RisvQXJBMVk2QXQrcm1ZaXFpSW40eitTYlBuSnJ3d0ljNDc3THpvVXRXbDZiblRoNTBlZDgyNUt4
YXRXeFFEdXcxc3MvMlg2bTlsCjNyVjEvU2ErT0RHZWZ2ZnArTTFwdjRrYlo5MFl6eTErcnVEckt5
c3FvMzFsL21WOSsvWmljNkhjL2U2b3JmdWxMZXpLdVdiSE5pM1UKTG9YV3piWmVCM2RjMzl2Q3J2
UjNNZVdlVDRwcFY5RXUvdm1UL3h6alo0NlB5MFpkRnB1MmJtcDJBVnlLVXVkQlN4OXMrQ0JlVy9a
YQp6bTJ0NmVQekR6cy9MbnZpc3ZqaGlUK01qdTA3UmxWbFZkTzJjdnFrMEhqWW5lZmdjdGZNUXUw
WDBmcHgyTlpyVGx1VTF4YnQvbEZjClM5dlNoL1pMNkVzM0xvMWxHNWZGenovLzgzanc2dy9HcTh0
ZWpTbXZUV256L1F6cE1TUWVtZjlJYkc3NGE5TE5Jb3NuRmo3UlpuVWEKMW50WU5EUTJ4UE9MbjI5
NmJ0bkdaYkcxY1dzTTcvUFhENFUxWm8wbDFibC8xLzZ4Zk9QeWVIUFZteVc5UHBjbEc1YkUraTNy
NDdCKwpoNVhWQmhFUlg5ei9pM0hoRVJmR2cvTWVqQmVXdkJDUC8xUGhXM01LbFYvdXZsdWoxQXZF
MXRUbDNFUFBqVHRuM3hrM3pMb2hMamo4CmdqanZzUFBpN3JsM3g3UzNwelU3aVpZNkJuYlVGdjFj
aWgzL2VySm15NXBZdUhaaG5QT0pjK0tNWVdjMC9mYy9qLy9QYUdoc2lJa3YKN3Z4dFdlVll2SDV4
L09ibDM1VDFiLzZXNWwxcjZwZHYvTDYrNHZYNGx6LytTL3pzcEorVjlGWEFiNjU2TTFiV3JvekQ5
enE4NlBaQwpjNkhjL2JiVW1ybFFpdFlHd1YwNTErellac1hhcGRDNjJkYnI0STdyKzNiRnhubGJq
Yk55bFhzK0tjVUZoMThRYXphdmlmOTQ5RCthClBzaGVxbExuUVM2RGVneUt0MWErRmZOWHoyLzIr
cGVXdnRTcVB2N3FpSy9HdWkzcjRqdC8razc4dy9CL2FIcSszRDdKTlI2MjI1M24KNEhMWHpFTHRW
OG94NXh2RGJiM210RVY1YmRIdXUyc3QvYWdvSzRBMFJtUFVOZFRGcWsyNWYvR3h0cjQyYXV0cm14
NXYycm9wTm0zZAoxR3o3cHEyYklvc3NWdGF1ak50bjN4NFJFU2Z0ZTFLY2R1QnB6ZjRpdTZPNmhy
cG1QMksyWXpuYnQrKzQrTmJXMTBaRDFoQVJFVi83CnhOZmlnNDBmeE5pcFkyUDE1dFd4ckhaWlhQ
N2s1VG52a3l0VXAwTEhkdFpCWjhXQWJnUGlrYmNmYWRyK3dwSVhZbGp2WVUzMzJZL28KT3lLZVhm
eHMxRFhXeFpJTlMyTCs2dmxOdnhMZDhoaS9mUENYbzMxbCs1and3bCsvcVdmdWlybXhvblpGMDNI
bHN1TzJ4eFk4RnFjUApPejFHOWgxWlZodEVSRnoyNUdWeFFLOEQ0bCtQL3RmNDZpRmZqWnIyTmMy
MmIyM2MycXhmQzVWZmJOK0YraTRpWW4zZCt2aC9qLysvCm1MVjBWczY2OXVqWUk5NWI5MTVFYlB0
VjcwTDlWRzQ3UkVTY3ZQL0pVZDIrT3RwVnRJdnUxZDNqeENFblJyZnFickZYbDcyYXZaMWIKeWho
bzJXNnQ3ZWQ4dHBkZDZOZk5iNXgxWTg3N3BVZnNPU0pHOUIwUkUxK1lHT3ZxMWpVOXYzMnU3empu
dDVmZjhvSm5TOE9XK09iVQpiK1k4Q1JieWNaNTNoY1p2S2ZWck9YNTNOR2Y1bkdqTUd1UDE1YTlI
UTlZUVR5NThNalp2M1J6WmYvOG5JcG9keStNTEhvOVBEL3AwCnM5dGI4bTB2TkJlSzdiZmxPRzZw
bE9NdU51OWJLbWVlYnkrdk5lZWFRbTFXckYwS3JadkYxcDVpNjF4RS92VTlvdmc0MzlWeHRxTnkK
Mmo2aStQbWtXSGt0ei84UjIyNnIrOG9oWDRsSkwwNktVdzg4TlcrYmJkZWFlUkNSZTgzdTJMNWpu
SGZ2ZVRGbnhaeVlzMkpPL1BzagoveDREdXc4c1dsYkxkb21JNkZIZEk4NFlma1k4Kzk2enpiNjVx
SlErS1RRZWRteXpjczk3NVZ4ZmxiSm03bGhlb2ZZcmRzeTUxb0R0CjViYjFtbE5LZWV1MnJJdkdy
REZxdDlibUxLUGNzWlhydWRaY1YzeWN0THYwMGtzdkxlV0ZzNWZQamg4ODhZTjRZY2tMc1hUajBx
aHEKWHhVSDczbHcwdyt2M0RYbnJwajA0cVJZczNsTkhMdlBzZkgraHZmanA4LzhOT2F0bWhlSDdY
VllyTjJ5Tm40KzgrZng5dXEzbzBkTgpqOWluK3o1eDhjTVhSOGNPSFdQeCtzV3hlTjNpdVBoVEYr
LzBuZnZQTFhrdXJuem15cGkvYW43MDdkSTM2aHJyNHBwbnIya3FaK1BXCmpURis1dmhZdW1GcEhM
dlBzYkZ5MDhxNFl2b1ZNVy9WdkRoNndORnh6TjdIUk44dWZlUHFHVmZIajUvK2Nkejg4czF4NFJF
WDV2eWEKc3VXMXkrT2loeTdhcVU1M3o3Mjc0TEVkc3VjaE1XcklxUGp4OUIvSHBxMmJZdTJXdFhI
cks3Zkc5V091anowNzdSa1JFWDA2OTRseApNOGJGamJOdWpIVmIxa1hmem4xajFhWlZNYkQ3d0Zo
ZXU3elpNWjR3NUlRNHNQZUJjZm1UbDhma1Z5YkhVd3VmYWdwL25hbzZ4WWc5ClIreFU5M1YxNjJM
eUs1TmozWloxOGZTaXArUE5sVy9HdFNkZkc5WHRxcU5QcHo0bHQwRkV4TDF2M0J2Zm4vYjkrT0ZU
UDR3ZlR2OWgKWFBmQ2RiRmd6WUw0M0g2Zmk5dG4zeDZUWHB3VUM5Y3VqSUhkQjhiQmZRNHVXSDZo
YlUrOSsxU01tekV1YjkvdDEzTy9tTE5pVG56agpEOStJV2UvUGlnc1B2M0NudWk1YXR5akd6UmdY
NzY1OU56YldiNHhiL25KTDNuNDZidUJ4WmJWRHhMYTM2ai9ZK0VGODY2aHZ4UjQxCmUwUkZWTVRx
emF2am4wYitVK3hSczBmVDY2cmFWUlVjQTdlOWR0dE83YlpIelI0eHROZlFzdm81bnp0ZXZ5T3Vt
WGxOTE51NExKYXMKWHhLRGVneUt3VDBHTjN2TkxhL2NFdDkvOVBzUkVYSDBnS09iL2JiSHcyOC9I
UGZNdlNjV3Ixc2NjMWJNaWM4TS9rejhlZEdmNDZkLwovbW04dmZydFdMSmhTVlMzcjQ0RmF4YkUr
Sm5qWTBYdGluajVnNWZqbVVYUHhPMnpiNDhiWDdveExuNzQ0bmgvdy90eDlVbFhsL1U1CmxvL3J2
Q3MyZm9mMUhsYTBmanVPMzFGRFJqWDdldFRCUFFmSEEyODlFTDk2L2xjeGYvWDhPSHZFMlhIcks3
ZkczQlZ6WTh5QlkrSTMKTC8wbTNsLy9maXpac0NTbXZ6czlIcDcvY1B6dXpOODFYVnpmTU91R3ZO
c0x6Y3RDKzkxUXZ5RnVuSFZqczNIY1VyRzVVTXE4YjZtYwplZDdhYzAyeE5pdldIL2UvZVgvZWRi
TmY1MzRGMTU1aTYxeWg5YjNZT0IvU1k4Z3VqYk1kUHo5Ujdubis4UDZIRjJ5WGUrYmVVN1M4Ckhl
Zm95SDRqbStxelI2YzlZdjJXOWZHVmc3K1NhMWtwcVU4THpZTmNhM2JQamozamtMNkh4RTB2M3hS
WFBYTlYzUC9XL2ZGL1AvMS8KWTFpdllRWExlbTdKY3p1MXkvYmo2Rm5UTS9wMDdoUEg3WE5jeVgy
eXNYNWozdkhROHBwcDlMNmpvMy9YL2lXZDkxcldzOWoxMVpIOQpqeXg0RHR1MGRWT3o4ajY3NzJk
alpMK1JPZHV2MkRFdldiK2thUXgzcitrZUUxNlkwRlR1TVFPT2lkSDdqbTZ6TmFmWUd2YnM0bWZq
CnFqOWZGZSt1ZlRmcUd1cGlhSytoemM2bkVWSDIyTXIxWEd1dUt6NU9LckpTdm5wcU4yaU14cWlN
eWxpelpVMTBxT3l3MC9lU3Q3VzYKeHJwWXRIWlJET294S05wWDVMNUhlbGZybEVVVzgxYk5pOHFL
eXB3bjBickd1bWhvYklpYTlqVlIzMWhmOUszVmhxd2hWbTllSGIxcgplc2ZtaHMzUnNWM2gzd0dK
MkhhN1FlOU92WE1lWXlsdEVCSHg0NmQvSEY4NjZFdXhlZXZtV0YrM1B0WnNYaE4zekw0anZ2Nkpy
eGU4Cm43RlErYVh1TzVlMVc5YkcrSm5qNHdlZitVSE83U3MycldqNnRxVlNsRnVYTFExYm12M0Nh
Y3ZIT3lvMkJuSnBUVC8vTGZsYm1IZTcKVXI5aTQzZlQxazFOZnpYZXNmNmZ2T0dUY2Z5ZzQrUHlV
WmRIYlgzdFRoOUVMTFk5b3ZCY3lMZmZ0anJ1Y3BVN3o3Y3JaM3lWMG1iNQoycVdVZGJOUWV4ZGI1
eUtLcisrRnhubHJ4OW11YXUzNXBKaEpzeWJGNEI2RDQ2UjlUeXI0dWwyZEI3bGtrY1d5amN1aWIr
ZSt1MXhXClJQNXpTckUrS1RRZTJxSmVwU3AzelN6VWZvV091ZGdZYnVzMXB5M0thNHQyYit2aitx
ajQwRDZFdnYzWEk4djk4RmhyVlZWV0ZlMjQKWGExVFJWUVV2SjJucXJLcTZhYTNVaGIzZGhYdG1p
WmJxUmRCL1RyM0s3ai9ZbTB3YWRha2VIVEJvL0g5NDc2L1UxMWEva1c5blBKTAoyWGMrZDgyNXEr
QzNuSlI3VVZKdVhWcWVHUEtGajRqaVl5Q1gxdlR6MzVLL2hYbTNLL1VyTm41M3ZHVWxWLzA3ZCto
YzhLSzYwUFpDCmM2SFlmb3RwelZ3b3BEWGhJNkoxNDZ0UW0rVnFsMUxYelVMdFhXeWRpeWkrdmhj
YTU3czZ6bHBqVjg0bitheXZXeC9WN2F2amtmbVAKeEIxbjNWSHl2MnZ0UE1pbElpcHlYankzcHF5
SS9PZVVZbjFTYUR5MFJiMUtWZTZhV2FqOUNoMXpzVEhjMW10T1c1VFhGdTNlMXNmMQpVZkdoZmdz
V0h6MS9OK0R2NGwvLzlLOXgxcDFueFJIOWo0aE45WnZpZzQwZnhKZ0R4c1RRbmtNL2xEcjl3N0Iv
Mk9udFRmaWZyREVhClk4bjZKYzArekZuT2RuYTJLMjNXRnV2bTMrSTYxOWJuayt0ZXVDNisvY0Mz
WSsrdWU4ZXZUL3QxMFZzOXpRUDQ2UHJRYnNIaW8ydnQKbHJYeDFNS25ZdW1HcFRGcXlLZ1BMWGdB
dWYzWFgvNnI2UU9aKy9iY044NCs1T3l5dHJPelhXMHo2Mlp1YmRrdXF6YXZpdHRmdXoxTwpHM1ph
d1I4MzNjNDhnSTh1QVFRQUFFam1RL3NkRUFBQTRIK2VYUW9nRytvM3hLSjFpOXFxTGp2WjByQWwv
dnplbi9OdWI4Z2FZdTdLCnVYbTNiNmpmRUl2WEw5NGRWU09SM1QzR0FBQklxOVVCNUxiWGJvdStW
L1dOeWE5TWJzdjZOSGwyOGJOeDVLUWo0NHpiejhpNS9ma2wKejhlaEV3Nk5iMDc5WnM3dEUxK2NH
TDJ1N0JWM3ZuN25icWtmdTkvdUhtTUFBS1RYNmdEeTFVTytHb042REdyTHVqUno5TjVIeDdtSApu
cHQzK3lmN2Z6Sk9HSHhDM3E4TEhIdkUyT2haODdmMWpTTEZiR25ZRW8rLzgvaUhYWTAyczd2SEdB
QUE2WlVWUUxKby9ubjFEcFVkCnl2ckY0M0pWdGF2S1dYNWpORVpFUlB2SzlqbC96WFozMTY5bE8z
d1V5cXB2ckk5djNQMk5tUDd1OUdUN1RHRjNqekVBQU5JcTZYZEEKYnA5OWU2emF0Q3JXYlZrWDk3
NXhiL3o1L0w5K0xxTXhhNHhMbnJna2JuNzU1dWhXM1MybW5qMDFodlFZRWhIYjd0Ly8zclR2UlhX
Nwo2cGkvZW43czAzMmZ1SEwwbFZIVHZpWnVuMzE3WFBUUVJmRzk0NzRYM3pucU96Rmw5cFQ0d2VN
L2lGRkRSc1dFVXlia3JFZnQxdHE0CitPR0xvMStYZnJGay9aS1l2V3gyZEd4ZitFZHZhdXRyNCtK
SExvN0pmNWtjQTdvTmlOK2U4ZHNZM250NFJFUjhzUEdEdVBLWksrUEYKSlMvR2hyb044YXRUZmhY
SDdIM01UbVZNV3pBdGZqM3IxekYwajZGUjMxZ2ZONzk4YzFTMXE0cmZuUGFiR0Qxa2RNeGFPaXNt
dmpBeAorblR1RXpYdGEyTDh6UEh4eDYvOU1RWjFINVMzL0h4dG1xOU9qNy96ZUV4OGNXSU02RFln
aHZjZUhsZE12eUk2dE9zUWYvcmFuMkpJCmp5RXhmdWI0dU8rTisyTGVxbmt4ZjlYOHVPNlU2M2I2
MGFWOCt5elVUL05XejR0SkwwNktyWTFiWTlUZ1VYSEo0NWRFdThwMmNlM0oKMTBhWHFpNXgyWk9Y
eFRQdlBoUGZPZm83OFIvSC9VZkJZL2pEM0QvRTJLbGo0N2g5am91YlRyOHA3cGw3VC96YncvOFdo
L1k3Tks0ZgpjMzBNN1RrMHhzMGNGM2ZQdVRzZU9lZVJwaDgwS2pURzh1Ukt3Vk1BQUJVN1NVUkJW
TzJyTlgwQ0FFQUNXUkgxamZYWmtaT09iSHI4CjNZZSttelZrRFZtV1pka25ydjlFTm5MQ3lHemEy
OU95UmVzV1pjTitPU3k3NEw0TG1sNTcvRTNIWjdmODVaWXN5N0tzcnFFdU8rcUcKbzdJeHQ0MXAy
cjczdUwyekgwMy9VZFBqa3lhZmxKMTE1MWxOajMveDdDK3lmai9yMS9UNGxOdE95YWE4TmlYTHNp
eHJ5QnF5L2xmMwp6ejQzK1hONTZ6NWczSURzNE9zT3p1NTc0Nzdzc1FXUFpZUEhEODcydldiZnJM
NnhQdHZhdURVNytkYVRzM1ZiMW1VTldVTTI5djZ4CldaK3IrbVNyTjYvZXFad0ZheFprZTE2MVp6
YmttaUhaOUhlblowOHVmREliT1dGa052RG5BN01zeTdJWjc4M0llbDdaTXp0MHdxSFoKNzEvL2ZU
YjIvckhabkJWejhwYWZyMDBMMVducGhxWFpBZGNla0EzNzViQnM2cHRUczNmV3ZKTWQrTXNEc3d1
blh0aFV6dUR4ZzdNcgpwbDlSZGo4VzZxZDVxK1psaDAwOExCdHl6WkRzOTYvL1BxdXRyODNPdXZP
c2JPZ3ZobVpYVEw4aVcxRzdJdnZCRXovSUtpNnJ5Rlp0CldsVzBYUStmZUhoMi9yM25OOVhqaEp0
UHlNNjc5N3lteDM5ODY0L1pUUy9mMVBTNDBCZ3J0Szl5K3dRQWdEU0szb0sxWnZPYWVIbnAKeS9I
QXZBY2lJdUxDd3krTWJJZWZEaGx6d0pqNDdKRFB4b0N1QTJMVWtGRXhkOFcyYjZWNmNQNkQ4ZlM3
VDhkWER2bEtSR3k3bGViOAp3ODZQKzkrOFAyYThOeU1pSW1yYTF6Uzd2YVpUaDA1NWI3ZVp1WGht
UFBEV0EvSDVvWitQaUlqS3FJd3Y3di9Gb2dIcm5KSG54S2tICm5CcWpCbytLbjR6K1NieTkrdTJZ
OXZhMHVHUDJIWkZsV1V4L2QzbzhPTy9CMkt2TFhyRjg0L0o0YXVGVE81VXh1UHZnR05oOVlQejkK
Z1g4Znh3MDhMbzdmNS9pWThxVXBzV2p0b3BpellrNGNzL2N4TWF6M3NCamVaM2ljT2Z6TW1IREto
SGpwL1pmeWxwK3ZUUXZWcVcvbgp2ckhmSHZ2RmlMNGpZc3orWTJKUTkwRng0cEFUNDQwVmJ6U3Jh
MFZGN3ZiTHQ4OWkvYlJmei8zaTBINkh4c0Y5RG80emg1OFpOZTFyCjR2UmhwOGZDdFF2ais4ZDlQ
M3JWOUlyL2Zjei9qaXpMWXVIYWhVWGI5YnpEem91SDVqL1VkQnZkNkgxSHg5UTNwc2JXYkd0RVJF
eDcKZTFxY2RkQlp6ZXFlYjR3VjJsZTVmUUlBUUJwRkEwanZtdDV4eHZBejR0VGJUbzF2UGZDdEdO
eGpjTFNyYU5lMGZjZkEwTE5qejloUQp0eUVpSXA1Yi9GejA2ZHluMllmRWo5cjdxSWlJZUducFMy
Vlg5SWwzbm9oaHZZZEZqK29lVGM5MXFlcFM5UE1CM2F1N04vMy9Zd1pzCnU5WG1yWlZ2eFl6M1pr
U3ZUcjJpcWwxVlZMV3JpbVAzT1RZZU9lZVJPR0t2STNLV1V4RVZ6WTU3V0s5aDBiT21aMHg3ZTFw
RWJBdFQKZlRyMWFkcGVxUHg4YlZxc1RoWC8vWi90dWxaMWpjMWJOKzlVejF6eTdiT1VmbXBaWnRl
cXJzMGVkNnZ1RmhFUnl6Y3VMM29NWng5eQpkaXpmdUR5bUw5ejJXWlhYbHIwV0crczN4cU52UHhx
Ykd6WkhZOWE0MDYxaitjWllzWDJWMHljQUFLUlIwbWRBYmp2enR1amZ0WDljCjgrdzFNZXY5V2ZI
UU54NktibFhkQ3Y2YjJ2cmFXRkc3SWpiVWI0Z3VIYnBFUk1TSXZpT2lmV1g3MkZpM3NleUt2cmZ1
dlZoUnUyS24KNS9QOXhUK1hRZDBIUmRmcXJ0RzF1bXVzcUYwUjdTdmJ4K2dobzh1dXkzYVZGWlhS
dmpKM0V4WXJQMWVidGtXZENzbTF6OWIwVTJWRgpaYk5Rc09QL0wzWU12V3A2eFpnRHhzU3RyOTRh
UFRyMmlDUDdIeG1WRlpVeDViVXBzWGJMMmpoOTJPa2xIMCs1N2JXNzJ4Y0FnT0tLCnZnT3lkT1BT
V0xaeFdmejg4eitQQjcvK1lMeTY3TldZOHRxVW9nVVA2ejBzR2hvYjR2bkZ6emM5dDJ6anN0amF1
RFdHOXhuZTlGeGoKMWxoU1JmdDM3Ui9MTnk2UE4xZTlXZExyYzFteVlVbXMzN0krRHV0M1dBenBN
U1FlbWY5SWJHNzQ2enNJV1dUeHhNSW5TaXJyelZWdgp4c3JhbFhINFhvZm4zRjZvL0h4dHVxdDFp
c2dmeVBMdHM5UitLbFVweDNEdW9lZkduYlB2akJ0bTNSQVhISDVCbkhmWWVYSDMzTHRqCjJ0dlQ0
ak9EUHRPbSs5cVYxd01BMFBhS0JwQ1Z0U3ZqOXRtM1IwVEVTZnVlRktjZGVGcDBxZHIybC9MYSt0
cW9yYTl0ZXUybXJadGkKMDlaTkVSRngxa0ZueFlCdUErS1J0eDlwMnY3Q2toZGlXTzloOFlXaFg0
aUliWDlwZjNieHMxSFhXQmRMTml5Sithdm54OHBOSzV0ZQpYOWRRRi9XTjlSRVI4ZVdEdnh6dEs5
dkhoQmYrK2cxWmMxZk1qUlcxSzZJaGE4aGIveDIzUGJiZ3NUaDkyT2t4c3UvSStOb252aFlmCmJQ
d2d4azRkRzZzM3I0NWx0Y3ZpOGljdmovMzMyRDkvVyt4UXQ4Y1hQQjZmSHZUcE9IcnZveU1pWW12
ajFxWmpqNGlDNWVkcjAySjEKcW11b2F4YllhdXRybXgxZmo0NDk0cjExNzBWRXhPck5xNXZYUGM4
K1MrbW4rc2I2WnZ2WjByQWxHcktHcHI3WjJyanQ4eHVOV1dOSgo3WHJ5L2lkSGRmdnFhRmZSTHJw
WGQ0OFRoNXdZM2FxN3hWNWQ5dHJwZHE5Q1k2ell2c3JwayszSGRjWFRWOFI3Njk4TEFBQjJqM2FY
ClhucnBwWVZlc0x4MmVWejAwRVhSc1VQSFdMeCtjU3hldHpndS90VEZjZmZjdTJQU2k1Tml6ZVkx
Y2V3K3g4YjdHOTZQbno3ejA1aTMKYWw0Y3R0ZGhjY2llaDhTb0lhUGl4OU4vSEp1MmJvcTFXOWJH
cmEvY0d0ZVB1VDcyN0xSblJFVDA2ZHdueHMwWUZ6Zk91akhXYlZrWApmVHYzalZXYlZzWEE3Z05q
ZWUzeXVQS1pLMlArcXZuUnQwdmZPR0hJQ1hGZzd3UGo4aWN2ajhtdlRJNm5GajRWamRFWWRRMTEw
YW1xClU0elljOFJPZFY5WHR5NG12ekk1MW0xWkYwOHZlanJlWFBsbVhIdnl0VkhkcmpyNmRPb1Rm
YnYwamF0blhCMC9mdnJIY2ZQTE44ZUYKUjF3WVIvVS9LbWM3M0REcmhuaC8vZnV4Wk1PU21QN3U5
SGg0L3NQeHV6Ti9GMTJxdXNSdHI5MFdrMTZjRkF2WExveUIzUWZHd1gwTwpMbGgrdmpidDI3bHYz
bi96MUx0UHhiZ1o0MkxwaHFWeDdEN0h4c3BOSytPSzZWZkV2Rlh6NHVnQlI4ZCtQZmVMUmVzV3hi
Z1o0K0xkCnRlL0dxQ0dqbW4yV0l0OCtPN2JyV0xDZlppNmVHVDk1K2lleFpQMlNPSEx2SXlNcUlx
Nllma1c4c2VLTnFLeXNqTVAyT2l4K1B2UG4KOGRpQ3g2S3VvUzVPTy9DMDJML1gvZ1hidGJLaU1q
N1krRUY4NjZodnhSNDFlMFJGVk1UcXphdmpuMGIrVSt4UnMwZlQ2KzZhYzFmQgpNWGJjd09QeXRs
ZTVmUklSOGRhcXQrSkxkM3dwUnZZYkdTUDdqaXg5RmdFQVVMS0tiTWV2dE1xaE1ScWpNaXBqelpZ
MTBhR3l3MDRmCkVDNG1peXptclpvWGxSV1ZzVi9QL1hiYVh0ZFlGdzJORFZIVHZpYnFHK3Z6L3JM
NWRnMVpRNnpldkRwNjEvU096UTJibTM0cm9wQ2wKRzVkRzcwNjlvMzNGenAvWHFHdXNpMFZyRjhX
Z0hvTnlidC91a3pkOE1vNGZkSHhjUHVyeXFLMnZiZmJoNWtKeWxWK3NUVXV0VXk0cgpOcTJJM2pX
OWQzcSsyRDZMOVZPNWloM0Rsb1l0VWQydU91L2p0dHhYT2E5ZlhydTg1TDRGQUtCOFJRTUkyMndQ
SUZlZmRQV0hYUlVBCkFQallLdm9aRUxhOWU3QmsvYmJQcUFBQUFLM25IWkFTL05kZi9xdnB3OTM3
OXR3M3pqN2s3QSs1UmdBQThQRWtnQUFBQU1tNEJRc0EKQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFB
SUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQQpBSUJr
QkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFB
QUNBWkFRUUFBQWdHUUVFCkFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFB
SklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkEKQUFDQVpBUVFBQUFnR1FFRUFBQklS
Z0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQgpC
QUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFD
QVpBUVFBQUVoR0FBRUFBSklSClFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpB
UVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVoKQVFRQUFFaEdBQUVBQUpJUlFB
QUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFD
UwpFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZ
QUFRQUFraEZBQUFDQVpBUVFBQUFnCkdRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFR
QUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUEKa2hGQUFBQ0FaQVFRQUFB
Z0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FF
RUFBQQpJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFB
QUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBCkFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFB
a2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUEKQUNBWkFRUUFBRWhH
QUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVB
QUJJUmdBQgpBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJ
QmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRCkFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtC
QkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUEKQVFBQWtoRkFB
QUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFK
SVJRQUFBZ0dRRQpFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJn
QUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHCkFBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJB
QUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmsKQkJBQUFD
QVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFR
UUFBQWdHUUVFQUFCSQpSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFB
QWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBClpBUVFBQUFnR1FFRUFBQklSZ0FCQUFD
U0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUEKU0VZ
QUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFB
QUVoR0FBRUFBSklSUUFBQQpnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFn
R1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBCkFFaEdBQUVBQUpJUlFBQUFnR1FF
RUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUEK
QUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFr
aEZBQUFDQVpBUVFBQUFnR1FFRQpBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdB
QUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBCkFBQ0FaQVFRQUFBZ0dRRUVB
QUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlC
a0IKQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JC
QUFBQ0FaQVFRQUFFaEdBQUVBQUpJUgpRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFB
Q0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaCkFRUUFBRWhHQUFFQUFK
SVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdB
QkFBQ1MKRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFB
QVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZwpHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNB
WkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBCmtoRkFBQUNBWkFR
UUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFB
Z0dRRUVBQUEKSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNT
RVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQQpBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlB
QVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBCkFDQVpBUVFB
QUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdH
UUVFQUFCSVJnQUIKQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVF
QUFBSUJrQkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUQpBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFB
SUJrQkJBQUFDQVpBUVFBQUVoR0FBRUFBSklSUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBCkFRQUFr
aEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoR0FB
RUFBSklSUUFBQWdHUUUKRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFB
QklSZ0FCQUFDU0VVQUFBSUJrQkJBQUFDQVpBUVFBQUVoRwpBQUVBQUpJUlFBQUFnR1FFRUFBQUlC
a0JCQUFBU0VZQUFRQUFraEZBQUFDQVpBUVFBQUFnR1FFRUFBQklSZ0FCQUFDU0VVQUFBSUJrCkJC
QUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFD
QVpBUVFBQUFnR1FFRUFBQkkKUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJ
UlFBQUFnR1FFRUFBQUlCa0JCQUFBU0VZQUFRQUFraEZBQUFDQQpaQVFRQUFBZ0dRRUVBQUJJUmdB
QkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQUFFaEdBQUVBQUpJUlFBQUFnR1FFRUFBQUlCa0JCQUFB
ClNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0Fa
QVFRQUFFaEdBQUVBQUpJUlFBQUEKZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFR
QUFBZ0dRRUVBQUJJUmdBQkFBQ1NFVUFBQUlCa0JCQUFBQ0FaQVFRQQpBRWhHQUFFQUFKSVJRQUFB
Z0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUVBQUJJUmdBQkFBQ1NF
VUFBCkFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFB
UUFBa2hGQUFBQ0FaQVFRQUFBZ0dRRUUKQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFB
RWhHQUFFQUFKSVJRQUFBZ0dRRUVBQUFJQmtCQkFBQVNFWUFBUUFBa2hGQQpBQUNBWkFRUUFBQWdH
UUVFQUFCSVJnQUJBQUNTRVVBQUFJQmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVJRQUFBZ0dRRUVB
QUFJQmtCCkJBQUFTRVlBQVFBQWtoRkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJ
QmtCQkFBQUNBWkFRUUFBRWhHQUFFQUFKSVIKUUFBQWdHUUVFQUFBSUJrQkJBQUFTRVlBQVFBQWto
RkFBQUNBWkFRUUFBQWdHUUVFQUFCSVJnQUJBQUNTRVVBQUFJQmsvbjh2dXdnSAplMTlGYUFBQUFB
QkpSVTVFcmtKZ2dnPT0KCg==
</data>
<flag name="review"
          id="6202"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>