<?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>5978</bug_id>
          
          <creation_ts>2005-12-06 05:01:30 -0800</creation_ts>
          <short_desc>WebKIt+SVG should use SVGDocumentImpl for image/svg+xml</short_desc>
          <delta_ts>2006-05-25 14:55:17 -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://www.w3.org/TR/SVG/struct.html#InterfaceSVGDocument</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25631</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-06 05:01:30 -0800</bug_when>
    <thetext>WebKIt+SVG should use SVGDocumentImpl for image/svg+xml

Currently we use DocumentImpl for everything.  When we&apos;re actually sent a file with the SVG MIME type, I 
believe we are supposed to instantiate an SVGDocumentImpl instead, and default unnamespaced elements 
to the svg namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29568</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-23 03:12:48 -0800</bug_when>
    <thetext>Specifically we need to support these additional interfaces:
http://www.w3.org/TR/SVG/struct.html#InterfaceSVGDocument

it seems &quot;rootElement&quot; is the only real addition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35562</commentid>
    <comment_count>2</comment_count>
      <attachid>6947</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-03-08 13:33:57 -0800</bug_when>
    <thetext>Created attachment 6947
My first try at this...

Builds using SVGDocumentImpl when svg mimetype is encountered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40797</commentid>
    <comment_count>3</comment_count>
      <attachid>8048</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-01 01:05:25 -0700</bug_when>
    <thetext>Created attachment 8048
Work in progress patch

I noticed the old patch didnt compile, this one does. It tries a new
approach, unfortunately while it fixes the testcase it fails the
webkit tests... Still trying to figure out why.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42846</commentid>
    <comment_count>4</comment_count>
      <attachid>8396</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-18 13:51:43 -0700</bug_when>
    <thetext>Created attachment 8396
Cleaner patch where run-webkit-tests does not crash

With this patch, the run-webkit-tests do not crash anymore. Handling of title
is left to WebCore:Document. Also handling of scripts is left to it.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42860</commentid>
    <comment_count>5</comment_count>
      <attachid>8396</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-18 20:55:37 -0700</bug_when>
    <thetext>Comment on attachment 8396
Cleaner patch where run-webkit-tests does not crash

Generally we don&apos;t like to check in commented-out or #if 0&apos;d out code. I&apos;d like to understand why we need to do that here, such as in ~SVGDocument and SVGDocument::createElementNS.

We also don&apos;t use braces around single line if statements like this one:

+  if (d-&gt;m_request.m_responseMIMEType == &quot;image/svg+xml&quot;) {
+    d-&gt;m_doc = SVGDOMImplementation::instance()-&gt;createDocument(d-&gt;m_view.get());
+  } else

In SVGDOMImplementation, s_instance is no longer used so it should be removed.

What is isSVGDocument for? You add it here, but I don&apos;t see any uses of it.

Otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42905</commentid>
    <comment_count>6</comment_count>
      <attachid>8418</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-05-19 12:08:46 -0700</bug_when>
    <thetext>Created attachment 8418
Improved patch

Hi Darin,

I tried to correct the mistakes, most were there because I had to rush the patch last night.
I think we can remove the unload dispatch since that is probably handled in the Frame.
The isSVGDocument is from an unrelated patch, I removed it.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42964</commentid>
    <comment_count>7</comment_count>
      <attachid>8418</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-19 18:41:59 -0700</bug_when>
    <thetext>Comment on attachment 8418
Improved patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6947</attachid>
            <date>2006-03-08 13:33:57 -0800</date>
            <delta_ts>2006-05-18 13:51:43 -0700</delta_ts>
            <desc>My first try at this...</desc>
            <filename>5978.diff</filename>
            <type>text/plain</type>
            <size>2973</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb25JbXBsLmNw
cAkocmV2aXNpb24gMTMxODUpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRh
dGlvbkltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiArMjIxLDExIEBAIHZvaWQgU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsOjpzZXRBbmltYXQKICAgICBtX2FuaW1hdGlvbkNvbnRleHQg
PSB2YWx1ZTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEltcGw+IFNWR0RPTUltcGxlbWVudGF0
aW9uSW1wbDo6Y3JlYXRlRG9jdW1lbnQoRnJhbWVWaWV3KiB2KQoreworICAgIHJldHVybiBuZXcg
U1ZHRG9jdW1lbnRJbXBsKHRoaXMsIHYpOworfQorCiAvLyB2aW06dHM9NDpub2V0CiAjZW5kaWYg
Ly8gU1ZHX1NVUFBPUlQKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50
YXRpb25JbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVt
ZW50YXRpb25JbXBsLmgJKHJldmlzaW9uIDEzMTg1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZH
RE9NSW1wbGVtZW50YXRpb25JbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGluQW5pbWF0aW9uQ29udGV4dCgpIGNv
bnN0OwogICAgICAgICB2b2lkIHNldEFuaW1hdGlvbkNvbnRleHQoYm9vbCB2YWx1ZSk7CiAKKyAg
ICAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQorICAgICAgICBQYXNzUmVm
UHRyPERvY3VtZW50SW1wbD4gY3JlYXRlRG9jdW1lbnQoRnJhbWVWaWV3KiA9IDApOworCiAgICAg
cHJpdmF0ZToKICAgICAgICAgYm9vbCBtX2FuaW1hdGlvbkNvbnRleHQgOiAxOwogCkluZGV4OiBX
ZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuaAkocmV2aXNpb24gMTMxODUpCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdEb2N1bWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsOCArNTUs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ0NhY2hl
ZE9iamVjdENsaWVudCcKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hl
ZE9iamVjdCAqZmluaXNoZWRPYmopOwogCi0gICAgICAgIEZyYW1lVmlldyAqc3ZnVmlldygpIGNv
bnN0OwotCiAgICAgICAgIC8vIEludGVybmFsCiAgICAgICAgIHZvaWQgZmluaXNoZWRQYXJzaW5n
KCk7CiAgICAgICAgIHZvaWQgZGlzcGF0Y2hSZWN1cnNpdmVFdmVudChFdmVudEltcGwgKmV2ZW50
LCBOb2RlSW1wbCAqb2JqKTsKQEAgLTY0LDEzICs2Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBkaXNwYXRjaFNjcm9sbEV2ZW50KCk7CiAgICAgICAgIGJvb2wgZGlzcGF0
Y2hLZXlFdmVudChOb2RlSW1wbCogdGFyZ2V0LCBLZXlFdmVudCAqa2V5LCBib29sIGtleXByZXNz
KTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0No
YW5nZSk7Ci0KICAgICAgICAgdm9pZCBhZGRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFNWR0VsZW1l
bnRJbXBsICplbGVtZW50KTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBDU1NT
dHlsZVNlbGVjdG9yICpjcmVhdGVTdHlsZVNlbGVjdG9yKGNvbnN0IFFTdHJpbmcgJik7Ci0KICAg
ICBwcml2YXRlOgogICAgICAgICB2b2lkIGRpc3BhdGNoVUlFdmVudChOb2RlSW1wbCAqdGFyZ2V0
LCBjb25zdCBBdG9taWNTdHJpbmcgJnR5cGUpOwogICAgICAgICB2b2lkIGRpc3BhdGNoTW91c2VF
dmVudChOb2RlSW1wbCAqdGFyZ2V0LCBjb25zdCBBdG9taWNTdHJpbmcgJnR5cGUpOwpJbmRleDog
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCShyZXZpc2lvbiAxMzE4NSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTkyLDYgKzkyLDggQEAKICNpZiBTVkdfU1VQUE9SVAogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUgIlNWR0RvY3VtZW50SW1w
bC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uSW1wbC5oIgogI2luY2x1ZGUgIlNW
R0RvY3VtZW50RXh0ZW5zaW9ucy5oIgogI2VuZGlmCiAKQEAgLTYzMSw2ICs2MzMsMTEgQEAgdm9p
ZCBGcmFtZTo6YmVnaW4oIGNvbnN0IEtVUkwgJnVybCwgaW50IAogICBpZiAoIWQtPm1fdXJsLmlz
RW1wdHkoKSkKICAgICBiYXNldXJsID0gZC0+bV91cmw7CiAKKyNpZiBTVkdfU1VQUE9SVAorICBp
ZiAoYXJncy5zZXJ2aWNlVHlwZSA9PSAiaW1hZ2Uvc3ZnK3htbCIpCisgICAgZC0+bV9kb2MgPSBT
VkdET01JbXBsZW1lbnRhdGlvbkltcGw6OnNlbGYoKS0+Y3JlYXRlRG9jdW1lbnQoZC0+bV92aWV3
LmdldCgpKTsKKyAgZWxzZQorI2VuZGlmCiAgIGlmIChET01JbXBsZW1lbnRhdGlvbkltcGw6Omlz
WE1MTUlNRVR5cGUoYXJncy5zZXJ2aWNlVHlwZSkpCiAgICAgZC0+bV9kb2MgPSBET01JbXBsZW1l
bnRhdGlvbkltcGw6Omluc3RhbmNlKCktPmNyZWF0ZURvY3VtZW50KGQtPm1fdmlldy5nZXQoKSk7
CiAgIGVsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8048</attachid>
            <date>2006-05-01 01:05:25 -0700</date>
            <delta_ts>2006-05-18 13:51:43 -0700</delta_ts>
            <desc>Work in progress patch</desc>
            <filename>5978-2.diff</filename>
            <type>text/plain</type>
            <size>5415</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkocmV2aXNpb24gMTQxMjUpCisrKyBXZWJDb3Jl
L2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCwyNiArNTAsMTkg
QEAKICAgICAgICAgCiAgICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogICAgICAgICAKLSAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnQoY29uc3QgU3Ry
aW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNv
bnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgICAgIC8v
IERlcml2ZWQgZnJvbTogJ0NhY2hlZE9iamVjdENsaWVudCcKICAgICAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZpbmlzaGVkKENhY2hlZE9iamVjdCAqZmluaXNoZWRPYmopOwogCi0gICAgICAgIEZy
YW1lVmlldyAqc3ZnVmlldygpIGNvbnN0OwotCiAgICAgICAgIC8vIEludGVybmFsCiAgICAgICAg
IHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7CiAgICAgICAgIHZvaWQgZGlzcGF0Y2hSZWN1cnNpdmVF
dmVudChFdmVudCAqZXZlbnQsIE5vZGUgKm9iaik7CiAgICAgICAgIHZvaWQgZGlzcGF0Y2hab29t
RXZlbnQoZmxvYXQgcHJldlNjYWxlLCBmbG9hdCBuZXdTY2FsZSk7CiAgICAgICAgIHZvaWQgZGlz
cGF0Y2hTY3JvbGxFdmVudCgpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKLQogICAgICAgICB2b2lkIGFkZEZvcndhcmRSZWZlcmVu
Y2UoY29uc3QgU1ZHRWxlbWVudCAqZWxlbWVudCk7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHZpcnR1YWwgQ1NTU3R5bGVTZWxlY3RvciAqY3JlYXRlU3R5bGVTZWxlY3Rvcihjb25zdCBEZXBy
ZWNhdGVkU3RyaW5nICYpOwotCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gPHNjcmlwdD4gcmVs
YXRlZAogICAgICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRzKGJvb2wgbmVlZHNTdHlsZVNlbGVjdG9y
VXBkYXRlKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaAko
cmV2aXNpb24gMTQxMjUpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw5IEBACiAgICAgICAgIGJvb2wgaW5Bbmlt
YXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0QW5pbWF0aW9uQ29udGV4dChi
b29sIHZhbHVlKTsKIAorICAgICAgICAvLyBPdGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00p
CisgICAgICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KEZyYW1lVmlldyog
PSAwKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9hbmltYXRpb25Db250ZXh0IDog
MTsKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTQxMjUpCisr
KyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJEb2NMb2Fk
ZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgogI2luY2x1ZGUgIktTVkdUaW1lU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCkBAIC04MSwxMyArODIsMjMgQEAKICAgICByZXR1
cm4gU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8RWxlbWVudD4gU1ZHRG9jdW1lbnQ6OmNyZWF0
ZUVsZW1lbnQoY29uc3QgU3RyaW5nJiB0YWdOYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NS
ZWZQdHI8RWxlbWVudD4gU1ZHRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnROUyhjb25zdCBTdHJpbmcm
IF9uYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRXhjZXB0aW9uQ29k
ZSZlYykKIHsKLSAgICBRdWFsaWZpZWROYW1lIHFuYW1lKG51bGxBdG9tLCB0YWdOYW1lLmltcGwo
KSwgU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSk7Ci0gICAgUmVmUHRyPFNWR0VsZW1lbnQ+IGVs
ZW0gPSBTVkdFbGVtZW50RmFjdG9yeTo6Y3JlYXRlU1ZHRWxlbWVudChxbmFtZSwgdGhpcywgZmFs
c2UpOworICAgIHJldHVybiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudE5TKF9uYW1lc3BhY2VVUkkv
KlNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkqLywgcXVhbGlmaWVkTmFtZSwgZWMpOworI2lmIDAK
KyAgICBTdHJpbmcgcHJlZml4LCBsb2NhbE5hbWU7CisgICAgaWYgKCFwYXJzZVF1YWxpZmllZE5h
bWUocXVhbGlmaWVkTmFtZSwgcHJlZml4LCBsb2NhbE5hbWUpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9DSEFSQUNURVJfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBRdWFs
aWZpZWROYW1lIHFOYW1lID0gUXVhbGlmaWVkTmFtZShBdG9taWNTdHJpbmcocHJlZml4KSwgQXRv
bWljU3RyaW5nKGxvY2FsTmFtZSksIEF0b21pY1N0cmluZyhfbmFtZXNwYWNlVVJJKSk7CisgICAg
CisgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IGVsZW0gPSBTVkdFbGVtZW50RmFjdG9yeTo6Y3JlYXRl
U1ZHRWxlbWVudChxTmFtZSwgdGhpcywgZmFsc2UpOwogICAgIGlmICghZWxlbSkKLSAgICAgICAg
cmV0dXJuIERvY3VtZW50OjpjcmVhdGVFbGVtZW50KHRhZ05hbWUsIGVjKTsKKyAgICAgICAgcmV0
dXJuIERvY3VtZW50OjpjcmVhdGVFbGVtZW50TlMoX25hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFt
ZSwgZWMpOwogICAgIHJldHVybiBlbGVtOworI2VuZGlmCiB9CiAKIFNWR1NWR0VsZW1lbnQgKlNW
R0RvY3VtZW50Ojpyb290RWxlbWVudCgpIGNvbnN0CkBAIC0xMTYsMTEgKzEyNyw2IEBACiAgICAg
fQogfQogCi1GcmFtZVZpZXcgKlNWR0RvY3VtZW50OjpzdmdWaWV3KCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV92aWV3OwotfQotCiB2b2lkIFNWR0RvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmcoKQog
ewogICAgIC8vIEZJWE1FOiBUd28gcHJvYmxlbXM6CkBAIC0xNzIsMTEgKzE3OCw2IEBACiAgICAg
cm9vdEVsZW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSwgZWMpOwogfQogCi1DU1NT
dHlsZVNlbGVjdG9yICpTVkdEb2N1bWVudDo6Y3JlYXRlU3R5bGVTZWxlY3Rvcihjb25zdCBEZXBy
ZWNhdGVkU3RyaW5nICZ1c2Vyc2hlZXQpCi17Ci0gICAgcmV0dXJuIG5ldyBDU1NTdHlsZVNlbGVj
dG9yKHRoaXMsIHVzZXJzaGVldCwgbV9zdHlsZVNoZWV0cy5nZXQoKSwgZmFsc2UpOwotfQotCiB2
b2lkIFNWR0RvY3VtZW50OjphZGRTY3JpcHRzKE5vZGUgKm4pCiB7CiAgICAgaWYoIW4pCkBAIC0y
NDUsMTUgKzI0Niw2IEBACiAgICAgbV9mb3J3YXJkUmVmZXJlbmNlcy5jbGVhcigpOwogfQogCi12
b2lkIFNWR0RvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCi17Ci0gICAg
Zm9yKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKQotICAg
IHsKLSAgICAgICAgaWYoY2hhbmdlID49IEluaGVyaXQgfHwgbi0+aGFzQ2hhbmdlZENoaWxkKCkg
fHwgbi0+Y2hhbmdlZCgpKQotICAgICAgICAgICAgbi0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAg
ICB9Ci19Ci0KIHZvaWQgU1ZHRG9jdW1lbnQ6OmFkZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU1ZH
RWxlbWVudCAqZWxlbWVudCkKIHsKICAgICBtX2ZvcndhcmRSZWZlcmVuY2VzLmFwcGVuZChlbGVt
ZW50KTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbi5jcHAJ
KHJldmlzaW9uIDE0MTI1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiArMjE5LDExIEBACiAgICAgbV9hbmltYXRp
b25Db250ZXh0ID0gdmFsdWU7CiB9CiAKK1Bhc3NSZWZQdHI8RG9jdW1lbnQ+IFNWR0RPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChGcmFtZVZpZXcqIHYpCit7CisgICAgcmV0dXJuIG5l
dyBTVkdEb2N1bWVudCh0aGlzLCB2KTsKK30KKwogLy8gdmltOnRzPTQ6bm9ldAogI2VuZGlmIC8v
IFNWR19TVVBQT1JUCiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAkocmV2aXNpb24gMTQxMjUpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw4IEBACiAjaWYgU1ZHX1NV
UFBPUlQKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKKyNp
bmNsdWRlICJTVkdEb2N1bWVudC5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCiAjZW5kaWYKIApAQCAtNTg3LDYg
KzU4OSwxMSBAQAogICBpZiAoIWQtPm1fdXJsLmlzRW1wdHkoKSkKICAgICBiYXNldXJsID0gZC0+
bV91cmw7CiAKKyNpZiBTVkdfU1VQUE9SVAorICBpZiAoZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VN
SU1FVHlwZSA9PSAiaW1hZ2Uvc3ZnK3htbCIpCisgICAgZC0+bV9kb2MgPSBTVkdET01JbXBsZW1l
bnRhdGlvbjo6c2VsZigpLT5jcmVhdGVEb2N1bWVudChkLT5tX3ZpZXcuZ2V0KCkpOworICBlbHNl
CisjZW5kaWYKICAgaWYgKERPTUltcGxlbWVudGF0aW9uOjppc1hNTE1JTUVUeXBlKGQtPm1fcmVx
dWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUpKQogICAgIGQtPm1fZG9jID0gRE9NSW1wbGVtZW50YXRp
b246Omluc3RhbmNlKCktPmNyZWF0ZURvY3VtZW50KGQtPm1fdmlldy5nZXQoKSk7CiAgIGVsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8396</attachid>
            <date>2006-05-18 13:51:43 -0700</date>
            <delta_ts>2006-05-18 20:55:37 -0700</delta_ts>
            <desc>Cleaner patch where run-webkit-tests does not crash</desc>
            <filename>5978-3.diff</filename>
            <type>text/plain</type>
            <size>15713</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDQ3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDYtMDUtMTggIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5P
IFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgIEZpeCBmb3IgaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01OTc4CisgICAgICAgIFdlYktJ
dCtTVkcgc2hvdWxkIHVzZSBTVkdEb2N1bWVudEltcGwgZm9yIGltYWdlL3N2Zyt4bWwKKworCU1h
a2Ugc3VyZSBTVkdEb2N1bWVudCBpcyBjcmVhdGVkIGZvciBzdGFuZGFsb25lIHN2ZworICAgICAg
ICBkb2N1bWVudHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRE9N
SW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAoU1ZHRE9NSW1wbGVtZW50YXRpb246Omluc3Rh
bmNlKToKKyAgICAgICAgKFNWR0RPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6Cisg
ICAgICAgICoga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpT
VkdEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudDo6flNWR0RvY3VtZW50
KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0RvY3VtZW50Ojppc1NWR0RvY3VtZW50KToKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHVGVz
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQpOgorICAgICAgICAq
IGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdU
aXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjpiZWdpbik6CisKIDIwMDYtMDUtMTggIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBw
bGUuY29tPgogCiAgICAgICAgIFR1cm4gb2ZmIHJlc3BvbmRpbmcgdG8gZm9udCBjaGFuZ2VzIHdo
aWxlIHJ1bm5pbmcuICBJdCBkb2Vzbid0IHdvcmsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTQ0Nzcp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEw
LDkgQEAgcHVibGljOgogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAg
ICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzSFRNTERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyNpZiBTVkdfU1VQUE9SVAorICAgIHZpcnR1YWwgYm9vbCBpc1NWR0RvY3VtZW50KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAgICAgQ1NTU3R5bGVTZWxlY3Rvciogc3R5bGVT
ZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVTZWxlY3RvcjsgfQogCkluZGV4OiBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHVGVzdHMuY3BwCShyZXZpc2lvbiAxNDQ3NykKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBib29sIFNWR1Rlc3Rz
Ojppc1ZhbGlkKCkgY29uc3QKICAgICBmb3IodW5zaWduZWQgbG9uZyBpID0gMDtpIDwgbGlzdC0+
bnVtYmVyT2ZJdGVtcygpO2krKykKICAgICB7CiAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFN0cmlu
ZyhsaXN0LT5nZXRJdGVtKGkpKTsKLSAgICAgICAgaWYodmFsdWUuaXNFbXB0eSgpIHx8ICFTVkdE
T01JbXBsZW1lbnRhdGlvbjo6c2VsZigpLT5oYXNGZWF0dXJlKHZhbHVlLmltcGwoKSwgMCkpCisg
ICAgICAgIGlmKHZhbHVlLmlzRW1wdHkoKSB8fCAhU1ZHRE9NSW1wbGVtZW50YXRpb246Omluc3Rh
bmNlKCktPmhhc0ZlYXR1cmUodmFsdWUuaW1wbCgpLCAwKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAkocmV2aXNpb24gMTQ0
NzcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCwyMyArMjQsMTUgQEAKICNkZWZpbmUgS1NWR19TVkdEb2N1bWVudEltcGxfSAogI2lmIFNW
R19TVVBQT1JUCiAKLSNpbmNsdWRlICJEZXByZWNhdGVkUHRyTGlzdC5oIgotCi0jaW5jbHVkZSAi
Q2FjaGVkT2JqZWN0Q2xpZW50LmgiCi0jaW5jbHVkZSA8a3N2ZzIvbWlzYy9LU1ZHVGltZVNjaGVk
dWxlci5oPgotCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogICAgIGNsYXNzIFNWR0VsZW1lbnQ7CiAgICAgY2xh
c3MgU1ZHU1ZHRWxlbWVudDsKLSAgICBjbGFzcyBTVkdTY3JpcHRFbGVtZW50OwogICAgIGNsYXNz
IFNWR0RPTUltcGxlbWVudGF0aW9uOwogCi0gICAgY2xhc3MgU1ZHRG9jdW1lbnQgOiBwdWJsaWMg
RG9jdW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIENhY2hlZE9iamVj
dENsaWVudAorICAgIGNsYXNzIFNWR0RvY3VtZW50IDogcHVibGljIERvY3VtZW50CiAgICAgewog
ICAgIHB1YmxpYzoKICAgICAgICAgU1ZHRG9jdW1lbnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmks
IEZyYW1lVmlldyAqdmlldyk7CkBAIC00OCwzNyArNDAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIFNWR1NWR0VsZW1lbnQgKnJvb3RFbGVtZW50KCkgY29uc3Q7CiAgICAgICAg
IAotICAgICAgICBTdHJpbmcgdGl0bGUoKSBjb25zdDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFN0cmluZyYgdGFnTmFt
ZSwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgICAgIC8vIERlcml2ZWQgZnJvbTogJ0NhY2hlZE9i
amVjdENsaWVudCcKLSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE9i
amVjdCAqZmluaXNoZWRPYmopOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdEb2N1bWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgICAgICBGcmFtZVZpZXcgKnN2Z1ZpZXcoKSBj
b25zdDsKKy8vICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVu
dE5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5h
bWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgICAgICAvLyBJbnRlcm5hbAotICAgICAgICB2b2lk
IGZpbmlzaGVkUGFyc2luZygpOwotICAgICAgICB2b2lkIGRpc3BhdGNoUmVjdXJzaXZlRXZlbnQo
RXZlbnQgKmV2ZW50LCBOb2RlICpvYmopOwogICAgICAgICB2b2lkIGRpc3BhdGNoWm9vbUV2ZW50
KGZsb2F0IHByZXZTY2FsZSwgZmxvYXQgbmV3U2NhbGUpOwogICAgICAgICB2b2lkIGRpc3BhdGNo
U2Nyb2xsRXZlbnQoKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVD
aGFuZ2UgPSBOb0NoYW5nZSk7Ci0KLSAgICAgICAgdm9pZCBhZGRGb3J3YXJkUmVmZXJlbmNlKGNv
bnN0IFNWR0VsZW1lbnQgKmVsZW1lbnQpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIENTU1N0eWxlU2VsZWN0b3IgKmNyZWF0ZVN0eWxlU2VsZWN0b3IoY29uc3QgRGVwcmVjYXRl
ZFN0cmluZyAmKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIC8vIDxzY3JpcHQ+IHJlbGF0ZWQK
LSAgICAgICAgdm9pZCBleGVjdXRlU2NyaXB0cyhib29sIG5lZWRzU3R5bGVTZWxlY3RvclVwZGF0
ZSk7Ci0gICAgICAgIHZvaWQgYWRkU2NyaXB0cyhOb2RlICpvYmopOwotCi0gICAgICAgIENhY2hl
ZFNjcmlwdCAqbV9jYWNoZWRTY3JpcHQ7Ci0gICAgICAgIFEzUHRyTGlzdDxTVkdTY3JpcHRFbGVt
ZW50PiBtX3NjcmlwdHM7Ci0gICAgICAgIFEzUHRyTGlzdEl0ZXJhdG9yPFNWR1NjcmlwdEVsZW1l
bnQ+ICptX3NjcmlwdHNJdDsKLSAgICAgICAgUTNQdHJMaXN0PFNWR0VsZW1lbnQ+IG1fZm9yd2Fy
ZFJlZmVyZW5jZXM7CiAgICAgfTsKIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RP
TUltcGxlbWVudGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9N
SW1wbGVtZW50YXRpb24uaAkocmV2aXNpb24gMTQ0NzcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9T
VkdET01JbXBsZW1lbnRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU1ZHRE9NSW1wbGVtZW50YXRpb24oKTsKICAgICAg
ICAgdmlydHVhbCB+U1ZHRE9NSW1wbGVtZW50YXRpb24oKTsKIAotICAgICAgICBzdGF0aWMgU1ZH
RE9NSW1wbGVtZW50YXRpb24gKnNlbGYoKTsKKyAgICAgICAgc3RhdGljIFNWR0RPTUltcGxlbWVu
dGF0aW9uICppbnN0YW5jZSgpOwogCiAgICAgICAgIC8vICdTVkdET01JbXBsZW1lbnRhdGlvbicg
ZnVuY3Rpb25zCiAgICAgICAgIGJvb2wgaGFzRmVhdHVyZShTdHJpbmdJbXBsICpmZWF0dXJlLCBT
dHJpbmdJbXBsICp2ZXJzaW9uKSBjb25zdDsKQEAgLTU3LDYgKzU3LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIGluQW5pbWF0aW9uQ29udGV4dCgpIGNvbnN0OwogICAgICAg
ICB2b2lkIHNldEFuaW1hdGlvbkNvbnRleHQoYm9vbCB2YWx1ZSk7CiAKKyAgICAgICAgLy8gT3Ro
ZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQorICAgICAgICBQYXNzUmVmUHRyPERvY3VtZW50
PiBjcmVhdGVEb2N1bWVudChGcmFtZVZpZXcqID0gMCk7CisKICAgICBwcml2YXRlOgogICAgICAg
ICBib29sIG1fYW5pbWF0aW9uQ29udGV4dCA6IDE7CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1
bWVudC5jcHAJKHJldmlzaW9uIDE0NDc3KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwzNyArMjQsMjIgQEAKICNpZiBTVkdfU1VQUE9S
VAogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAKLSNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIK
LSNpbmNsdWRlICJEb2NMb2FkZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVk
ZSAiS1NWR1RpbWVTY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiU1ZH
QW5pbWF0ZWRTdHJpbmcuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAi
U1ZHRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU1ZHRWxlbWVudEZhY3RvcnkuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJTdHlsZS5oIgogI2lu
Y2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCi0j
aW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVGl0bGVFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCi0jaW5jbHVkZSAiU2hhcmVkLmgiCi0jaW5jbHVk
ZSAiY3Nzc3R5bGVzZWxlY3Rvci5oIgotI2luY2x1ZGUgImtzdmcuaCIKLSNpbmNsdWRlIDxhc3Nl
cnQuaD4KLSNpbmNsdWRlIDxrY2FudmFzL1JlbmRlclBhdGguaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1TVkdEb2N1bWVudDo6U1ZHRG9jdW1lbnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmks
IEtET01WaWV3ICp2aWV3KSA6IERvY3VtZW50KGksIHZpZXcpLCBDYWNoZWRPYmplY3RDbGllbnQo
KQorU1ZHRG9jdW1lbnQ6OlNWR0RvY3VtZW50KFNWR0RPTUltcGxlbWVudGF0aW9uICppLCBGcmFt
ZVZpZXcgKnZpZXcpIDogRG9jdW1lbnQoaSwgdmlldykKIHsKLSAgICBtX3NjcmlwdHNJdCA9IDA7
Ci0gICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCiBTVkdEb2N1bWVudDo6flNWR0RvY3VtZW50
KCkKIHsKKyNpZiAwCiAgICAgLy8gRmlyZSBVTkxPQURfRVZFTlQgdXBvbiBkZXN0cnVjdGlvbi4u
LgogICAgIC8vaWYoRG9jdW1lbnQ6Omhhc0xpc3RlbmVyVHlwZShVTkxPQURfRVZFTlQpKQogICAg
IHsKQEAgLTYzLDMwICs0OCw3IEBAIFNWR0RvY3VtZW50Ojp+U1ZHRG9jdW1lbnQoKQogICAgICAg
ICBldmVudC0+aW5pdEV2ZW50KEV2ZW50TmFtZXM6OnVubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2Up
OwogICAgICAgICBkaXNwYXRjaFJlY3Vyc2l2ZUV2ZW50KGV2ZW50LmdldCgpLCBsYXN0Q2hpbGQo
KSk7CiAgICAgfQotCi0gICAgZGVsZXRlIG1fc2NyaXB0c0l0OwotICAgIGRlbGV0ZSBtX2NhY2hl
ZFNjcmlwdDsKLX0KLQotU3RyaW5nIFNWR0RvY3VtZW50Ojp0aXRsZSgpIGNvbnN0Ci17Ci0gICAg
aWYocm9vdEVsZW1lbnQoKSkKLSAgICB7Ci0gICAgICAgIGZvcihOb2RlICpjaGlsZCA9IHJvb3RF
bGVtZW50KCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0gMDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKLSAgICAgICAgICAgIGlmKGNoaWxkLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRs
ZVRhZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNWR1RpdGxlRWxlbWVu
dCAqPihjaGlsZCktPnRpdGxlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFN0cmluZygpOwotfQot
Ci1QYXNzUmVmUHRyPEVsZW1lbnQ+IFNWR0RvY3VtZW50OjpjcmVhdGVFbGVtZW50KGNvbnN0IFN0
cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgUXVhbGlmaWVkTmFtZSBx
bmFtZShudWxsQXRvbSwgdGFnTmFtZS5pbXBsKCksIFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkp
OwotICAgIFJlZlB0cjxTVkdFbGVtZW50PiBlbGVtID0gU1ZHRWxlbWVudEZhY3Rvcnk6OmNyZWF0
ZVNWR0VsZW1lbnQocW5hbWUsIHRoaXMsIGZhbHNlKTsKLSAgICBpZiAoIWVsZW0pCi0gICAgICAg
IHJldHVybiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudCh0YWdOYW1lLCBlYyk7Ci0gICAgcmV0dXJu
IGVsZW07CisjZW5kaWYKIH0KIAogU1ZHU1ZHRWxlbWVudCAqU1ZHRG9jdW1lbnQ6OnJvb3RFbGVt
ZW50KCkgY29uc3QKQEAgLTk4LDU5ICs2MCw2IEBAIFNWR1NWR0VsZW1lbnQgKlNWR0RvY3VtZW50
Ojpyb290RWxlbWVudCgKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBTVkdEb2N1bWVudDo6bm90
aWZ5RmluaXNoZWQoQ2FjaGVkT2JqZWN0ICpmaW5pc2hlZE9iaikKLXsKLSAgICAvLyBUaGlzIGlz
IGNhbGxlZCB3aGVuIGEgc2NyaXB0IGhhcyBmaW5pc2hlZCBsb2FkaW5nIHRoYXQgd2FzIHJlcXVl
c3RlZCBmcm9tCi0gICAgLy8gZXhlY3V0ZVNjcmlwdHMoKS4gIFdlIGV4ZWN1dGUgdGhlIHNjcmlw
dCwgYW5kIHRoZW4gY2FsbCBleGVjdXRlU2NyaXB0cygpCi0gICAgLy8gYWdhaW4gdG8gY29udGlu
dWUgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGxpc3Qgb2Ygc2NyaXB0cyBpbiB0aGUgZG9jdW1lbnQK
LSAgICBpZihmaW5pc2hlZE9iaiA9PSBtX2NhY2hlZFNjcmlwdCkKLSAgICB7Ci0gICAgICAgIFN0
cmluZyBzY3JpcHRTb3VyY2UgPSBtX2NhY2hlZFNjcmlwdC0+c2NyaXB0KCk7Ci0gICAgICAgIAot
ICAgICAgICBtX2NhY2hlZFNjcmlwdC0+ZGVyZWYodGhpcyk7Ci0gICAgICAgIG1fY2FjaGVkU2Ny
aXB0ID0gMDsKLSAgICAgICAgCi0gICAgICAgIFNWR1NjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVTY3Jp
cHQodGhpcywgU3RyaW5nKHNjcmlwdFNvdXJjZS5kZXByZWNhdGVkU3RyaW5nKCkpLmltcGwoKSk7
Ci0gICAgICAgIGV4ZWN1dGVTY3JpcHRzKHRydWUpOwotICAgIH0KLX0KLQotRnJhbWVWaWV3ICpT
VkdEb2N1bWVudDo6c3ZnVmlldygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmlldzsKLX0KLQot
dm9pZCBTVkdEb2N1bWVudDo6ZmluaXNoZWRQYXJzaW5nKCkKLXsKLSAgICAvLyBGSVhNRTogVHdv
IHByb2JsZW1zOgotICAgIC8vIDEpIFRoaXMgaXMgbmV2ZXIgY2FsbGVkIHNpbmNlIGl0J3MgYSBu
b24tdmlydHVhbCBmdW5jdGlvbi4KLSAgICAvLyAyKSBJZiB0aGlzIHdhcyBjYWxsZWQgaXQgd291
bGQgbmVlZCB0byBjYWxsIHRoZSBiYXNlIGNsYXNzJ3MgaW1wbGVtZW50YXRpb24gb2YgZmluaXNo
ZWRQYXJzaW5nLgotCi0gICAgYWRkU2NyaXB0cyhyb290RWxlbWVudCgpKTsKLQotICAgIG1fc2Ny
aXB0c0l0ID0gbmV3IFEzUHRyTGlzdEl0ZXJhdG9yPFNWR1NjcmlwdEVsZW1lbnQ+KG1fc2NyaXB0
cyk7Ci0gICAgZXhlY3V0ZVNjcmlwdHMoZmFsc2UpOwotfQotCi12b2lkIFNWR0RvY3VtZW50Ojpk
aXNwYXRjaFJlY3Vyc2l2ZUV2ZW50KEV2ZW50ICpldmVudCwgTm9kZSAqb2JqKQotewotICAgIC8v
IEl0ZXJhdGUgdGhlIHRyZWUsIGJhY2t3YXJkcywgYW5kIGRpc3BhdGNoIHRoZSBldmVudCB0byBl
dmVyeSBjaGlsZAotICAgIGZvcihOb2RlICpuID0gb2JqOyBuICE9IDA7IG4gPSBuLT5wcmV2aW91
c1NpYmxpbmcoKSkKLSAgICB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgIGlm
KG4tPmhhc0NoaWxkTm9kZXMoKSkKLSAgICAgICAgewotICAgICAgICAgICAgLy8gRGlzcGF0Y2gg
dG8gYWxsIGNoaWxkcmVuCi0gICAgICAgICAgICBkaXNwYXRjaFJlY3Vyc2l2ZUV2ZW50KGV2ZW50
LCBuLT5sYXN0Q2hpbGQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERpc3BhdGNoLCBsb2NhbGx5Ci0g
ICAgICAgICAgICBFdmVudFRhcmdldE5vZGVDYXN0KG4pLT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBl
Yyk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgRXZlbnRUYXJnZXROb2Rl
Q2FzdChuKS0+ZGlzcGF0Y2hFdmVudChldmVudCwgZWMpOwotICAgIH0KLX0KLQogdm9pZCBTVkdE
b2N1bWVudDo6ZGlzcGF0Y2hab29tRXZlbnQoZmxvYXQgcHJldlNjYWxlLCBmbG9hdCBuZXdTY2Fs
ZSkKIHsKICAgICAvLyBkaXNwYXRjaCB6b29tIGV2ZW50CkBAIC0xNzEsOTMgKzgwLDYgQEAgdm9p
ZCBTVkdEb2N1bWVudDo6ZGlzcGF0Y2hTY3JvbGxFdmVudCgpCiAgICAgcm9vdEVsZW1lbnQoKS0+
ZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSwgZWMpOwogfQogCi1DU1NTdHlsZVNlbGVjdG9yICpT
VkdEb2N1bWVudDo6Y3JlYXRlU3R5bGVTZWxlY3Rvcihjb25zdCBEZXByZWNhdGVkU3RyaW5nICZ1
c2Vyc2hlZXQpCi17Ci0gICAgcmV0dXJuIG5ldyBDU1NTdHlsZVNlbGVjdG9yKHRoaXMsIHVzZXJz
aGVldCwgbV9zdHlsZVNoZWV0cy5nZXQoKSwgZmFsc2UpOwotfQotCi12b2lkIFNWR0RvY3VtZW50
OjphZGRTY3JpcHRzKE5vZGUgKm4pCi17Ci0gICAgaWYoIW4pCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIFJlY3Vyc2l2ZWx5IGdvIHRocm91Z2ggdGhlIGVudGlyZSBkb2N1bWVudCB0cmVlLCBs
b29raW5nIGZvciBzdmcgPHNjcmlwdD4gdGFncy4KLSAgICAvLyBGb3IgZWFjaCBvZiB0aGVzZSB0
aGF0IGlzIGZvdW5kLCBhZGQgaXQgdG8gdGhlIG1fc2NyaXB0cyBsaXN0IGZyb20gd2hpY2ggdGhl
eSB3aWxsIGJlIGV4ZWN1dGVkCi0gICAgaWYgKG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlw
dFRhZykpCi0gICAgICAgIG1fc2NyaXB0cy5hcHBlbmQoc3RhdGljX2Nhc3Q8U1ZHU2NyaXB0RWxl
bWVudCAqPihuKSk7Ci0KLSAgICBOb2RlICpjaGlsZDsKLSAgICBmb3IoY2hpbGQgPSBuLT5maXJz
dENoaWxkKCk7IGNoaWxkICE9IDA7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgIGFkZFNjcmlwdHMoY2hpbGQpOwotfQotCi12b2lkIFNWR0RvY3VtZW50OjpleGVjdXRlU2Ny
aXB0cyhib29sIG5lZWRzU3R5bGVTZWxlY3RvclVwZGF0ZSkKLXsKLSAgICAvLyBJdGVyYXRlIHRo
cm91Z2ggYWxsIG9mIHRoZSBzdmcgPHNjcmlwdD4gdGFncyBpbiB0aGUgZG9jdW1lbnQuIEZvciB0
aG9zZSB0aGF0IGhhdmUgYSBzcmMgYXR0cmlidXRlLAotICAgIC8vIHN0YXJ0IGxvYWRpbmcgdGhl
IHNjcmlwdCBhbmQgcmV0dXJuIChleGVjdXRlU2NyaXB0cygpIHdpbGwgYmUgY2FsbGVkIGFnYWlu
IG9uY2UgdGhlIHNjcmlwdCBpcyBsb2FkZWQKLSAgICAvLyBhbmQgY29udGludWUgd2hlcmUgaXQg
bGVmdCBvZmYpLiBGb3Igc2NyaXB0cyB0aGF0IGRvbid0IGhhdmUgYSBzcmMgYXR0cmlidXRlLCBl
eGVjdXRlIHRoZSBjb2RlIGluc2lkZSB0aGUgdGFnCi0gICAgU1ZHU2NyaXB0RWxlbWVudCAqc2Ny
aXB0ID0gMDsKLSAgICB3aGlsZSgoc2NyaXB0ID0gbV9zY3JpcHRzSXQtPmN1cnJlbnQoKSkpCi0g
ICAgewotICAgICAgICBTdHJpbmcgaHJlZkF0dHIoc2NyaXB0LT5ocmVmKCktPmJhc2VWYWwoKSk7
Ci0gICAgICAgIERlcHJlY2F0ZWRTdHJpbmcgY2hhcnNldDsgLy8gVE9ETyBtX3NjcmlwdHNJdC0+
Y3VycmVudCgpLT5nZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6OmNoYXJzZXRBdHRyKS5kZXByZWNhdGVk
U3RyaW5nKCk7Ci0KLSAgICAgICAgaWYoIWhyZWZBdHRyLmlzRW1wdHkoKSkKLSAgICAgICAgewot
ICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIHNyYyBhdHRyaWJ1dGUKLSAgICAgICAgICAgIG1fY2Fj
aGVkU2NyaXB0ID0gZG9jTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQoaHJlZkF0dHIsIGNoYXJzZXQp
OwotICAgICAgICAgICAgKysoKm1fc2NyaXB0c0l0KTsKLSAgICAgICAgICAgIG1fY2FjaGVkU2Ny
aXB0LT5yZWYodGhpcyk7IC8vIHdpbGwgY2FsbCBleGVjdXRlU2NyaXB0cygpIGFnYWluIGlmIGFs
cmVhZHkgY2FjaGVkCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgZWxz
ZQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBubyBzcmMgYXR0cmlidXRlIC0gZXhlY3V0ZSBm
cm9tIGNvbnRlbnRzIG9mIHRhZwotICAgICAgICAgICAgU1ZHU2NyaXB0RWxlbWVudDo6ZXhlY3V0
ZVNjcmlwdCh0aGlzLCBzY3JpcHQtPnRleHRDb250ZW50KCkuaW1wbCgpKTsKLSAgICAgICAgICAg
ICsrKCptX3NjcmlwdHNJdCk7Ci0KLSAgICAgICAgICAgIG5lZWRzU3R5bGVTZWxlY3RvclVwZGF0
ZSA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBGaXJlIExPQURfRVZFTlQgYWZ0
ZXIgYWxsIHNjcmlwdHMgYXJlIGV2YWx1YXRlZAotICAgIGlmKCFtX3NjcmlwdHNJdC0+Y3VycmVu
dCgpKQotICAgIHsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgUmVmUHRyPEV2
ZW50PiBldmVudCA9IGNyZWF0ZUV2ZW50KCJTVkdFdmVudHMiLCBlYyk7Ci0gICAgICAgIGV2ZW50
LT5pbml0RXZlbnQoRXZlbnROYW1lczo6bG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpOwotICAgICAg
ICBkaXNwYXRjaFJlY3Vyc2l2ZUV2ZW50KGV2ZW50LmdldCgpLCBsYXN0Q2hpbGQoKSk7Ci0gICAg
fQotCi0gICAgLy8gQWxsIHNjcmlwdHMgaGF2ZSBmaW5pc2hlZCBleGVjdXRpbmcsIHNvIGNhbGN1
bGF0ZSB0aGUKLSAgICAvLyBzdHlsZSBmb3IgdGhlIGRvY3VtZW50IGFuZCBjbG9zZSB0aGUgbGFz
dCBlbGVtZW50Ci0gICAgaWYocmVuZGVyZXIoKSAmJiBuZWVkc1N0eWxlU2VsZWN0b3JVcGRhdGUp
Ci0gICAgICAgIHVwZGF0ZVN0eWxlU2VsZWN0b3IoKTsKLQotICAgIC8vIGNsb3NlIGFueSB1bmNs
b3NlZCBub2RlcwotICAgIFEzUHRyTGlzdEl0ZXJhdG9yPFNWR0VsZW1lbnQ+IGl0KG1fZm9yd2Fy
ZFJlZmVyZW5jZXMpOwotICAgIGZvcig7aXQuY3VycmVudCgpOyArK2l0KQotICAgIHsKLSAgICAg
ICAgaWYoIWl0LmN1cnJlbnQoKS0+aXNDbG9zZWQoKSkKLSAgICAgICAgICAgIGl0LmN1cnJlbnQo
KS0+Y2xvc2VSZW5kZXJlcigpOwotICAgIH0KLSAgICBtX2ZvcndhcmRSZWZlcmVuY2VzLmNsZWFy
KCk7Ci19Ci0KLXZvaWQgU1ZHRG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5n
ZSkKLXsKLSAgICBmb3IoTm9kZSAqbiA9IGZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJs
aW5nKCkpCi0gICAgewotICAgICAgICBpZihjaGFuZ2UgPj0gSW5oZXJpdCB8fCBuLT5oYXNDaGFu
Z2VkQ2hpbGQoKSB8fCBuLT5jaGFuZ2VkKCkpCi0gICAgICAgICAgICBuLT5yZWNhbGNTdHlsZShj
aGFuZ2UpOwotICAgIH0KLX0KLQotdm9pZCBTVkdEb2N1bWVudDo6YWRkRm9yd2FyZFJlZmVyZW5j
ZShjb25zdCBTVkdFbGVtZW50ICplbGVtZW50KQotewotICAgIG1fZm9yd2FyZFJlZmVyZW5jZXMu
YXBwZW5kKGVsZW1lbnQpOwotfQotCiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNv
cmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbi5jcHAJKHJldmlzaW9uIDE0NDc3KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDUsMTIgKzEwNSwxMCBAQCBTVkdET01JbXBsZW1lbnRhdGlvbjo6flNWR0RPTUlt
cGxlbWVudGF0CiAgICAgLy9TVkdSZW5kZXJTdHlsZTo6Y2xlYW51cCgpOwogfQogCi1TVkdET01J
bXBsZW1lbnRhdGlvbiAqU1ZHRE9NSW1wbGVtZW50YXRpb246OnNlbGYoKQorU1ZHRE9NSW1wbGVt
ZW50YXRpb24gKlNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpCiB7Ci0gICAgaWYgKCFz
X2luc3RhbmNlKQotICAgICAgICBzX2luc3RhbmNlID0gbmV3IFNWR0RPTUltcGxlbWVudGF0aW9u
KCk7Ci0KLSAgICByZXR1cm4gc19pbnN0YW5jZTsKKyAgICBzdGF0aWMgUmVmUHRyPFNWR0RPTUlt
cGxlbWVudGF0aW9uPiBpID0gbmV3IFNWR0RPTUltcGxlbWVudGF0aW9uOworICAgIHJldHVybiBp
LmdldCgpOwogfQogCiBib29sIFNWR0RPTUltcGxlbWVudGF0aW9uOjpoYXNGZWF0dXJlKFN0cmlu
Z0ltcGwgKmZlYXR1cmVJbXBsLCBTdHJpbmdJbXBsICp2ZXJzaW9uSW1wbCkgY29uc3QKQEAgLTIy
MCw2ICsyMTgsMTEgQEAgdm9pZCBTVkdET01JbXBsZW1lbnRhdGlvbjo6c2V0QW5pbWF0aW9uQwog
ICAgIG1fYW5pbWF0aW9uQ29udGV4dCA9IHZhbHVlOwogfQogCitQYXNzUmVmUHRyPERvY3VtZW50
PiBTVkdET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoRnJhbWVWaWV3KiB2KQorewor
ICAgIHJldHVybiBuZXcgU1ZHRG9jdW1lbnQodGhpcywgdik7Cit9CisKIC8vIHZpbTp0cz00Om5v
ZXQKICNlbmRpZiAvLyBTVkdfU1VQUE9SVAogCkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
aXRsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUaXRsZUVs
ZW1lbnQuaAkocmV2aXNpb24gMTQ0NzcpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdUaXRsZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAgICAgICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZVJlbmRlcmVyKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1
bWVudCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7CkluZGV4OiBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1RpdGxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE0NDc3KQorKysgV2ViQ29yZS9rc3ZnMi9z
dmcvU1ZHVGl0bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDYgQEAg
U3RyaW5nIFNWR1RpdGxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJldHVybiB0ZXh0Q29u
dGVudCgpOwogfQogCi12b2lkIFNWR1RpdGxlRWxlbWVudDo6Y2xvc2VSZW5kZXJlcigpCi17Ci0g
ICAgU1ZHU3R5bGVkRWxlbWVudDo6Y2xvc2VSZW5kZXJlcigpOwotICAgIGRvY3VtZW50KCktPnNl
dFRpdGxlKHRleHRDb250ZW50KCksIHRoaXMpOwotfQotCiB2b2lkIFNWR1RpdGxlRWxlbWVudDo6
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogewogICAgIFNWR1N0eWxlZEVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KCk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDE0NDc3KQorKysgV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQAogI2luY2x1ZGUg
IlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogI2luY2x1ZGUgIlNWR0RvY3Vt
ZW50RXh0ZW5zaW9ucy5oIgorI2luY2x1ZGUgIlNWR0RPTUltcGxlbWVudGF0aW9uLmgiCiAjZW5k
aWYKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTU5OCw2ICs1OTksMTEgQEAgdm9pZCBGcmFt
ZTo6YmVnaW4oY29uc3QgS1VSTCYgdXJsKQogICBpZiAoIWQtPm1fdXJsLmlzRW1wdHkoKSkKICAg
ICBiYXNldXJsID0gZC0+bV91cmw7CiAKKyNpZiBTVkdfU1VQUE9SVAorICBpZiAoZC0+bV9yZXF1
ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSA9PSAiaW1hZ2Uvc3ZnK3htbCIpIHsKKyAgICBkLT5tX2Rv
YyA9IFNWR0RPTUltcGxlbWVudGF0aW9uOjppbnN0YW5jZSgpLT5jcmVhdGVEb2N1bWVudChkLT5t
X3ZpZXcuZ2V0KCkpOworICB9IGVsc2UKKyNlbmRpZgogICBpZiAoRE9NSW1wbGVtZW50YXRpb246
OmlzWE1MTUlNRVR5cGUoZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSkpCiAgICAgZC0+
bV9kb2MgPSBET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKS0+Y3JlYXRlRG9jdW1lbnQoZC0+
bV92aWV3LmdldCgpKTsKICAgZWxzZSBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzVGV4dE1JTUVU
eXBlKGQtPm1fcmVxdWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUpKQo=
</data>
<flag name="review"
          id="2378"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8418</attachid>
            <date>2006-05-19 12:08:46 -0700</date>
            <delta_ts>2006-05-19 18:41:59 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>5978-4.diff</filename>
            <type>text/plain</type>
            <size>15134</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNDQ4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDYtMDUtMTkgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisKKyAgICAgICAgV0FSTklORzog
Tk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAgRml4IGZvciBodHRwOi8v
YnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzgKKyAgICAgICAgV2Vi
S0l0K1NWRyBzaG91bGQgdXNlIFNWR0RvY3VtZW50SW1wbCBmb3IgaW1hZ2Uvc3ZnK3htbAorCisg
ICAgICAgIE1ha2Ugc3VyZSBTVkdEb2N1bWVudCBpcyBjcmVhdGVkIGZvciBzdGFuZGFsb25lIHN2
ZworICAgICAgICBkb2N1bWVudHMuCisKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHRE9NSW1wbGVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoU1ZHRE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKToK
KyAgICAgICAgKFNWR0RPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAg
ICoga3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgICoga3N2ZzIvc3Zn
L1NWR0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpTVkdEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdEb2N1bWVudDo6flNWR0RvY3VtZW50KToKKyAg
ICAgICAgKiBrc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZH
VGVzdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6OmlzVmFsaWQpOgorICAgICAg
ICAqIGtzdmcyL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwOgorICAgICAgICAqIGtzdmcyL3N2Zy9T
VkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjpiZWdpbik6CisKIDIwMDYtMDUtMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFj
YXJsc3NvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IFdl
YkNvcmUva3N2ZzIvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcy
L3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDE0NDg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgU1ZHVGVz
dHM6OmlzVmFsaWQoKSBjb25zdAogICAgIGZvcih1bnNpZ25lZCBsb25nIGkgPSAwO2kgPCBsaXN0
LT5udW1iZXJPZkl0ZW1zKCk7aSsrKQogICAgIHsKICAgICAgICAgU3RyaW5nIHZhbHVlID0gU3Ry
aW5nKGxpc3QtPmdldEl0ZW0oaSkpOwotICAgICAgICBpZih2YWx1ZS5pc0VtcHR5KCkgfHwgIVNW
R0RPTUltcGxlbWVudGF0aW9uOjpzZWxmKCktPmhhc0ZlYXR1cmUodmFsdWUuaW1wbCgpLCAwKSkK
KyAgICAgICAgaWYodmFsdWUuaXNFbXB0eSgpIHx8ICFTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5z
dGFuY2UoKS0+aGFzRmVhdHVyZSh2YWx1ZS5pbXBsKCksIDApKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5oCShyZXZpc2lvbiAx
NDQ4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDIzICsyNCwxNSBAQAogI2RlZmluZSBLU1ZHX1NWR0RvY3VtZW50SW1wbF9ICiAjaWYg
U1ZHX1NVUFBPUlQKIAotI2luY2x1ZGUgIkRlcHJlY2F0ZWRQdHJMaXN0LmgiCi0KLSNpbmNsdWRl
ICJDYWNoZWRPYmplY3RDbGllbnQuaCIKLSNpbmNsdWRlIDxrc3ZnMi9taXNjL0tTVkdUaW1lU2No
ZWR1bGVyLmg+Ci0KICNpbmNsdWRlICJEb2N1bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLSAgICBjbGFzcyBDYWNoZWRTY3JpcHQ7CiAgICAgY2xhc3MgU1ZHRWxlbWVudDsKICAgICBj
bGFzcyBTVkdTVkdFbGVtZW50OwotICAgIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQ7CiAgICAgY2xh
c3MgU1ZHRE9NSW1wbGVtZW50YXRpb247CiAKLSAgICBjbGFzcyBTVkdEb2N1bWVudCA6IHB1Ymxp
YyBEb2N1bWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgQ2FjaGVkT2Jq
ZWN0Q2xpZW50CisgICAgY2xhc3MgU1ZHRG9jdW1lbnQgOiBwdWJsaWMgRG9jdW1lbnQKICAgICB7
CiAgICAgcHVibGljOgogICAgICAgICBTVkdEb2N1bWVudChTVkdET01JbXBsZW1lbnRhdGlvbiAq
aSwgRnJhbWVWaWV3ICp2aWV3KTsKQEAgLTQ4LDM3ICs0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBTVkdTVkdFbGVtZW50ICpyb290RWxlbWVudCgpIGNvbnN0OwogICAgICAg
ICAKLSAgICAgICAgU3RyaW5nIHRpdGxlKCkgY29uc3Q7Ci0gICAgICAgIAotICAgICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBTdHJpbmcmIHRhZ05h
bWUsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgICAgICAvLyBEZXJpdmVkIGZyb206ICdDYWNoZWRP
YmplY3RDbGllbnQnCi0gICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRP
YmplY3QgKmZpbmlzaGVkT2JqKTsKLQotICAgICAgICBGcmFtZVZpZXcgKnN2Z1ZpZXcoKSBjb25z
dDsKLQotICAgICAgICAvLyBJbnRlcm5hbAotICAgICAgICB2b2lkIGZpbmlzaGVkUGFyc2luZygp
OwotICAgICAgICB2b2lkIGRpc3BhdGNoUmVjdXJzaXZlRXZlbnQoRXZlbnQgKmV2ZW50LCBOb2Rl
ICpvYmopOwogICAgICAgICB2b2lkIGRpc3BhdGNoWm9vbUV2ZW50KGZsb2F0IHByZXZTY2FsZSwg
ZmxvYXQgbmV3U2NhbGUpOwogICAgICAgICB2b2lkIGRpc3BhdGNoU2Nyb2xsRXZlbnQoKTsKLQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7
Ci0KLSAgICAgICAgdm9pZCBhZGRGb3J3YXJkUmVmZXJlbmNlKGNvbnN0IFNWR0VsZW1lbnQgKmVs
ZW1lbnQpOwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIENTU1N0eWxlU2VsZWN0
b3IgKmNyZWF0ZVN0eWxlU2VsZWN0b3IoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmKTsKLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIC8vIDxzY3JpcHQ+IHJlbGF0ZWQKLSAgICAgICAgdm9pZCBleGVj
dXRlU2NyaXB0cyhib29sIG5lZWRzU3R5bGVTZWxlY3RvclVwZGF0ZSk7Ci0gICAgICAgIHZvaWQg
YWRkU2NyaXB0cyhOb2RlICpvYmopOwotCi0gICAgICAgIENhY2hlZFNjcmlwdCAqbV9jYWNoZWRT
Y3JpcHQ7Ci0gICAgICAgIFEzUHRyTGlzdDxTVkdTY3JpcHRFbGVtZW50PiBtX3NjcmlwdHM7Ci0g
ICAgICAgIFEzUHRyTGlzdEl0ZXJhdG9yPFNWR1NjcmlwdEVsZW1lbnQ+ICptX3NjcmlwdHNJdDsK
LSAgICAgICAgUTNQdHJMaXN0PFNWR0VsZW1lbnQ+IG1fZm9yd2FyZFJlZmVyZW5jZXM7CiAgICAg
fTsKIH07CiAKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uaAko
cmV2aXNpb24gMTQ0ODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgU1ZHRE9NSW1wbGVtZW50YXRpb24oKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRE9N
SW1wbGVtZW50YXRpb24oKTsKIAotICAgICAgICBzdGF0aWMgU1ZHRE9NSW1wbGVtZW50YXRpb24g
KnNlbGYoKTsKKyAgICAgICAgc3RhdGljIFNWR0RPTUltcGxlbWVudGF0aW9uICppbnN0YW5jZSgp
OwogCiAgICAgICAgIC8vICdTVkdET01JbXBsZW1lbnRhdGlvbicgZnVuY3Rpb25zCiAgICAgICAg
IGJvb2wgaGFzRmVhdHVyZShTdHJpbmdJbXBsICpmZWF0dXJlLCBTdHJpbmdJbXBsICp2ZXJzaW9u
KSBjb25zdDsKQEAgLTU3LDEwICs1NywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGJvb2wgaW5BbmltYXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0QW5pbWF0
aW9uQ29udGV4dChib29sIHZhbHVlKTsKIAorICAgICAgICAvLyBPdGhlciBtZXRob2RzIChub3Qg
cGFydCBvZiBET00pCisgICAgICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50
KEZyYW1lVmlldyogPSAwKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9hbmltYXRp
b25Db250ZXh0IDogMTsKLQotICAgICAgICBzdGF0aWMgU1ZHRE9NSW1wbGVtZW50YXRpb24gKnNf
aW5zdGFuY2U7CiAgICAgfTsKIH0KIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RvY3VtZW50LmNwcAko
cmV2aXNpb24gMTQ0ODgpCisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdEb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDY5ICsyNCwyMSBAQAogI2lmIFNWR19TVVBQT1JUCiAjaW5jbHVk
ZSAiU1ZHRG9jdW1lbnQuaCIKIAotI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgotI2luY2x1ZGUg
IkRvY0xvYWRlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJLU1ZHVGlt
ZVNjaGVkdWxlci5oIgotI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0
cmluZy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJTVkdET01JbXBs
ZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdFbGVt
ZW50RmFjdG9yeS5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU1ZH
U1ZHRWxlbWVudC5oIgotI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJT
VkdTdHlsZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTVkdab29tRXZlbnQuaCIKLSNpbmNsdWRlICJTaGFyZWQuaCIKLSNpbmNsdWRlICJjc3NzdHls
ZXNlbGVjdG9yLmgiCi0jaW5jbHVkZSAia3N2Zy5oIgotI2luY2x1ZGUgPGFzc2VydC5oPgotI2lu
Y2x1ZGUgPGtjYW52YXMvUmVuZGVyUGF0aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNW
R0RvY3VtZW50OjpTVkdEb2N1bWVudChTVkdET01JbXBsZW1lbnRhdGlvbiAqaSwgS0RPTVZpZXcg
KnZpZXcpIDogRG9jdW1lbnQoaSwgdmlldyksIENhY2hlZE9iamVjdENsaWVudCgpCitTVkdEb2N1
bWVudDo6U1ZHRG9jdW1lbnQoU1ZHRE9NSW1wbGVtZW50YXRpb24gKmksIEZyYW1lVmlldyAqdmll
dykgOiBEb2N1bWVudChpLCB2aWV3KQogewotICAgIG1fc2NyaXB0c0l0ID0gMDsKLSAgICBtX2Nh
Y2hlZFNjcmlwdCA9IDA7CiB9CiAKIFNWR0RvY3VtZW50Ojp+U1ZHRG9jdW1lbnQoKQogewotICAg
IC8vIEZpcmUgVU5MT0FEX0VWRU5UIHVwb24gZGVzdHJ1Y3Rpb24uLi4KLSAgICAvL2lmKERvY3Vt
ZW50OjpoYXNMaXN0ZW5lclR5cGUoVU5MT0FEX0VWRU5UKSkKLSAgICB7Ci0gICAgICAgIEV4Y2Vw
dGlvbkNvZGUgZWM7Ci0gICAgICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBjcmVhdGVFdmVudCgi
U1ZHRXZlbnRzIiwgZWMpOwotICAgICAgICBldmVudC0+aW5pdEV2ZW50KEV2ZW50TmFtZXM6OnVu
bG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpOwotICAgICAgICBkaXNwYXRjaFJlY3Vyc2l2ZUV2ZW50
KGV2ZW50LmdldCgpLCBsYXN0Q2hpbGQoKSk7Ci0gICAgfQotCi0gICAgZGVsZXRlIG1fc2NyaXB0
c0l0OwotICAgIGRlbGV0ZSBtX2NhY2hlZFNjcmlwdDsKLX0KLQotU3RyaW5nIFNWR0RvY3VtZW50
Ojp0aXRsZSgpIGNvbnN0Ci17Ci0gICAgaWYocm9vdEVsZW1lbnQoKSkKLSAgICB7Ci0gICAgICAg
IGZvcihOb2RlICpjaGlsZCA9IHJvb3RFbGVtZW50KCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0g
MDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgIGlmKGNoaWxkLT5o
YXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNWR1RpdGxlRWxlbWVudCAqPihjaGlsZCktPnRpdGxlKCk7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IFNWR0RvY3VtZW50
OjpjcmVhdGVFbGVtZW50KGNvbnN0IFN0cmluZyYgdGFnTmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgUXVhbGlmaWVkTmFtZSBxbmFtZShudWxsQXRvbSwgdGFnTmFtZS5pbXBsKCksIFNW
R05hbWVzOjpzdmdOYW1lc3BhY2VVUkkpOwotICAgIFJlZlB0cjxTVkdFbGVtZW50PiBlbGVtID0g
U1ZHRWxlbWVudEZhY3Rvcnk6OmNyZWF0ZVNWR0VsZW1lbnQocW5hbWUsIHRoaXMsIGZhbHNlKTsK
LSAgICBpZiAoIWVsZW0pCi0gICAgICAgIHJldHVybiBEb2N1bWVudDo6Y3JlYXRlRWxlbWVudCh0
YWdOYW1lLCBlYyk7Ci0gICAgcmV0dXJuIGVsZW07CiB9CiAKIFNWR1NWR0VsZW1lbnQgKlNWR0Rv
Y3VtZW50Ojpyb290RWxlbWVudCgpIGNvbnN0CkBAIC05OCw1OSArNTAsNiBAQCBTVkdTVkdFbGVt
ZW50ICpTVkdEb2N1bWVudDo6cm9vdEVsZW1lbnQoCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQg
U1ZHRG9jdW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE9iamVjdCAqZmluaXNoZWRPYmopCi17
Ci0gICAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiBhIHNjcmlwdCBoYXMgZmluaXNoZWQgbG9hZGlu
ZyB0aGF0IHdhcyByZXF1ZXN0ZWQgZnJvbQotICAgIC8vIGV4ZWN1dGVTY3JpcHRzKCkuICBXZSBl
eGVjdXRlIHRoZSBzY3JpcHQsIGFuZCB0aGVuIGNhbGwgZXhlY3V0ZVNjcmlwdHMoKQotICAgIC8v
IGFnYWluIHRvIGNvbnRpbnVlIGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBsaXN0IG9mIHNjcmlwdHMg
aW4gdGhlIGRvY3VtZW50Ci0gICAgaWYoZmluaXNoZWRPYmogPT0gbV9jYWNoZWRTY3JpcHQpCi0g
ICAgewotICAgICAgICBTdHJpbmcgc2NyaXB0U291cmNlID0gbV9jYWNoZWRTY3JpcHQtPnNjcmlw
dCgpOwotICAgICAgICAKLSAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmRlcmVmKHRoaXMpOwotICAg
ICAgICBtX2NhY2hlZFNjcmlwdCA9IDA7Ci0gICAgICAgIAotICAgICAgICBTVkdTY3JpcHRFbGVt
ZW50OjpleGVjdXRlU2NyaXB0KHRoaXMsIFN0cmluZyhzY3JpcHRTb3VyY2UuZGVwcmVjYXRlZFN0
cmluZygpKS5pbXBsKCkpOwotICAgICAgICBleGVjdXRlU2NyaXB0cyh0cnVlKTsKLSAgICB9Ci19
Ci0KLUZyYW1lVmlldyAqU1ZHRG9jdW1lbnQ6OnN2Z1ZpZXcoKSBjb25zdAotewotICAgIHJldHVy
biBtX3ZpZXc7Ci19Ci0KLXZvaWQgU1ZHRG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpCi17Ci0g
ICAgLy8gRklYTUU6IFR3byBwcm9ibGVtczoKLSAgICAvLyAxKSBUaGlzIGlzIG5ldmVyIGNhbGxl
ZCBzaW5jZSBpdCdzIGEgbm9uLXZpcnR1YWwgZnVuY3Rpb24uCi0gICAgLy8gMikgSWYgdGhpcyB3
YXMgY2FsbGVkIGl0IHdvdWxkIG5lZWQgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcydzIGltcGxlbWVu
dGF0aW9uIG9mIGZpbmlzaGVkUGFyc2luZy4KLQotICAgIGFkZFNjcmlwdHMocm9vdEVsZW1lbnQo
KSk7Ci0KLSAgICBtX3NjcmlwdHNJdCA9IG5ldyBRM1B0ckxpc3RJdGVyYXRvcjxTVkdTY3JpcHRF
bGVtZW50PihtX3NjcmlwdHMpOwotICAgIGV4ZWN1dGVTY3JpcHRzKGZhbHNlKTsKLX0KLQotdm9p
ZCBTVkdEb2N1bWVudDo6ZGlzcGF0Y2hSZWN1cnNpdmVFdmVudChFdmVudCAqZXZlbnQsIE5vZGUg
Km9iaikKLXsKLSAgICAvLyBJdGVyYXRlIHRoZSB0cmVlLCBiYWNrd2FyZHMsIGFuZCBkaXNwYXRj
aCB0aGUgZXZlbnQgdG8gZXZlcnkgY2hpbGQKLSAgICBmb3IoTm9kZSAqbiA9IG9iajsgbiAhPSAw
OyBuID0gbi0+cHJldmlvdXNTaWJsaW5nKCkpCi0gICAgewotICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjOwotICAgICAgICBpZihuLT5oYXNDaGlsZE5vZGVzKCkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIC8vIERpc3BhdGNoIHRvIGFsbCBjaGlsZHJlbgotICAgICAgICAgICAgZGlzcGF0Y2hSZWN1
cnNpdmVFdmVudChldmVudCwgbi0+bGFzdENoaWxkKCkpOwotCi0gICAgICAgICAgICAvLyBEaXNw
YXRjaCwgbG9jYWxseQotICAgICAgICAgICAgRXZlbnRUYXJnZXROb2RlQ2FzdChuKS0+ZGlzcGF0
Y2hFdmVudChldmVudCwgZWMpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IEV2ZW50VGFyZ2V0Tm9kZUNhc3QobiktPmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsKLSAgICB9
Ci19Ci0KIHZvaWQgU1ZHRG9jdW1lbnQ6OmRpc3BhdGNoWm9vbUV2ZW50KGZsb2F0IHByZXZTY2Fs
ZSwgZmxvYXQgbmV3U2NhbGUpCiB7CiAgICAgLy8gZGlzcGF0Y2ggem9vbSBldmVudApAQCAtMTcx
LDkzICs3MCw2IEBAIHZvaWQgU1ZHRG9jdW1lbnQ6OmRpc3BhdGNoU2Nyb2xsRXZlbnQoKQogICAg
IHJvb3RFbGVtZW50KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCksIGVjKTsKIH0KIAotQ1NT
U3R5bGVTZWxlY3RvciAqU1ZHRG9jdW1lbnQ6OmNyZWF0ZVN0eWxlU2VsZWN0b3IoY29uc3QgRGVw
cmVjYXRlZFN0cmluZyAmdXNlcnNoZWV0KQotewotICAgIHJldHVybiBuZXcgQ1NTU3R5bGVTZWxl
Y3Rvcih0aGlzLCB1c2Vyc2hlZXQsIG1fc3R5bGVTaGVldHMuZ2V0KCksIGZhbHNlKTsKLX0KLQot
dm9pZCBTVkdEb2N1bWVudDo6YWRkU2NyaXB0cyhOb2RlICpuKQotewotICAgIGlmKCFuKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBSZWN1cnNpdmVseSBnbyB0aHJvdWdoIHRoZSBlbnRpcmUg
ZG9jdW1lbnQgdHJlZSwgbG9va2luZyBmb3Igc3ZnIDxzY3JpcHQ+IHRhZ3MuCi0gICAgLy8gRm9y
IGVhY2ggb2YgdGhlc2UgdGhhdCBpcyBmb3VuZCwgYWRkIGl0IHRvIHRoZSBtX3NjcmlwdHMgbGlz
dCBmcm9tIHdoaWNoIHRoZXkgd2lsbCBiZSBleGVjdXRlZAotICAgIGlmIChuLT5oYXNUYWdOYW1l
KFNWR05hbWVzOjpzY3JpcHRUYWcpKQotICAgICAgICBtX3NjcmlwdHMuYXBwZW5kKHN0YXRpY19j
YXN0PFNWR1NjcmlwdEVsZW1lbnQgKj4obikpOwotCi0gICAgTm9kZSAqY2hpbGQ7Ci0gICAgZm9y
KGNoaWxkID0gbi0+Zmlyc3RDaGlsZCgpOyBjaGlsZCAhPSAwOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQotICAgICAgICBhZGRTY3JpcHRzKGNoaWxkKTsKLX0KLQotdm9pZCBTVkdEb2N1
bWVudDo6ZXhlY3V0ZVNjcmlwdHMoYm9vbCBuZWVkc1N0eWxlU2VsZWN0b3JVcGRhdGUpCi17Ci0g
ICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBvZiB0aGUgc3ZnIDxzY3JpcHQ+IHRhZ3MgaW4gdGhl
IGRvY3VtZW50LiBGb3IgdGhvc2UgdGhhdCBoYXZlIGEgc3JjIGF0dHJpYnV0ZSwKLSAgICAvLyBz
dGFydCBsb2FkaW5nIHRoZSBzY3JpcHQgYW5kIHJldHVybiAoZXhlY3V0ZVNjcmlwdHMoKSB3aWxs
IGJlIGNhbGxlZCBhZ2FpbiBvbmNlIHRoZSBzY3JpcHQgaXMgbG9hZGVkCi0gICAgLy8gYW5kIGNv
bnRpbnVlIHdoZXJlIGl0IGxlZnQgb2ZmKS4gRm9yIHNjcmlwdHMgdGhhdCBkb24ndCBoYXZlIGEg
c3JjIGF0dHJpYnV0ZSwgZXhlY3V0ZSB0aGUgY29kZSBpbnNpZGUgdGhlIHRhZwotICAgIFNWR1Nj
cmlwdEVsZW1lbnQgKnNjcmlwdCA9IDA7Ci0gICAgd2hpbGUoKHNjcmlwdCA9IG1fc2NyaXB0c0l0
LT5jdXJyZW50KCkpKQotICAgIHsKLSAgICAgICAgU3RyaW5nIGhyZWZBdHRyKHNjcmlwdC0+aHJl
ZigpLT5iYXNlVmFsKCkpOwotICAgICAgICBEZXByZWNhdGVkU3RyaW5nIGNoYXJzZXQ7IC8vIFRP
RE8gbV9zY3JpcHRzSXQtPmN1cnJlbnQoKS0+Z2V0QXR0cmlidXRlKFNWR05hbWVzOjpjaGFyc2V0
QXR0cikuZGVwcmVjYXRlZFN0cmluZygpOwotCi0gICAgICAgIGlmKCFocmVmQXR0ci5pc0VtcHR5
KCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIHdlIGhhdmUgYSBzcmMgYXR0cmlidXRlCi0g
ICAgICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IGRvY0xvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KGhy
ZWZBdHRyLCBjaGFyc2V0KTsKLSAgICAgICAgICAgICsrKCptX3NjcmlwdHNJdCk7Ci0gICAgICAg
ICAgICBtX2NhY2hlZFNjcmlwdC0+cmVmKHRoaXMpOyAvLyB3aWxsIGNhbGwgZXhlY3V0ZVNjcmlw
dHMoKSBhZ2FpbiBpZiBhbHJlYWR5IGNhY2hlZAotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgLy8gbm8gc3JjIGF0dHJp
YnV0ZSAtIGV4ZWN1dGUgZnJvbSBjb250ZW50cyBvZiB0YWcKLSAgICAgICAgICAgIFNWR1Njcmlw
dEVsZW1lbnQ6OmV4ZWN1dGVTY3JpcHQodGhpcywgc2NyaXB0LT50ZXh0Q29udGVudCgpLmltcGwo
KSk7Ci0gICAgICAgICAgICArKygqbV9zY3JpcHRzSXQpOwotCi0gICAgICAgICAgICBuZWVkc1N0
eWxlU2VsZWN0b3JVcGRhdGUgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRmly
ZSBMT0FEX0VWRU5UIGFmdGVyIGFsbCBzY3JpcHRzIGFyZSBldmFsdWF0ZWQKLSAgICBpZighbV9z
Y3JpcHRzSXQtPmN1cnJlbnQoKSkKLSAgICB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0g
ICAgICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBjcmVhdGVFdmVudCgiU1ZHRXZlbnRzIiwgZWMp
OwotICAgICAgICBldmVudC0+aW5pdEV2ZW50KEV2ZW50TmFtZXM6OmxvYWRFdmVudCwgZmFsc2Us
IGZhbHNlKTsKLSAgICAgICAgZGlzcGF0Y2hSZWN1cnNpdmVFdmVudChldmVudC5nZXQoKSwgbGFz
dENoaWxkKCkpOwotICAgIH0KLQotICAgIC8vIEFsbCBzY3JpcHRzIGhhdmUgZmluaXNoZWQgZXhl
Y3V0aW5nLCBzbyBjYWxjdWxhdGUgdGhlCi0gICAgLy8gc3R5bGUgZm9yIHRoZSBkb2N1bWVudCBh
bmQgY2xvc2UgdGhlIGxhc3QgZWxlbWVudAotICAgIGlmKHJlbmRlcmVyKCkgJiYgbmVlZHNTdHls
ZVNlbGVjdG9yVXBkYXRlKQotICAgICAgICB1cGRhdGVTdHlsZVNlbGVjdG9yKCk7Ci0KLSAgICAv
LyBjbG9zZSBhbnkgdW5jbG9zZWQgbm9kZXMKLSAgICBRM1B0ckxpc3RJdGVyYXRvcjxTVkdFbGVt
ZW50PiBpdChtX2ZvcndhcmRSZWZlcmVuY2VzKTsKLSAgICBmb3IoO2l0LmN1cnJlbnQoKTsgKytp
dCkKLSAgICB7Ci0gICAgICAgIGlmKCFpdC5jdXJyZW50KCktPmlzQ2xvc2VkKCkpCi0gICAgICAg
ICAgICBpdC5jdXJyZW50KCktPmNsb3NlUmVuZGVyZXIoKTsKLSAgICB9Ci0gICAgbV9mb3J3YXJk
UmVmZXJlbmNlcy5jbGVhcigpOwotfQotCi12b2lkIFNWR0RvY3VtZW50OjpyZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSBjaGFuZ2UpCi17Ci0gICAgZm9yKE5vZGUgKm4gPSBmaXJzdENoaWxkKCk7IG47
IG4gPSBuLT5uZXh0U2libGluZygpKQotICAgIHsKLSAgICAgICAgaWYoY2hhbmdlID49IEluaGVy
aXQgfHwgbi0+aGFzQ2hhbmdlZENoaWxkKCkgfHwgbi0+Y2hhbmdlZCgpKQotICAgICAgICAgICAg
bi0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgU1ZHRG9jdW1lbnQ6OmFk
ZEZvcndhcmRSZWZlcmVuY2UoY29uc3QgU1ZHRWxlbWVudCAqZWxlbWVudCkKLXsKLSAgICBtX2Zv
cndhcmRSZWZlcmVuY2VzLmFwcGVuZChlbGVtZW50KTsKLX0KLQogfQogCiAvLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdET01JbXBsZW1lbnRhdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHRE9NSW1wbGVtZW50YXRpb24uY3BwCShy
ZXZpc2lvbiAxNDQ4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0RPTUltcGxlbWVudGF0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOCArMzksNiBAQAogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAotU1ZHRE9NSW1wbGVtZW50YXRpb24gKlNWR0RPTUltcGxlbWVudGF0aW9uOjpz
X2luc3RhbmNlID0gMDsKLQogc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgc3ZnRmVhdHVy
ZVNldCgpCiB7CiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiogc3ZnRmVhdHVyZXMgPSAwOwpA
QCAtMTA1LDEyICsxMDMsMTAgQEAgU1ZHRE9NSW1wbGVtZW50YXRpb246On5TVkdET01JbXBsZW1l
bnRhdAogICAgIC8vU1ZHUmVuZGVyU3R5bGU6OmNsZWFudXAoKTsKIH0KIAotU1ZHRE9NSW1wbGVt
ZW50YXRpb24gKlNWR0RPTUltcGxlbWVudGF0aW9uOjpzZWxmKCkKK1NWR0RPTUltcGxlbWVudGF0
aW9uICpTVkdET01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKQogewotICAgIGlmICghc19pbnN0
YW5jZSkKLSAgICAgICAgc19pbnN0YW5jZSA9IG5ldyBTVkdET01JbXBsZW1lbnRhdGlvbigpOwot
Ci0gICAgcmV0dXJuIHNfaW5zdGFuY2U7CisgICAgc3RhdGljIFJlZlB0cjxTVkdET01JbXBsZW1l
bnRhdGlvbj4gaSA9IG5ldyBTVkdET01JbXBsZW1lbnRhdGlvbjsKKyAgICByZXR1cm4gaS5nZXQo
KTsKIH0KIAogYm9vbCBTVkdET01JbXBsZW1lbnRhdGlvbjo6aGFzRmVhdHVyZShTdHJpbmdJbXBs
ICpmZWF0dXJlSW1wbCwgU3RyaW5nSW1wbCAqdmVyc2lvbkltcGwpIGNvbnN0CkBAIC0yMjAsNiAr
MjE2LDExIEBAIHZvaWQgU1ZHRE9NSW1wbGVtZW50YXRpb246OnNldEFuaW1hdGlvbkMKICAgICBt
X2FuaW1hdGlvbkNvbnRleHQgPSB2YWx1ZTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudD4gU1ZH
RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KEZyYW1lVmlldyogdikKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR0RvY3VtZW50KHRoaXMsIHYpOworfQorCiAvLyB2aW06dHM9NDpub2V0CiAj
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKIApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGl0bGVF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGl0bGVFbGVtZW50
LmgJKHJldmlzaW9uIDE0NDg4KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHVGl0bGVFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUKIAog
ICAgICAgICBTdHJpbmcgdGl0bGUoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VSZW5kZXJlcigpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQo
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpOwpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcv
U1ZHVGl0bGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdU
aXRsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDQ4OCkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NW
R1RpdGxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEyICszOCw2IEBAIFN0cmlu
ZyBTVkdUaXRsZUVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICByZXR1cm4gdGV4dENvbnRlbnQo
KTsKIH0KIAotdm9pZCBTVkdUaXRsZUVsZW1lbnQ6OmNsb3NlUmVuZGVyZXIoKQotewotICAgIFNW
R1N0eWxlZEVsZW1lbnQ6OmNsb3NlUmVuZGVyZXIoKTsKLSAgICBkb2N1bWVudCgpLT5zZXRUaXRs
ZSh0ZXh0Q29udGVudCgpLCB0aGlzKTsKLX0KLQogdm9pZCBTVkdUaXRsZUVsZW1lbnQ6Omluc2Vy
dGVkSW50b0RvY3VtZW50KCkKIHsKICAgICBTVkdTdHlsZWRFbGVtZW50OjppbnNlcnRlZEludG9E
b2N1bWVudCgpOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiAxNDQ4OCkKKysrIFdlYkNvcmUvcGFnZS9G
cmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAKICNpbmNsdWRlICJTVkdO
YW1lcy5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4
dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJTVkdET01JbXBsZW1lbnRhdGlvbi5oIgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC01OTgsNiArNTk5LDExIEBAIHZvaWQgRnJhbWU6OmJl
Z2luKGNvbnN0IEtVUkwmIHVybCkKICAgaWYgKCFkLT5tX3VybC5pc0VtcHR5KCkpCiAgICAgYmFz
ZXVybCA9IGQtPm1fdXJsOwogCisjaWYgU1ZHX1NVUFBPUlQKKyAgaWYgKGQtPm1fcmVxdWVzdC5t
X3Jlc3BvbnNlTUlNRVR5cGUgPT0gImltYWdlL3N2Zyt4bWwiKQorICAgIGQtPm1fZG9jID0gU1ZH
RE9NSW1wbGVtZW50YXRpb246Omluc3RhbmNlKCktPmNyZWF0ZURvY3VtZW50KGQtPm1fdmlldy5n
ZXQoKSk7CisgIGVsc2UKKyNlbmRpZgogICBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlN
RVR5cGUoZC0+bV9yZXF1ZXN0Lm1fcmVzcG9uc2VNSU1FVHlwZSkpCiAgICAgZC0+bV9kb2MgPSBE
T01JbXBsZW1lbnRhdGlvbjo6aW5zdGFuY2UoKS0+Y3JlYXRlRG9jdW1lbnQoZC0+bV92aWV3Lmdl
dCgpKTsKICAgZWxzZSBpZiAoRE9NSW1wbGVtZW50YXRpb246OmlzVGV4dE1JTUVUeXBlKGQtPm1f
cmVxdWVzdC5tX3Jlc3BvbnNlTUlNRVR5cGUpKQo=
</data>
<flag name="review"
          id="2386"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>