<?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>27521</bug_id>
          
          <creation_ts>2009-07-21 15:07:11 -0700</creation_ts>
          <short_desc>Move m_context out of generator into superclass</short_desc>
          <delta_ts>2009-07-21 23:58:08 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27088</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133612</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 15:07:11 -0700</bug_when>
    <thetext>Move m_context out of generator into superclass

This will reduce WebCore&apos;s code size.  This will also make it easier for me to incrementally move classes over to holding an m_globalObject pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133613</commentid>
    <comment_count>1</comment_count>
      <attachid>33217</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 15:09:59 -0700</bug_when>
    <thetext>Created attachment 33217
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133637</commentid>
    <comment_count>2</comment_count>
      <attachid>33217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 15:56:11 -0700</bug_when>
    <thetext>Comment on attachment 33217
patch

This looks good.  Perl is super ugly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133654</commentid>
    <comment_count>3</comment_count>
      <attachid>33227</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 16:47:58 -0700</bug_when>
    <thetext>Created attachment 33227
Move out into a file to fix WebKit build


---
 9 files changed, 113 insertions(+), 43 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133656</commentid>
    <comment_count>4</comment_count>
      <attachid>33228</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 16:49:56 -0700</bug_when>
    <thetext>Created attachment 33228
Fix WebKit build by moving into new file


---
 9 files changed, 121 insertions(+), 43 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133659</commentid>
    <comment_count>5</comment_count>
      <attachid>33228</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 17:02:00 -0700</bug_when>
    <thetext>Comment on attachment 33228
Fix WebKit build by moving into new file

okedoke</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133660</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 17:08:29 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.pro
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	A	WebCore/bindings/js/DOMObjectWithSVGContext.h
	M	WebCore/bindings/js/JSEventCustom.cpp
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
Committed r46201
	M	WebCore/WebCore.pro
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/WebCore.gypi
	M	WebCore/bindings/scripts/CodeGeneratorJS.pm
	A	WebCore/bindings/js/DOMObjectWithSVGContext.h
	M	WebCore/bindings/js/JSEventCustom.cpp
	M	WebCore/WebCore.xcodeproj/project.pbxproj
r46201 = ef823b64df0e4d61afa35bb385e3fa577ac0f419 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46201</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133678</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-07-21 18:52:48 -0700</bug_when>
    <thetext>Out of curiosity, what is the reason that the context can&apos;t be in the JSSVGPODTypeWrapper class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133693</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-21 21:50:56 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Out of curiosity, what is the reason that the context can&apos;t be in the
&gt; JSSVGPODTypeWrapper class?

The context will eventually move to the impl, so I&apos;m not sure it matters that much were it is in the intermediate term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133713</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 23:58:08 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Out of curiosity, what is the reason that the context can&apos;t be in the
&gt; JSSVGPODTypeWrapper class?

Sam is correct, that in the case of POD types, JSSVGPODTypeWrapper is the impl.

For things like SVGPathSeg, those classes will have to change to hold some sort of context pointer.

JSSVGPODTypeWrapper will be the &quot;easy&quot; case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33217</attachid>
            <date>2009-07-21 15:09:59 -0700</date>
            <delta_ts>2009-07-21 16:47:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27521-20090721150958.patch</filename>
            <type>text/plain</type>
            <size>9213</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmQ4MWQ0NC4uYmVjYWZkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAwOS0wNy0yMSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBtX2NvbnRleHQgb3V0IG9mIGdlbmVyYXRvciBpbnRvIGEgc3VwZXJj
bGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1
MjEKKworICAgICAgICBNb3N0bHkgdGhpcyBpcyByZW1vdmluZyBjb2RlIGZyb20gQ29kZUdlbmVy
YXRvckpTCisgICAgICAgIGFuZCBpbnN0ZWFkIHVzaW5nIGEgRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQgc3VwZXJjbGFzcyBpbiBKU0RPTUJpbmRpbmcuaC4KKworICAgICAgICBJIGFsc28gcmVtb3Zl
ZCBjb250ZXh0IHBvaW50ZXIgZnJvbSBTVkdab29tRXZlbnQgc2luY2UgaXQgd2FzIG5ldmVyIHVz
ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTU9iamVjdFdpdGhTVkdDb250ZXh0Ojpjb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTU9iamVjdFdpdGhTVkdDb250ZXh0OjpET01PYmplY3RXaXRoU1ZHQ29udGV4dCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KworMjAwOS0wNy0yMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KIAogICAgICAgICBBbGwgRE9NQ29uc3RydWN0b3JPYmpl
Y3RzIHNob3VsZCBob2xkIGEgcG9pbnRlciB0byB0aGUgSlNET01HbG9iYWxPYmplY3QKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IGUzMTcyOWQuLjk0M2I2ZDQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMjksNiArMjksMTAgQEAKICNpbmNsdWRlIDxydW50aW1l
L0pTRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorI2lmIEVOQUJM
RShTVkcpCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0Mg
ewogICAgIGNsYXNzIEpTR2xvYmFsRGF0YTsKIH0KQEAgLTQ0LDEwICs0OCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLSNpZiBFTkFC
TEUoU1ZHKQotICAgIGNsYXNzIFNWR0VsZW1lbnQ7Ci0jZW5kaWYKLQogICAgIC8vIEJhc2UgY2xh
c3MgZm9yIGFsbCBvYmplY3RzIGluIHRoaXMgYmluZGluZyBleGNlcHQgV2luZG93LgogICAgIGNs
YXNzIERPTU9iamVjdCA6IHB1YmxpYyBKU0M6OkpTT2JqZWN0IHsKICAgICBwcm90ZWN0ZWQ6CkBA
IC05MSw2ICs5MSwyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiBtX2dsb2JhbE9iamVjdDsKICAgICB9OwogCisjaWYgRU5BQkxFKFNWRykKKyAgICAv
LyBGSVhNRTogVGhpcyBjbGFzcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIGFsbCBTVkcgYmluZGlu
Z3MgaGF2ZSBtb3ZlZAorICAgIC8vIGNvbnRleHQoKSBvbnRvIHRoZSBpbXBsIHBvaW50ZXIuCisg
ICAgY2xhc3MgRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQgOiBwdWJsaWMgRE9NT2JqZWN0IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH0KKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgRE9NT2JqZWN0V2l0
aFNWR0NvbnRleHQoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBTVkdFbGVt
ZW50KiBjb250ZXh0KQorICAgICAgICAgICAgOiBET01PYmplY3Qoc3RydWN0dXJlKQorICAgICAg
ICAgICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gTm8g
c3BhY2UgdG8gc3RvcmUgdGhlIGdsb2JhbE9iamVjdCB3L28gaGl0dGluZyB0aGUgQ0VMTF9TSVpF
IGxpbWl0LgorICAgICAgICB9CisKKyAgICBwcm90ZWN0ZWQ6IC8vIEZJWE1FOiBNYW55IGN1c3Rv
bSBiaW5kaW5ncyB1c2UgbV9jb250ZXh0IGRpcmVjdGx5LiAgTWFraW5nIHRoaXMgcHJvdGVjdGVk
IHRvIHRlbXBvcmFyaWxpeSByZWR1Y2UgY29kZSBjaHVybi4KKyAgICAgICAgUmVmUHRyPFNWR0Vs
ZW1lbnQ+IG1fY29udGV4dDsKKyAgICB9OworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisKICAgICAv
LyBCYXNlIGNsYXNzIGZvciBhbGwgY29uc3RydWN0b3Igb2JqZWN0cyBpbiB0aGUgSlNDIGJpbmRp
bmdzLgogICAgIGNsYXNzIERPTUNvbnN0cnVjdG9yT2JqZWN0IDogcHVibGljIERPTU9iamVjdFdp
dGhHbG9iYWxQb2ludGVyIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3Vz
dG9tLmNwcAppbmRleCBkY2FjOGNhLi4zZmExMjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBFdmVudCogZXZlbnQpCiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpF
Q1RfV1JBUFBFUihleGVjLCBXaGVlbEV2ZW50LCBldmVudCk7CiAjaWYgRU5BQkxFKFNWRykKICAg
ICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCi0gICAgICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX1NWR19PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkdab29tRXZlbnQsIGV2ZW50
LCAwKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4
ZWMsIFNWR1pvb21FdmVudCwgZXZlbnQpOwogI2VuZGlmCiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFVJRXZlbnQsIGV2
ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IGE3MjZhNGEuLjNkN2NlMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMTE5LDcgKzExOSwxMCBAQCBzdWIgR2V0UGFyZW50Q2xhc3NOYW1lCiAg
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAKICAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTGVnYWN5UGFyZW50In07Ci0gICAgcmV0dXJuICJET01PYmplY3QiIGlmIEB7JGRh
dGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEg
MCkgeworICAgICAgICByZXR1cm4gIkRPTU9iamVjdFdpdGhTVkdDb250ZXh0IiBpZiBJc1NWR1R5
cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkZGF0YU5vZGUtPm5hbWUpOworICAgICAgICByZXR1
cm4gIkRPTU9iamVjdCI7CisgICAgfQogICAgIHJldHVybiAiSlMiIC4gJGNvZGVHZW5lcmF0b3It
PlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSk7CiB9CiAKQEAgLTIxOSwxMSArMjIy
LDEzIEBAIHN1YiBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcgogewogICAgIG15ICRp
bXBsQ2xhc3NOYW1lID0gc2hpZnQ7CiAKLSAgICBpZiAoJGltcGxDbGFzc05hbWUgPX4gL1NWRy8g
YW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC8pIHsKLSAgICAgICAgcmV0dXJuIDEg
dW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdQYWludC8gb3IgJGltcGxDbGFzc05hbWUgPX4g
L1NWR0NvbG9yLyBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHRG9jdW1lbnQvOworICAgIHJldHVy
biAwIHVubGVzcyAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHLzsKKyAgICByZXR1cm4gMCBpZiAkaW1w
bENsYXNzTmFtZSA9fiAvRWxlbWVudC87CisgICAgbXkgQG5vQ29udGV4dE5lZWRlZCA9ICgiU1ZH
UGFpbnQiLCAiU1ZHQ29sb3IiLCAiU1ZHRG9jdW1lbnQiLCAiU1ZHWm9vbUV2ZW50Iik7CisgICAg
Zm9yZWFjaCAoQG5vQ29udGV4dE5lZWRlZCkgeworICAgICAgICByZXR1cm4gMCBpZiAkaW1wbENs
YXNzTmFtZSBlcSAkXzsKICAgICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gMTsKIH0K
IAogc3ViIEhhc2hWYWx1ZUZvckNsYXNzQW5kTmFtZQpAQCAtNTY5LDIzICs1NzQsMTEgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgfQogCiAgICAgaWYgKCEkaGFzUGFyZW50KSB7Ci0gICAgICAg
IGlmICgkcG9kVHlwZSkgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBK
U1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1w
bC5nZXQoKTsgfVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFNW
R0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxu
Iik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9j
b250ZXh0O1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFJlZlB0
cjxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+IG1faW1wbDtcbiIpOwotICAgICAgICB9
IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkp
IHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUq
IGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOwotICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgInByaXZhdGU6XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOwotICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05hbWUgPiBtX2ltcGw7XG4i
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1c
blxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIpOwot
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05h
bWU+IG1faW1wbDtcbiIpOwotICAgICAgICB9CisgICAgICAgICMgRXh0cmEgc3BhY2UgYWZ0ZXIg
SlNTVkdQT0RUeXBlV3JhcHBlcjw+IHRvIG1ha2UgUmVmUHRyPFdyYXBwZXI8PiA+IGNvbXBpbGUu
CisgICAgICAgIG15ICRpbXBsVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8
JHBvZFR5cGU+ICIgOiAkaW1wbENsYXNzTmFtZTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAkaW1wbFR5cGUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1c
blxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcml2YXRlOlxuIik7CisgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRyPCRpbXBsVHlwZT4gbV9pbXBsO1xu
Iik7CiAgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJh
dGVOYXRpdmVDb252ZXJ0ZXIifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3RcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHtcbiIpOwpAQCAtOTgxLDIxICs5NzQsMTMgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRj
bGFzc05hbWUoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwkaW1w
bFR5cGU+IGltcGwsIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKVxuIik7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGltcGwsIHNo
ZWxsKVxuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJGNvbnRleHRBcmcgPSAiIjsKLSAg
ICAgICAgaWYgKCRuZWVkc1NWR0NvbnRleHQpIHsKLSAgICAgICAgICAgIGlmICgkaGFzUGFyZW50
ICYmICEkcGFyZW50TmVlZHNTVkdDb250ZXh0KSB7Ci0gICAgICAgICAgICAgICAgJGNvbnRleHRB
cmcgPSAiLCBTVkdFbGVtZW50KiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICRjb250ZXh0QXJnID0gIiwgU1ZHRWxlbWVudCogY29udGV4dCI7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KKyAgICAgICAgbXkgJGNvbnRleHRBcmcgPSAkbmVlZHNTVkdDb250ZXh0ID8g
IiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIjsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwkY29udGV4dEFyZylcbiIpOwogICAgICAgICBp
ZiAoJGhhc1BhcmVudCkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAk
cGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4
dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVy
ZSlcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBtX2NvbnRleHQo
Y29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7ICAKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUiIC4gKCRuZWVkc1NW
R0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAuICIpXG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKICAgICAgICAgfQogICAgIH0K
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwpAQCAtMTcyMCwxMSArMTcwNSwxMiBAQCBz
dWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoJGltcGxDbGFzc05h
bWVGb3JWYWx1ZUNvbnZlcnNpb24gZXEgIiIpIHsKLSAgICAgICAgICAgIGlmIChJc1NWR1R5cGVO
ZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlw
ZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCBjYXN0ZWRUaGlzT2JqLT5jb250ZXh0KCkpIiBpZiAk
aW5GdW5jdGlvbkNhbGwgZXEgMTsKKyAgICAgICAgICAgICMgU1ZHWm9vbUV2ZW50IGhhcyBubyBj
b250ZXh0KCkgcG9pbnRlciwgYW5kIGlzIGFsc28gbm90IGFuIFNWR0VsZW1lbnQuCisgICAgICAg
ICAgICAjIFRoaXMgaXMgbm90IGEgcHJvYmxlbSwgYmVjYXVzZSBTVkdab29tRXZlbnQgaGFzIG5v
IHJlYWQvd3JpdGUgcHJvcGVydGllcy4KKyAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0
KCksIDApIiBpZiAkaW1wbENsYXNzTmFtZSBlcSAiU1ZHWm9vbUV2ZW50IjsKIAotICAgICAgICAg
ICAgICAgICMgU3BlY2lhbCBjYXNlOiBTVkdab29tRXZlbnQgLSBpdCBkb2Vzbid0IGhhdmUgYSBj
b250ZXh0LCBidXQgaXQncyBubyBwcm9ibGVtLCBhcyB0aGVyZSBhcmUgbm8gcmVhZHdyaXRlIHBy
b3BzCi0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlw
ZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgMCkiIGlmICRpbXBs
Q2xhc3NOYW1lIGVxICJTVkdab29tRXZlbnQiOworICAgICAgICAgICAgaWYgKElzU1ZHVHlwZU5l
ZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAgICAgICAg
IHJldHVybiAidG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBl
Pjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCksIGNhc3RlZFRoaXNPYmotPmNvbnRleHQoKSkiIGlmICRp
bkZ1bmN0aW9uQ2FsbDsKICAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdT
dGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCAk
dGhpc1ZhbHVlLT5jb250ZXh0KCkpIjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2
ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgaW1wKSI7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33227</attachid>
            <date>2009-07-21 16:47:58 -0700</date>
            <delta_ts>2009-07-21 16:49:53 -0700</delta_ts>
            <desc>Move out into a file to fix WebKit build</desc>
            <filename>bug-27521-20090721164758.patch</filename>
            <type>text/plain</type>
            <size>16411</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGY5ZDk0Ni4uNTA5MGNjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wNy0yMSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBtX2NvbnRleHQgb3V0IG9mIGdlbmVyYXRvciBpbnRvIGEgc3VwZXJj
bGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1
MjEKKworICAgICAgICBNb3N0bHkgdGhpcyBpcyByZW1vdmluZyBjb2RlIGZyb20gQ29kZUdlbmVy
YXRvckpTCisgICAgICAgIGFuZCBpbnN0ZWFkIHVzaW5nIGEgRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQgc3VwZXJjbGFzcyBpbiBKU0RPTUJpbmRpbmcuaC4KKworICAgICAgICBJIGFsc28gcmVtb3Zl
ZCBjb250ZXh0IHBvaW50ZXIgZnJvbSBTVkdab29tRXZlbnQgc2luY2UgaXQgd2FzIG5ldmVyIHVz
ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTU9iamVjdFdpdGhTVkdDb250ZXh0Ojpjb250ZXh0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTU9iamVjdFdpdGhTVkdDb250ZXh0OjpET01PYmplY3RXaXRoU1ZHQ29udGV4dCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToK
KwogMjAwOS0wNy0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTM1M2M0Zi4uYzZmYzY2NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTM5OSw2ICszOTksNyBAQAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyV2luLmgnLAogICAgICAgICAgICAgJ2FjY2Vzc2liaWxpdHkvd3gv
QWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvRE9N
T2JqZWN0V2l0aFNWR0NvbnRleHQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvR0NDb250
cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODI1MmE3MC4u
MzllYmJkNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC0xMTM0LDYgKzExMzQsNyBAQCBIRUFERVJTICs9IFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5oIFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuaCBcCisgICAgYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaCBc
CiAgICAgYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTQXVk
aW9Db25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25D
dXN0b20uaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxYmY3Y2E1
Li45YjE2YTc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MTY5
LDYgKzI4MTY5LDEwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xET01PYmplY3RXaXRo
U1ZHQ29udGV4dC5oIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+
DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+DQogCQkJCTxGaWxlDQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEdDQ29udHJvbGxlci5jcHAiDQogCQkJ
CQk+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMDRi
NjZiLi4yMThlODY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjg4Nyw2ICsyODg3LDcgQEAKIAkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0
eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4RUE4MDA0MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmggKi87IH07CiAJCUE4RUE4
MDBEMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE4MDA1MEExOTUxNkUwMEE4RUY1RiAvKiBT
dHlsZVNoZWV0LmNwcCAqLzsgfTsKIAkJQThFQTgwMEUwQTE5NTE2RTAwQThFRjVGIC8qIE1lZGlh
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThF
QTgwMDYwQTE5NTE2RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5oICovOyB9OworCQlBOEVEQjAzRDEw
MTY4NDk0MDBGRTgxMTMgLyogRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RURCMDNDMTAxNjg0OTQwMEZFODEx
MyAvKiBET01PYmplY3RXaXRoU1ZHQ29udGV4dC5oICovOyB9OwogCQlBOEY0NkE4NDBDQjIwQTlE
MDAzQTk2NzAgLyogRE9NU1ZHQ2xpcFBhdGhFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzNjEyQzBBQ0UwMDdC
MDAxRjNEOUUgLyogRE9NU1ZHQ2xpcFBhdGhFbGVtZW50LmggKi87IH07CiAJCUE4RjQ2QTg4MENC
MjBBOUQwMDNBOTY3MCAvKiBET01TVkdHcmFkaWVudEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzlBMkVDMEFE
N0U5MDMwMEZCRkYxRSAvKiBET01TVkdHcmFkaWVudEVsZW1lbnQuaCAqLzsgfTsKIAkJQThGNDZB
ODkwQ0IyMEE5RDAwM0E5NjcwIC8qIERPTVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
MDM2MTI4MEFDRTAwN0IwMDFGM0Q5RSAvKiBET01TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi87
IH07CkBAIC03Njg4LDYgKzc2ODksNyBAQAogCQlBOEVBODAwNDBBMTk1MTZFMDBBOEVGNUYgLyog
U3R5bGVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTaGVl
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEVBODAwNTBBMTk1MTZFMDBBOEVG
NUYgLyogU3R5bGVTaGVldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3R5bGVTaGVldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RUE4MDA2
MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEVE
QjAzQzEwMTY4NDk0MDBGRTgxMTMgLyogRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThGNEZCOTMwQzE2OUU3QjAwMkFGRUQ1IC8qIFNW
R1JlbmRlclN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUmVu
ZGVyU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEY0RkI5NTBDMTY5
RTg1MDAyQUZFRDUgLyogU1ZHUmVuZGVyU3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdSZW5kZXJTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQThGNUMwQjYwRjkyODVBQzAwOThFMDZCIC8qIFJlbmRlclNWR01vZGVsT2Jq
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR01vZGVsT2Jq
ZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQ1Nyw2ICsxMzQ1OSw3IEBA
CiAJCUJDMUEzNzkzMDk3QzZGQjEwMDE5RjNEOCAvKiBqcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQThFREIwM0MxMDE2ODQ5NDAwRkU4MTEzIC8qIERP
TU9iamVjdFdpdGhTVkdDb250ZXh0LmggKi8sCiAJCQkJNDE1QjdDNjIwRkY1QTc2NzAwNjc3MEY3
IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaCAqLywKIAkJCQk0MTVCN0M1NDBGRjU5OEU2
MDA2NzcwRjcgLyogSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAgKi8sCiAJCQkJNDE1QjdDNTUw
RkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwICovLApAQCAt
MTcwMjUsNiArMTcwMjgsNyBAQAogCQkJCTM3N0M0Q0RGMTAxNEU5RjYwMEI5QUU0MiAvKiBQbGFj
ZWhvbGRlckRvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUNGN0FERDEwMTYyQjM4MDA0
MjdERTcgLyogSlNFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUNGN0FFMjEwMTYy
QjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThFREIwM0Qx
MDE2ODQ5NDAwRkU4MTEzIC8qIERPTU9iamVjdFdpdGhTVkdDb250ZXh0LmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjgzMDkwCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmplY3RXaXRoU1ZHQ29udGV4dC5oCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
QVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NT2Jq
ZWN0V2l0aFNWR0NvbnRleHRfaAorI2RlZmluZSBET01PYmplY3RXaXRoU1ZHQ29udGV4dF9oCisK
KyNpZiBFTkFCTEUoU1ZHKQorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAi
U1ZHRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICAvLyBGSVhNRTogVGhp
cyBjbGFzcyAoYW5kIGZpbGUpIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgYWxsIFNWRyBiaW5kaW5n
cworICAgIC8vIGhhdmUgbW92ZWQgY29udGV4dCgpIG9udG8gdGhlIHZhcmlvdXMgaW1wbCgpIHBv
aW50ZXJzLgorICAgIGNsYXNzIERPTU9iamVjdFdpdGhTVkdDb250ZXh0IDogcHVibGljIERPTU9i
amVjdCB7CisgICAgcHVibGljOgorICAgICAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIERP
TU9iamVjdFdpdGhTVkdDb250ZXh0KFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAgICAgICAgICAgIDogRE9NT2JqZWN0KHN0cnVjdHVy
ZSkKKyAgICAgICAgICAgICwgbV9jb250ZXh0KGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIE5vIHNwYWNlIHRvIHN0b3JlIHRoZSBnbG9iYWxPYmplY3Qgdy9vIGhpdHRpbmcgdGhl
IENFTExfU0laRSBsaW1pdC4KKyAgICAgICAgfQorCisgICAgcHJvdGVjdGVkOiAvLyBGSVhNRTog
TWFueSBjdXN0b20gYmluZGluZ3MgdXNlIG1fY29udGV4dCBkaXJlY3RseS4gIE1ha2luZyB0aGlz
IHByb3RlY3RlZCB0byB0ZW1wb3JhcmlsaXkgcmVkdWNlIGNvZGUgY2h1cm4uCisgICAgICAgIFJl
ZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRpZiAvLyBET01PYmplY3RXaXRoU1ZH
Q29udGV4dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBlMzE3MjlkLi4xMDEz
ZDM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTQ0LDEwICs0NCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLSNp
ZiBFTkFCTEUoU1ZHKQotICAgIGNsYXNzIFNWR0VsZW1lbnQ7Ci0jZW5kaWYKLQogICAgIC8vIEJh
c2UgY2xhc3MgZm9yIGFsbCBvYmplY3RzIGluIHRoaXMgYmluZGluZyBleGNlcHQgV2luZG93Lgog
ICAgIGNsYXNzIERPTU9iamVjdCA6IHB1YmxpYyBKU0M6OkpTT2JqZWN0IHsKICAgICBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAppbmRleCBkY2FjOGNhLi4zZmEx
MjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTEwMSw3ICsxMDEs
NyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBFdmVudCogZXZlbnQpCiAgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBXaGVlbEV2ZW50
LCBldmVudCk7CiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZH
Wm9vbUV2ZW50KCkpCi0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX1NWR19PQkpFQ1RfV1JB
UFBFUihleGVjLCBTVkdab29tRXZlbnQsIGV2ZW50LCAwKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIFNWR1pvb21FdmVudCwgZXZlbnQpOwog
I2VuZGlmCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIFVJRXZlbnQsIGV2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGE3MjZhNGEuLmQ0ZjRkNjEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTE5LDcgKzExOSwx
MCBAQCBzdWIgR2V0UGFyZW50Q2xhc3NOYW1lCiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAK
ICAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50
In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07Ci0g
ICAgcmV0dXJuICJET01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAg
IGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMCkgeworICAgICAgICByZXR1cm4gIkRPTU9i
amVjdFdpdGhTVkdDb250ZXh0IiBpZiBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigk
ZGF0YU5vZGUtPm5hbWUpOworICAgICAgICByZXR1cm4gIkRPTU9iamVjdCI7CisgICAgfQogICAg
IHJldHVybiAiSlMiIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFy
ZW50cygwKSk7CiB9CiAKQEAgLTIxOSwxMSArMjIyLDEzIEBAIHN1YiBJc1NWR1R5cGVOZWVkaW5n
Q29udGV4dFBhcmFtZXRlcgogewogICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gc2hpZnQ7CiAKLSAg
ICBpZiAoJGltcGxDbGFzc05hbWUgPX4gL1NWRy8gYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAv
RWxlbWVudC8pIHsKLSAgICAgICAgcmV0dXJuIDEgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9T
VkdQYWludC8gb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0NvbG9yLyBvciAkaW1wbENsYXNzTmFt
ZSA9fiAvU1ZHRG9jdW1lbnQvOworICAgIHJldHVybiAwIHVubGVzcyAkaW1wbENsYXNzTmFtZSA9
fiAvU1ZHLzsKKyAgICByZXR1cm4gMCBpZiAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC87Cisg
ICAgbXkgQG5vQ29udGV4dE5lZWRlZCA9ICgiU1ZHUGFpbnQiLCAiU1ZHQ29sb3IiLCAiU1ZHRG9j
dW1lbnQiLCAiU1ZHWm9vbUV2ZW50Iik7CisgICAgZm9yZWFjaCAoQG5vQ29udGV4dE5lZWRlZCkg
eworICAgICAgICByZXR1cm4gMCBpZiAkaW1wbENsYXNzTmFtZSBlcSAkXzsKICAgICB9Ci0KLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gMTsKIH0KIAogc3ViIEhhc2hWYWx1ZUZvckNsYXNzQW5k
TmFtZQpAQCAtMzU4LDYgKzM2Myw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRoYXNQ
YXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OwogICAgIG15ICRwYXJl
bnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2RlKTsKICAgICBteSAkY29u
ZGl0aW9uYWwgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9
OworICAgIG15ICRuZWVkc1NWR0NvbnRleHQgPSBJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFt
ZXRlcigkaW50ZXJmYWNlTmFtZSk7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBs
YXRlCiAgICAgQGhlYWRlckNvbnRlbnRIZWFkZXIgPSBzcGxpdCgiXHIiLCAkaGVhZGVyVGVtcGxh
dGUpOwpAQCAtMzc1LDcgKzM4MSw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkaGFz
UGFyZW50KSB7CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siJHBhcmVudENsYXNzTmFtZS5oIn0g
PSAxOwogICAgIH0gZWxzZSB7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3siSlNET01CaW5kaW5n
LmgifSA9IDE7CisgICAgICAgICRoZWFkZXJJbmNsdWRlc3siRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQuaCJ9ID0gJG5lZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgJGhlYWRlckluY2x1ZGVzeyJKU0RP
TUJpbmRpbmcuaCJ9ID0gISRuZWVkc1NWR0NvbnRleHQ7CiAgICAgICAgICRoZWFkZXJJbmNsdWRl
c3siPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4ifSA9IDE7CiAgICAgICAgICRoZWFkZXJJbmNs
dWRlc3siPHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmg+In0gPSAxOwogICAgIH0KQEAgLTU2OSwy
MyArNTc2LDExIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmICghJGhhc1Bh
cmVudCkgewotICAgICAgICBpZiAoJHBvZFR5cGUpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25z
dCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0LmdldCgpOyB9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInBy
aXZhdGU6XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRy
PFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPiBtX2ltcGw7
XG4iKTsKLSAgICAgICAgfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIo
JGltcGxDbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgU1ZHRWxlbWVudCogY29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcml2YXRlOlxuIik7Ci0gICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsK
LSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRyPCRpbXBsQ2xhc3NO
YW1lID4gbV9pbXBsO1xuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4g
bV9pbXBsLmdldCgpOyB9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InByaXZhdGU6XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVm
UHRyPCRpbXBsQ2xhc3NOYW1lPiBtX2ltcGw7XG4iKTsKLSAgICAgICAgfQorICAgICAgICAjIEV4
dHJhIHNwYWNlIGFmdGVyIEpTU1ZHUE9EVHlwZVdyYXBwZXI8PiB0byBtYWtlIFJlZlB0cjxXcmFw
cGVyPD4gPiBjb21waWxlLgorICAgICAgICBteSAkaW1wbFR5cGUgPSAkcG9kVHlwZSA/ICJKU1NW
R1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiAiIDogJGltcGxDbGFzc05hbWU7CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGltcGxUeXBlKiBpbXBsKCkgY29uc3QgeyByZXR1cm4g
bV9pbXBsLmdldCgpOyB9XG5cbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJp
dmF0ZTpcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFJlZlB0cjwkaW1w
bFR5cGU+IG1faW1wbDtcbiIpOwogICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKQEAgLTk4MSwyMSArOTc2LDEzIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
JHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUs
IFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3Ry
dWN0dXJlLCBpbXBsLCBzaGVsbClcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG15ICRjb250
ZXh0QXJnID0gIiI7Ci0gICAgICAgIGlmICgkbmVlZHNTVkdDb250ZXh0KSB7Ci0gICAgICAgICAg
ICBpZiAoJGhhc1BhcmVudCAmJiAhJHBhcmVudE5lZWRzU1ZHQ29udGV4dCkgewotICAgICAgICAg
ICAgICAgICRjb250ZXh0QXJnID0gIiwgU1ZHRWxlbWVudCoiOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAkY29udGV4dEFyZyA9ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQi
OwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIG15ICRjb250ZXh0QXJnID0gJG5l
ZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiI7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsJGNvbnRleHRBcmcp
XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGltcGwiIC4gKCRwYXJl
bnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAuICIpXG4iKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENs
YXNzTmFtZShzdHJ1Y3R1cmUpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBtX2ltcGwoaW1wbClcbiIpOyAgCisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0
dXJlIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKQEAgLTE3MjAs
MTEgKzE3MDcsMTIgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCRpbXBsQ2xhc3NOYW1lRm9yVmFsdWVDb252ZXJzaW9uIGVxICIiKSB7Ci0gICAgICAgICAg
ICBpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdy
YXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgY2FzdGVkVGhpc09iai0+
Y29udGV4dCgpKSIgaWYgJGluRnVuY3Rpb25DYWxsIGVxIDE7CisgICAgICAgICAgICAjIFNWR1pv
b21FdmVudCBoYXMgbm8gY29udGV4dCgpIHBvaW50ZXIsIGFuZCBpcyBhbHNvIG5vdCBhbiBTVkdF
bGVtZW50LgorICAgICAgICAgICAgIyBUaGlzIGlzIG5vdCBhIHByb2JsZW0sIGJlY2F1c2UgU1ZH
Wm9vbUV2ZW50IGhhcyBubyByZWFkL3dyaXRlIHByb3BlcnRpZXMuCisgICAgICAgICAgICByZXR1
cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNy
ZWF0ZSgkdmFsdWUpLmdldCgpLCAwKSIgaWYgJGltcGxDbGFzc05hbWUgZXEgIlNWR1pvb21FdmVu
dCI7CiAKLSAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZTogU1ZHWm9vbUV2ZW50IC0gaXQg
ZG9lc24ndCBoYXZlIGEgY29udGV4dCwgYnV0IGl0J3Mgbm8gcHJvYmxlbSwgYXMgdGhlcmUgYXJl
IG5vIHJlYWR3cml0ZSBwcm9wcwotICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0
KCksIDApIiBpZiAkaW1wbENsYXNzTmFtZSBlcSAiU1ZHWm9vbUV2ZW50IjsKKyAgICAgICAgICAg
IGlmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3Jh
cHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCBjYXN0ZWRUaGlzT2JqLT5j
b250ZXh0KCkpIiBpZiAkaW5GdW5jdGlvbkNhbGw7CiAgICAgICAgICAgICAgICAgcmV0dXJuICJ0
b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUo
JHZhbHVlKS5nZXQoKSwgJHRoaXNWYWx1ZS0+Y29udGV4dCgpKSI7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5
cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCksIGltcCkiOw==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33228</attachid>
            <date>2009-07-21 16:49:56 -0700</date>
            <delta_ts>2009-07-21 17:02:00 -0700</delta_ts>
            <desc>Fix WebKit build by moving into new file</desc>
            <filename>bug-27521-20090721164955.patch</filename>
            <type>text/plain</type>
            <size>16772</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGY5ZDk0Ni4uZDU5YTdiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0wNy0yMSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBtX2NvbnRleHQgb3V0IG9mIGdlbmVyYXRvciBpbnRvIGEgc3VwZXJj
bGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1
MjEKKworICAgICAgICBNb3N0bHkgdGhpcyBpcyByZW1vdmluZyBjb2RlIGZyb20gQ29kZUdlbmVy
YXRvckpTCisgICAgICAgIGFuZCBpbnN0ZWFkIHVzaW5nIGEgRE9NT2JqZWN0V2l0aFNWR0NvbnRl
eHQgc3VwZXJjbGFzcyBpbiBKU0RPTUJpbmRpbmcuaC4KKworICAgICAgICBET01PYmplY3RXaXRo
U1ZHQ29udGV4dC5oIGlzIGl0cyBvd24gZmlsZSBzbyB0aGF0IFdlYktpdCBkb2Vzbid0IG5lZWQg
dG8KKyAgICAgICAga25vdyBhYm91dCBTVkdFbGVtZW50LmggKFdlYktpdCBpbmNsdWRlcyBKU0RP
TUJpbmRpbmcuaCBmb3Igc29tZSByZWFzb24pLgorCisgICAgICAgIEkgYWxzbyByZW1vdmVkIGNv
bnRleHQgcG9pbnRlciBmcm9tIFNWR1pvb21FdmVudCBzaW5jZSBpdCB3YXMgbmV2ZXIgdXNlZC4K
KworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvRE9NT2JqZWN0
V2l0aFNWR0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RXaXRo
U1ZHQ29udGV4dDo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpET01PYmplY3RXaXRoU1ZH
Q29udGV4dDo6RE9NT2JqZWN0V2l0aFNWR0NvbnRleHQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG06CisKIDIwMDktMDctMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGEzNTNj
NGYuLmM2ZmM2NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zOTksNiArMzk5LDcgQEAKICAgICAgICAgICAgICdhY2Nlc3Np
YmlsaXR5L3dpbi9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcldpbi5oJywKICAgICAgICAgICAg
ICdhY2Nlc3NpYmlsaXR5L3d4L0FjY2Vzc2liaWxpdHlPYmplY3RXeC5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgnLAorICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0RPTU9iamVjdFdpdGhTVkdDb250ZXh0LmgnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20u
Y3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDgyNTJhNzAuLjM5ZWJiZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTEzNCw2ICsxMTM0LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWlu
ZXIuaCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAgICAg
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAorICAgIGJpbmRpbmdzL2pzL0RPTU9iamVj
dFdpdGhTVkdDb250ZXh0LmggXAogICAgIGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaCBcCiAgICAgYmluZGluZ3MvanMvSlND
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMWJmN2NhNS4uOWIxNmE3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yODE2OSw2ICsyODE2OSwxMCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiDQogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaCINCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9G
aWxlPg0KIAkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xHQ0Nv
bnRyb2xsZXIuY3BwIg0KIAkJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMjA0YjY2Yi4uMjE4ZTg2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4ODcsNiArMjg4Nyw3IEBACiAJCUE4RUE4MDBDMEEx
OTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBODAwNDBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVl
dC5oICovOyB9OwogCQlBOEVBODAwRDBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBODAwNTBB
MTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5jcHAgKi87IH07CiAJCUE4RUE4MDBFMEExOTUx
NkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4RUE4MDA2MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCAq
LzsgfTsKKwkJQThFREIwM0QxMDE2ODQ5NDAwRkU4MTEzIC8qIERPTU9iamVjdFdpdGhTVkdDb250
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVE
QjAzQzEwMTY4NDk0MDBGRTgxMTMgLyogRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaCAqLzsgfTsK
IAkJQThGNDZBODQwQ0IyMEE5RDAwM0E5NjcwIC8qIERPTVNWR0NsaXBQYXRoRWxlbWVudC5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODUwMzYxMkMwQUNFMDA3QjAwMUYzRDlFIC8qIERPTVNWR0NsaXBQYXRoRWxlbWVudC5oICov
OyB9OwogCQlBOEY0NkE4ODBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHR3JhZGllbnRFbGVtZW50
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUM5QTJFQzBBRDdFOTAzMDBGQkZGMUUgLyogRE9NU1ZHR3JhZGllbnRFbGVtZW50
LmggKi87IH07CiAJCUE4RjQ2QTg5MENCMjBBOUQwMDNBOTY3MCAvKiBET01TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTAzNjEyODBBQ0UwMDdCMDAxRjNEOUUgLyogRE9NU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oICovOyB9OwpAQCAtNzY4OCw2ICs3Njg5LDcgQEAKIAkJQThFQTgwMDQw
QTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0eWxlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThF
QTgwMDUwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOEVBODAwNjBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQThFREIwM0MxMDE2ODQ5NDAwRkU4MTEzIC8qIERPTU9iamVjdFdpdGhT
VkdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU9iamVjdFdp
dGhTVkdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RjRGQjkzMEMx
NjlFN0IwMDJBRkVENSAvKiBTVkdSZW5kZXJTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1JlbmRlclN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQThGNEZCOTUwQzE2OUU4NTAwMkFGRUQ1IC8qIFNWR1JlbmRlclN1cHBvcnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUmVuZGVyU3VwcG9ydC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4RjVDMEI2MEY5Mjg1QUMwMDk4RTA2QiAv
KiBSZW5kZXJTVkdNb2RlbE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJTVkdNb2RlbE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTM0NTcsNiArMTM0NTksNyBAQAogCQlCQzFBMzc5MzA5N0M2RkIxMDAxOUYzRDggLyoganMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUE4RURCMDNDMTAx
Njg0OTQwMEZFODExMyAvKiBET01PYmplY3RXaXRoU1ZHQ29udGV4dC5oICovLAogCQkJCTQxNUI3
QzYyMEZGNUE3NjcwMDY3NzBGNyAvKiBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmggKi8sCiAJ
CQkJNDE1QjdDNTQwRkY1OThFNjAwNjc3MEY3IC8qIEpTQWJzdHJhY3RXb3JrZXJDdXN0b20uY3Bw
ICovLAogCQkJCTQxNUI3QzU1MEZGNTk4RTYwMDY3NzBGNyAvKiBKU1NoYXJlZFdvcmtlckNvbnN0
cnVjdG9yLmNwcCAqLywKQEAgLTE3MDI1LDYgKzE3MDI4LDcgQEAKIAkJCQkzNzdDNENERjEwMTRF
OUY2MDBCOUFFNDIgLyogUGxhY2Vob2xkZXJEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVDRjdBRTIxMDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE4RURCMDNEMTAxNjg0OTQwMEZFODExMyAvKiBET01PYmplY3RXaXRoU1ZHQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RP
TU9iamVjdFdpdGhTVkdDb250ZXh0LmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTU9iamVjdFdp
dGhTVkdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI4MzA5
MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNW
R0NvbnRleHQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBF
WFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIERPTU9iamVjdFdpdGhTVkdDb250ZXh0X2gKKyNkZWZpbmUgRE9NT2JqZWN0
V2l0aFNWR0NvbnRleHRfaAorCisjaWYgRU5BQkxFKFNWRykKKworI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisgICAgLy8gRklYTUU6IFRoaXMgY2xhc3MgKGFuZCBmaWxlKSBzaG91bGQgYmUgcmVtb3ZlZCBv
bmNlIGFsbCBTVkcgYmluZGluZ3MKKyAgICAvLyBoYXZlIG1vdmVkIGNvbnRleHQoKSBvbnRvIHRo
ZSB2YXJpb3VzIGltcGwoKSBwb2ludGVycy4KKyAgICBjbGFzcyBET01PYmplY3RXaXRoU1ZHQ29u
dGV4dCA6IHB1YmxpYyBET01PYmplY3QgeworICAgIHB1YmxpYzoKKyAgICAgICAgU1ZHRWxlbWVu
dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQorCisgICAgcHJv
dGVjdGVkOgorICAgICAgICBET01PYmplY3RXaXRoU1ZHQ29udGV4dChQYXNzUmVmUHRyPEpTQzo6
U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAgICAgICAgICA6
IERPTU9iamVjdChzdHJ1Y3R1cmUpCisgICAgICAgICAgICAsIG1fY29udGV4dChjb250ZXh0KQor
ICAgICAgICB7CisgICAgICAgICAgICAvLyBObyBzcGFjZSB0byBzdG9yZSB0aGUgZ2xvYmFsT2Jq
ZWN0IHcvbyBoaXR0aW5nIHRoZSBDRUxMX1NJWkUgbGltaXQuCisgICAgICAgIH0KKworICAgIHBy
b3RlY3RlZDogLy8gRklYTUU6IE1hbnkgY3VzdG9tIGJpbmRpbmdzIHVzZSBtX2NvbnRleHQgZGly
ZWN0bHkuICBNYWtpbmcgdGhpcyBwcm90ZWN0ZWQgdG8gdGVtcG9yYXJpbGl5IHJlZHVjZSBjb2Rl
IGNodXJuLgorICAgICAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0OworICAgIH07CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTVkcpCisjZW5kaWYg
Ly8gRE9NT2JqZWN0V2l0aFNWR0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgK
aW5kZXggZTMxNzI5ZC4uMTAxM2QzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBA
IC00NCwxMCArNDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB0eXBlZGVmIGludCBF
eGNlcHRpb25Db2RlOwogCi0jaWYgRU5BQkxFKFNWRykKLSAgICBjbGFzcyBTVkdFbGVtZW50Owot
I2VuZGlmCi0KICAgICAvLyBCYXNlIGNsYXNzIGZvciBhbGwgb2JqZWN0cyBpbiB0aGlzIGJpbmRp
bmcgZXhjZXB0IFdpbmRvdy4KICAgICBjbGFzcyBET01PYmplY3QgOiBwdWJsaWMgSlNDOjpKU09i
amVjdCB7CiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAK
aW5kZXggZGNhYzhjYS4uM2ZhMTI1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20u
Y3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRXZl
bnQqIGV2ZW50KQogICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgV2hlZWxFdmVudCwgZXZlbnQpOwogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIGVs
c2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQotICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9TVkdfT0JKRUNUX1dSQVBQRVIoZXhlYywgU1ZHWm9vbUV2ZW50LCBldmVudCwgMCk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBTVkda
b29tRXZlbnQsIGV2ZW50KTsKICNlbmRpZgogICAgICAgICBlbHNlCiAgICAgICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBVSUV2ZW50LCBldmVudCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhNzI2YTRh
Li5kNGY0ZDYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTExOSw3ICsxMTksMTAgQEAgc3ViIEdldFBhcmVudENsYXNzTmFtZQogICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OwogCiAgICAgcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkxlZ2FjeVBhcmVudCJ9OwotICAgIHJldHVybiAiRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+
cGFyZW50c30gZXEgMDsKKyAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDApIHsKKyAg
ICAgICAgcmV0dXJuICJET01PYmplY3RXaXRoU1ZHQ29udGV4dCIgaWYgSXNTVkdUeXBlTmVlZGlu
Z0NvbnRleHRQYXJhbWV0ZXIoJGRhdGFOb2RlLT5uYW1lKTsKKyAgICAgICAgcmV0dXJuICJET01P
YmplY3QiOworICAgIH0KICAgICByZXR1cm4gIkpTIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1v
ZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOwogfQogCkBAIC0yMTksMTEgKzIyMiwxMyBAQCBz
dWIgSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIKIHsKICAgICBteSAkaW1wbENsYXNz
TmFtZSA9IHNoaWZ0OwogCi0gICAgaWYgKCRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvIGFuZCBub3Qg
JGltcGxDbGFzc05hbWUgPX4gL0VsZW1lbnQvKSB7Ci0gICAgICAgIHJldHVybiAxIHVubGVzcyAk
aW1wbENsYXNzTmFtZSA9fiAvU1ZHUGFpbnQvIG9yICRpbXBsQ2xhc3NOYW1lID1+IC9TVkdDb2xv
ci8gb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0RvY3VtZW50LzsKKyAgICByZXR1cm4gMCB1bmxl
c3MgJGltcGxDbGFzc05hbWUgPX4gL1NWRy87CisgICAgcmV0dXJuIDAgaWYgJGltcGxDbGFzc05h
bWUgPX4gL0VsZW1lbnQvOworICAgIG15IEBub0NvbnRleHROZWVkZWQgPSAoIlNWR1BhaW50Iiwg
IlNWR0NvbG9yIiwgIlNWR0RvY3VtZW50IiwgIlNWR1pvb21FdmVudCIpOworICAgIGZvcmVhY2gg
KEBub0NvbnRleHROZWVkZWQpIHsKKyAgICAgICAgcmV0dXJuIDAgaWYgJGltcGxDbGFzc05hbWUg
ZXEgJF87CiAgICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7CiB9CiAKIHN1YiBI
YXNoVmFsdWVGb3JDbGFzc0FuZE5hbWUKQEAgLTM1OCw2ICszNjMsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBh
cmVudDsKICAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRh
Tm9kZSk7CiAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICBteSAkbmVlZHNTVkdDb250ZXh0ID0gSXNTVkdUeXBl
TmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGludGVyZmFjZU5hbWUpOwogCiAgICAgIyAtIEFkZCBk
ZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQogICAgIEBoZWFkZXJDb250ZW50SGVhZGVyID0gc3BsaXQo
IlxyIiwgJGhlYWRlclRlbXBsYXRlKTsKQEAgLTM3NSw3ICszODEsOCBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICBpZiAoJGhhc1BhcmVudCkgewogICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRw
YXJlbnRDbGFzc05hbWUuaCJ9ID0gMTsKICAgICB9IGVsc2UgewotICAgICAgICAkaGVhZGVySW5j
bHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOworICAgICAgICAkaGVhZGVySW5jbHVkZXN7IkRP
TU9iamVjdFdpdGhTVkdDb250ZXh0LmgifSA9ICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgICRo
ZWFkZXJJbmNsdWRlc3siSlNET01CaW5kaW5nLmgifSA9ICEkbmVlZHNTVkdDb250ZXh0OwogICAg
ICAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+In0gPSAxOwog
ICAgICAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL09iamVjdFByb3RvdHlwZS5oPiJ9ID0g
MTsKICAgICB9CkBAIC01NjksMjMgKzU3NiwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICB9
CiAKICAgICBpZiAoISRoYXNQYXJlbnQpIHsKLSAgICAgICAgaWYgKCRwb2RUeXBlKSB7Ci0gICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBv
ZFR5cGU+KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKLSAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJwcml2YXRlOlxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8
JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJu
IG1faW1wbC5nZXQoKTsgfVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH1cblxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIp
OwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8U1ZHRWxlbWVu
dD4gbV9jb250ZXh0O1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKLSAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJwcml2YXRlOlxuIik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZT4gbV9pbXBsO1xuIik7Ci0gICAg
ICAgIH0KKyAgICAgICAgIyBFeHRyYSBzcGFjZSBhZnRlciBKU1NWR1BPRFR5cGVXcmFwcGVyPD4g
dG8gbWFrZSBSZWZQdHI8V3JhcHBlcjw+ID4gY29tcGlsZS4KKyAgICAgICAgbXkgJGltcGxUeXBl
ID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gIiA6ICRpbXBsQ2xh
c3NOYW1lOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRpbXBsVHlwZSogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBSZWZQdHI8JGltcGxUeXBlPiBtX2ltcGw7XG4iKTsKICAgICB9IGVsc2lmICgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwo
KSBjb25zdFxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CkBA
IC05ODEsMjEgKzk3NiwxMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCwgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAk
cGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCwgc2hlbGwpXG4iKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBteSAkY29udGV4dEFyZyA9ICIiOwotICAgICAgICBpZiAoJG5lZWRzU1ZHQ29u
dGV4dCkgewotICAgICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgISRwYXJlbnROZWVkc1NWR0Nv
bnRleHQpIHsKLSAgICAgICAgICAgICAgICAkY29udGV4dEFyZyA9ICIsIFNWR0VsZW1lbnQqIjsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGNvbnRleHRBcmcgPSAiLCBT
VkdFbGVtZW50KiBjb250ZXh0IjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBt
eSAkY29udGV4dEFyZyA9ICRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0
IiA6ICIiOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNz
TmFtZShQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlw
ZT4gaW1wbCRjb250ZXh0QXJnKVxuIik7CiAgICAgICAgIGlmICgkaGFzUGFyZW50KSB7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0
dXJlLCBpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikg
LiAiKVxuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlKVxuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1fY29udGV4dChjb250ZXh0KVxuIikgaWYgJG5lZWRz
U1ZHQ29udGV4dDsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwgbV9pbXBs
KGltcGwpXG4iKTsgIAorICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFy
ZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQi
IDogIiIpIC4gIilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBt
X2ltcGwoaW1wbClcbiIpOwogICAgICAgICB9CiAgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CkBAIC0xNzIwLDExICsxNzA3LDEyIEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAg
ICAgICAgfQogCiAgICAgICAgIGlmICgkaW1wbENsYXNzTmFtZUZvclZhbHVlQ29udmVyc2lvbiBl
cSAiIikgewotICAgICAgICAgICAgaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVy
KCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBK
U1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0
KCksIGNhc3RlZFRoaXNPYmotPmNvbnRleHQoKSkiIGlmICRpbkZ1bmN0aW9uQ2FsbCBlcSAxOwor
ICAgICAgICAgICAgIyBTVkdab29tRXZlbnQgaGFzIG5vIGNvbnRleHQoKSBwb2ludGVyLCBhbmQg
aXMgYWxzbyBub3QgYW4gU1ZHRWxlbWVudC4KKyAgICAgICAgICAgICMgVGhpcyBpcyBub3QgYSBw
cm9ibGVtLCBiZWNhdXNlIFNWR1pvb21FdmVudCBoYXMgbm8gcmVhZC93cml0ZSBwcm9wZXJ0aWVz
LgorICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpTU1ZHU3RhdGljUE9EVHlwZVdyYXBw
ZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQoKSwgMCkiIGlmICRpbXBsQ2xhc3NO
YW1lIGVxICJTVkdab29tRXZlbnQiOwogCi0gICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2U6
IFNWR1pvb21FdmVudCAtIGl0IGRvZXNuJ3QgaGF2ZSBhIGNvbnRleHQsIGJ1dCBpdCdzIG5vIHBy
b2JsZW0sIGFzIHRoZXJlIGFyZSBubyByZWFkd3JpdGUgcHJvcHMKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gInRvSlMoZXhlYywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46
OmNyZWF0ZSgkdmFsdWUpLmdldCgpLCAwKSIgaWYgJGltcGxDbGFzc05hbWUgZXEgIlNWR1pvb21F
dmVudCI7CisgICAgICAgICAgICBpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIo
JGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIEpT
U1ZHU3RhdGljUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZVR5cGU+OjpjcmVhdGUoJHZhbHVlKS5nZXQo
KSwgY2FzdGVkVGhpc09iai0+Y29udGV4dCgpKSIgaWYgJGluRnVuY3Rpb25DYWxsOwogICAgICAg
ICAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBKU1NWR1N0YXRpY1BPRFR5cGVXcmFwcGVyPCRu
YXRpdmVUeXBlPjo6Y3JlYXRlKCR2YWx1ZSkuZ2V0KCksICR0aGlzVmFsdWUtPmNvbnRleHQoKSki
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gInRvSlMoZXhl
YywgSlNTVkdTdGF0aWNQT0RUeXBlV3JhcHBlcjwkbmF0aXZlVHlwZT46OmNyZWF0ZSgkdmFsdWUp
LmdldCgpLCBpbXApIjs=
</data>
<flag name="review"
          id="17543"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>