<?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>93747</bug_id>
          
          <creation_ts>2012-08-10 15:25:43 -0700</creation_ts>
          <short_desc>Reduce the size of empty NinePieceImage objects.</short_desc>
          <delta_ts>2012-08-13 15:45: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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>692913</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-10 15:25:43 -0700</bug_when>
    <thetext>Patch incoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692916</commentid>
    <comment_count>1</comment_count>
      <attachid>157819</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-10 15:27:36 -0700</bug_when>
    <thetext>Created attachment 157819
A patch apart</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692918</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-10 15:30:24 -0700</bug_when>
    <thetext>Attachment 157819 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/rendering/style/NinePieceImage.h:61:  The parameter name &quot;o&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/style/NinePieceImage.h:95:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692966</commentid>
    <comment_count>3</comment_count>
      <attachid>157819</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-08-10 16:45:01 -0700</bug_when>
    <thetext>Comment on attachment 157819
A patch apart

View in context: https://bugs.webkit.org/attachment.cgi?id=157819&amp;action=review

&gt; Source/WebCore/rendering/style/NinePieceImage.h:37
&gt; -class NinePieceImage {
&gt; +class NinePieceImageData {

I think it would be better to use the normal RenderStyle DataRef&lt;&gt;/SET_VAR pattern here. The advantage is that we can share the structure in cases where it already exists and some other surround property is modified. It is also more consistent.

We should also have separate version of SET_VAR for these two-level data structure cases as currently we end up creating unnecessary structures when a variable is set to the current value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693992</commentid>
    <comment_count>4</comment_count>
      <attachid>157819</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-08-13 13:06:56 -0700</bug_when>
    <thetext>Comment on attachment 157819
A patch apart

Actually DataRefs in substructures don&apos;t make sense for non-inherited data as there is never anything to share (except the default value). Forgot what I mumbled above, the patch is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693994</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-08-13 13:09:11 -0700</bug_when>
    <thetext>It might be good idea to see if NinePieceImages are so rare compared to other properties in SurroundData it should go to rare data instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694065</commentid>
    <comment_count>6</comment_count>
      <attachid>158101</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-08-13 14:13:27 -0700</bug_when>
    <thetext>Created attachment 158101
Patch for moon landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694177</commentid>
    <comment_count>7</comment_count>
      <attachid>158101</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 15:45:05 -0700</bug_when>
    <thetext>Comment on attachment 158101
Patch for moon landing

Clearing flags on attachment: 158101

Committed r125465: &lt;http://trac.webkit.org/changeset/125465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694178</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 15:45:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157819</attachid>
            <date>2012-08-10 15:27:36 -0700</date>
            <delta_ts>2012-08-13 14:13:27 -0700</delta_ts>
            <desc>A patch apart</desc>
            <filename>bug-93747.diff</filename>
            <type>text/plain</type>
            <size>11190</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxOTM1N2M1Li4wMTVhYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjAg
QEAKIDIwMTItMDgtMTAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCisgICAg
ICAgIFJlZHVjZSB0aGUgc2l6ZSBvZiBlbXB0eSBOaW5lUGllY2VJbWFnZSBvYmplY3RzLgorICAg
ICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85Mzc0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBtZW1iZXJzIG9mIE5pbmVQaWVjZUlt
YWdlIGludG8gYSBOaW5lUGllY2VJbWFnZURhdGEgY2xhc3MsIGxlYXZpbmcgTmluZVBpZWNlSW1h
Z2UKKyAgICAgICAgd2l0aCBhIHNpbmdsZSBPd25QdHI8TmluZVBpZWNlSW1hZ2VEYXRhPiBtZW1i
ZXIuIFRoZSBjb25zdGFudCBOaW5lUGllY2VJbWFnZTo6ZGVmYXVsdERhdGEoKQorICAgICAgICBw
cm92aWRlcyBkZWZhdWx0IHZhbHVlcyBmb3Igb2JqZWN0cyB3aXRoIG51bGwgbV9kYXRhLgorCisg
ICAgICAgIFJlbmRlclN0eWxlJ3MgIlN0eWxlU3Vycm91bmREYXRhIiBtZW1iZXIgaGFzIGEgQm9y
ZGVyRGF0YSwgd2hpY2ggaW4gdHVybiBob2xkcyBhIE5pbmVQaWVjZUltYWdlLgorICAgICAgICBU
aGlzIG1lYW5zIHRoYXQgYW55dGhpbmcgd2l0aCBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20sIG1hcmdp
biwgcGFkZGluZyBvciBib3JkZXIgc3R5bGUgYnV0ICpubyoKKyAgICAgICAgYm9yZGVyLWltYWdl
IHdpbGwgc2F2ZSAxMDQgYnl0ZXMgKGFzc3VtaW5nIHRoZWlyIFJlbmRlclN0eWxlIGlzIHVuc2hh
cmVkLCB3aGljaCBpcyBmYWlybHkgY29tbW9uLikKKworICAgICAgICBUaGlzIHJlZHVjZXMgdGhl
IHNpemUgb2YgU3R5bGVTdXJyb3VuZERhdGEgYnkgMTA0IGJ5dGVzLCBlZmZlY3RpdmVseSByZWR1
Y2luZyBtZW1vcnkgY29uc3VtcHRpb24KKyAgICAgICAgYnkgMS43Mk1CIHdoZW4gdmlld2luZyB0
aGUgZnVsbCBIVE1MNSBzcGVjIGF0IDxodHRwOi8vd2hhdHdnLm9yZy9jPgorCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5p
bmVQaWVjZUltYWdlRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6ZGVmYXVsdERhdGEpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZURhdGE6Ok5pbmVQaWVjZUltYWdlRGF0YSk6CisgICAgICAgIChOaW5lUGllY2VJbWFn
ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2VEYXRhOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmluZVBpZWNlSW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6Ok5pbmVQaWVjZUltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Tmlu
ZVBpZWNlSW1hZ2U6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1h
Z2U6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6Omhhc0lt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjppbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
TmluZVBpZWNlSW1hZ2U6OmltYWdlU2xpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVj
ZUltYWdlOjpzZXRJbWFnZVNsaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFn
ZTo6ZmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0RmlsbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Ym9yZGVyU2xpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpzZXRCb3JkZXJTbGljZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TmluZVBpZWNlSW1hZ2U6Om91dHNldCk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6c2V0T3V0c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpo
b3Jpem9udGFsUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0SG9y
aXpvbnRhbFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OnZlcnRpY2Fs
UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0VmVydGljYWxSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb3B5SW1hZ2VTbGljZXNGcm9t
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb3B5Qm9yZGVyU2xpY2VzRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29weU91dHNldEZyb20pOgor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvcHlSZXBlYXRGcm9tKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpzZXRNYXNrRGVmYXVsdHMpOgorICAgICAgICAo
V2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmVuc3VyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
TmluZVBpZWNlSW1hZ2U6OmRhdGEpOgorCisyMDEyLTA4LTEwICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KKwogICAgICAgICBDU1M6IFNocmluayBSdWxlRGF0YSBieSBzdG9yaW5n
IHNlbGVjdG9yIGFzIGluZGV4IHJhdGhlciB0aGFuIHBvaW50ZXIuCiAgICAgICAgIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzkzNzEyPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL05pbmVQaWVjZUltYWdlLmNwcAppbmRleCA5OGZmYTY1Li4xOGExMDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAKQEAgLTI2
LDEwICsyNiwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgTmluZVBpZWNlSW1h
Z2U6Om9wZXJhdG9yPT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG8pIGNvbnN0Citib29sIE5pbmVQ
aWVjZUltYWdlRGF0YTo6b3BlcmF0b3I9PShjb25zdCBOaW5lUGllY2VJbWFnZURhdGEmIG8pIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFN0eWxlSW1hZ2U6OmltYWdlc0VxdWl2YWxlbnQobV9pbWFnZS5n
ZXQoKSwgby5tX2ltYWdlLmdldCgpKSAmJiBtX2ltYWdlU2xpY2VzID09IG8ubV9pbWFnZVNsaWNl
cyAmJiBtX2ZpbGwgPT0gby5tX2ZpbGwKICAgICAgICAgICAgJiYgbV9ib3JkZXJTbGljZXMgPT0g
by5tX2JvcmRlclNsaWNlcyAmJiBtX291dHNldCA9PSBvLm1fb3V0c2V0ICYmIG1faG9yaXpvbnRh
bFJ1bGUgPT0gby5tX2hvcml6b250YWxSdWxlICYmIG1fdmVydGljYWxSdWxlID09IG8ubV92ZXJ0
aWNhbFJ1bGU7CiB9CiAKK2NvbnN0IE5pbmVQaWVjZUltYWdlRGF0YSYgTmluZVBpZWNlSW1hZ2U6
OmRlZmF1bHREYXRhKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKE5pbmVQaWVjZUltYWdl
RGF0YSwgZGF0YSwgKCkpOworICAgIHJldHVybiBkYXRhOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oCmluZGV4IDYzOTBmM2QuLjgz
NTE0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGll
Y2VJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJ
bWFnZS5oCkBAIC0zNCw5ICszNCw5IEBAIGVudW0gRU5pbmVQaWVjZUltYWdlUnVsZSB7CiAgICAg
U3RyZXRjaEltYWdlUnVsZSwgUm91bmRJbWFnZVJ1bGUsIFNwYWNlSW1hZ2VSdWxlLCBSZXBlYXRJ
bWFnZVJ1bGUKIH07CiAKLWNsYXNzIE5pbmVQaWVjZUltYWdlIHsKK2NsYXNzIE5pbmVQaWVjZUlt
YWdlRGF0YSB7CiBwdWJsaWM6Ci0gICAgTmluZVBpZWNlSW1hZ2UoKQorICAgIE5pbmVQaWVjZUlt
YWdlRGF0YSgpCiAgICAgICAgIDogbV9pbWFnZSgwKQogICAgICAgICAsIG1faW1hZ2VTbGljZXMo
TGVuZ3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5ndGgoMTAwLCBQ
ZXJjZW50KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCkpCiAgICAgICAgICwgbV9ib3JkZXJTbGljZXMo
TGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0
aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAg
IHsKICAgICB9CiAKLSAgICBOaW5lUGllY2VJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGlt
YWdlLCBMZW5ndGhCb3ggaW1hZ2VTbGljZXMsIGJvb2wgZmlsbCwgTGVuZ3RoQm94IGJvcmRlclNs
aWNlcywgTGVuZ3RoQm94IG91dHNldCwgRU5pbmVQaWVjZUltYWdlUnVsZSBoLCBFTmluZVBpZWNl
SW1hZ2VSdWxlIHYpIAorICAgIE5pbmVQaWVjZUltYWdlRGF0YShQYXNzUmVmUHRyPFN0eWxlSW1h
Z2U+IGltYWdlLCBMZW5ndGhCb3ggaW1hZ2VTbGljZXMsIGJvb2wgZmlsbCwgTGVuZ3RoQm94IGJv
cmRlclNsaWNlcywgTGVuZ3RoQm94IG91dHNldCwgRU5pbmVQaWVjZUltYWdlUnVsZSBoLCBFTmlu
ZVBpZWNlSW1hZ2VSdWxlIHYpCiAgICAgICA6IG1faW1hZ2UoaW1hZ2UpCiAgICAgICAsIG1faW1h
Z2VTbGljZXMoaW1hZ2VTbGljZXMpCiAgICAgICAsIG1fYm9yZGVyU2xpY2VzKGJvcmRlclNsaWNl
cykKQEAgLTU4LDI0ICs1OCw1NSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBOaW5lUGllY2VJbWFnZSYgbykgY29uc3Q7Ci0gICAgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IE5pbmVQaWVjZUltYWdlJiBvKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09
IG8pOyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE5pbmVQaWVjZUltYWdlRGF0YSYgbykg
Y29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE5pbmVQaWVjZUltYWdlRGF0YSYgbykg
Y29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvKTsgfQorCisgICAgUmVmUHRyPFN0eWxlSW1hZ2U+
IG1faW1hZ2U7CisgICAgTGVuZ3RoQm94IG1faW1hZ2VTbGljZXM7CisgICAgTGVuZ3RoQm94IG1f
Ym9yZGVyU2xpY2VzOworICAgIExlbmd0aEJveCBtX291dHNldDsKKyAgICBib29sIG1fZmlsbCA6
IDE7CisgICAgdW5zaWduZWQgbV9ob3Jpem9udGFsUnVsZSA6IDI7IC8vIEVOaW5lUGllY2VJbWFn
ZVJ1bGUKKyAgICB1bnNpZ25lZCBtX3ZlcnRpY2FsUnVsZSA6IDI7IC8vIEVOaW5lUGllY2VJbWFn
ZVJ1bGUKK307CisKK2NsYXNzIE5pbmVQaWVjZUltYWdlIHsKK3B1YmxpYzoKKyAgICBOaW5lUGll
Y2VJbWFnZSgpIHsgfQorCisgICAgTmluZVBpZWNlSW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdl
PiBpbWFnZSwgTGVuZ3RoQm94IGltYWdlU2xpY2VzLCBib29sIGZpbGwsIExlbmd0aEJveCBib3Jk
ZXJTbGljZXMsIExlbmd0aEJveCBvdXRzZXQsIEVOaW5lUGllY2VJbWFnZVJ1bGUgaCwgRU5pbmVQ
aWVjZUltYWdlUnVsZSB2KQorICAgICAgICA6IG1fZGF0YShhZG9wdFB0cihuZXcgTmluZVBpZWNl
SW1hZ2VEYXRhKGltYWdlLCBpbWFnZVNsaWNlcywgZmlsbCwgYm9yZGVyU2xpY2VzLCBvdXRzZXQs
IGgsIHYpKSkKKyAgICB7IH0KIAotICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdCB7IHJldHVybiBt
X2ltYWdlICE9IDA7IH0KLSAgICBTdHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW1hZ2UuZ2V0KCk7IH0KLSAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
aW1hZ2UpIHsgbV9pbWFnZSA9IGltYWdlOyB9CisgICAgTmluZVBpZWNlSW1hZ2UoY29uc3QgTmlu
ZVBpZWNlSW1hZ2UmIG90aGVyKQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBvdGhlcjsKKyAgICB9
CisKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIpCisgICAg
eworICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZURhdGEmIG90aGVyRGF0YSA9IG90aGVyLmRh
dGEoKTsKKyAgICAgICAgbV9kYXRhID0gYWRvcHRQdHIobmV3IE5pbmVQaWVjZUltYWdlRGF0YShv
dGhlckRhdGEubV9pbWFnZSwgb3RoZXJEYXRhLm1faW1hZ2VTbGljZXMsIG90aGVyRGF0YS5tX2Zp
bGwsIG90aGVyRGF0YS5tX2JvcmRlclNsaWNlcywgb3RoZXJEYXRhLm1fb3V0c2V0LCBzdGF0aWNf
Y2FzdDxFTmluZVBpZWNlSW1hZ2VSdWxlPihvdGhlckRhdGEubV9ob3Jpem9udGFsUnVsZSksIHN0
YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KG90aGVyRGF0YS5tX3ZlcnRpY2FsUnVsZSkp
KTsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG90
aGVyKSBjb25zdCB7IHJldHVybiBkYXRhKCkgPT0gb3RoZXIuZGF0YSgpOyB9CisgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IE5pbmVQaWVjZUltYWdlJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgq
dGhpcyA9PSBvdGhlcik7IH0KKworICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdCB7IHJldHVybiBt
X2RhdGEgJiYgbV9kYXRhLT5tX2ltYWdlICE9IDA7IH0KKyAgICBTdHlsZUltYWdlKiBpbWFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA/IG1fZGF0YS0+bV9pbWFnZS5nZXQoKSA6IDA7IH0KKyAg
ICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpIHsgZW5zdXJlRGF0
YSgpOyBtX2RhdGEtPm1faW1hZ2UgPSBpbWFnZTsgfQogICAgIAotICAgIGNvbnN0IExlbmd0aEJv
eCYgaW1hZ2VTbGljZXMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2xpY2VzOyB9Ci0gICAgdm9p
ZCBzZXRJbWFnZVNsaWNlcyhjb25zdCBMZW5ndGhCb3gmIHNsaWNlcykgeyBtX2ltYWdlU2xpY2Vz
ID0gc2xpY2VzOyB9CisgICAgY29uc3QgTGVuZ3RoQm94JiBpbWFnZVNsaWNlcygpIGNvbnN0IHsg
cmV0dXJuIGRhdGEoKS5tX2ltYWdlU2xpY2VzOyB9CisgICAgdm9pZCBzZXRJbWFnZVNsaWNlcyhj
b25zdCBMZW5ndGhCb3gmIHNsaWNlcykgeyBlbnN1cmVEYXRhKCk7IG1fZGF0YS0+bV9pbWFnZVNs
aWNlcyA9IHNsaWNlczsgfQogCi0gICAgYm9vbCBmaWxsKCkgY29uc3QgeyByZXR1cm4gbV9maWxs
OyB9Ci0gICAgdm9pZCBzZXRGaWxsKGJvb2wgZmlsbCkgeyBtX2ZpbGwgPSBmaWxsOyB9CisgICAg
Ym9vbCBmaWxsKCkgY29uc3QgeyByZXR1cm4gZGF0YSgpLm1fZmlsbDsgfQorICAgIHZvaWQgc2V0
RmlsbChib29sIGZpbGwpIHsgZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1fZmlsbCA9IGZpbGw7IH0K
IAotICAgIGNvbnN0IExlbmd0aEJveCYgYm9yZGVyU2xpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9i
b3JkZXJTbGljZXM7IH0KLSAgICB2b2lkIHNldEJvcmRlclNsaWNlcyhjb25zdCBMZW5ndGhCb3gm
IHNsaWNlcykgeyBtX2JvcmRlclNsaWNlcyA9IHNsaWNlczsgfQorICAgIGNvbnN0IExlbmd0aEJv
eCYgYm9yZGVyU2xpY2VzKCkgY29uc3QgeyByZXR1cm4gZGF0YSgpLm1fYm9yZGVyU2xpY2VzOyB9
CisgICAgdm9pZCBzZXRCb3JkZXJTbGljZXMoY29uc3QgTGVuZ3RoQm94JiBzbGljZXMpIHsgZW5z
dXJlRGF0YSgpOyBtX2RhdGEtPm1fYm9yZGVyU2xpY2VzID0gc2xpY2VzOyB9CiAKLSAgICBjb25z
dCBMZW5ndGhCb3gmIG91dHNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb3V0c2V0OyB9Ci0gICAgdm9p
ZCBzZXRPdXRzZXQoY29uc3QgTGVuZ3RoQm94JiBvdXRzZXQpIHsgbV9vdXRzZXQgPSBvdXRzZXQ7
IH0KKyAgICBjb25zdCBMZW5ndGhCb3gmIG91dHNldCgpIGNvbnN0IHsgcmV0dXJuIGRhdGEoKS5t
X291dHNldDsgfQorICAgIHZvaWQgc2V0T3V0c2V0KGNvbnN0IExlbmd0aEJveCYgb3V0c2V0KSB7
IGVuc3VyZURhdGEoKTsgbV9kYXRhLT5tX291dHNldCA9IG91dHNldDsgfQogICAgIAogICAgIHN0
YXRpYyBMYXlvdXRVbml0IGNvbXB1dGVPdXRzZXQoTGVuZ3RoIG91dHNldFNpZGUsIExheW91dFVu
aXQgYm9yZGVyU2lkZSkKICAgICB7CkBAIC04NCw0OSArMTE1LDYzIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG91dHNldFNpZGUudmFsdWUoKTsKICAgICB9CiAKLSAgICBFTmluZVBpZWNlSW1h
Z2VSdWxlIGhvcml6b250YWxSdWxlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RU5pbmVQ
aWVjZUltYWdlUnVsZT4obV9ob3Jpem9udGFsUnVsZSk7IH0KLSAgICB2b2lkIHNldEhvcml6b250
YWxSdWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUgcnVsZSkgeyBtX2hvcml6b250YWxSdWxlID0gcnVs
ZTsgfQorICAgIEVOaW5lUGllY2VJbWFnZVJ1bGUgaG9yaXpvbnRhbFJ1bGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxFTmluZVBpZWNlSW1hZ2VSdWxlPihkYXRhKCkubV9ob3Jpem9udGFs
UnVsZSk7IH0KKyAgICB2b2lkIHNldEhvcml6b250YWxSdWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUg
cnVsZSkgeyBlbnN1cmVEYXRhKCk7IG1fZGF0YS0+bV9ob3Jpem9udGFsUnVsZSA9IHJ1bGU7IH0K
ICAgICAKLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZlcnRpY2FsUnVsZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KG1fdmVydGljYWxSdWxlKTsgfQot
ICAgIHZvaWQgc2V0VmVydGljYWxSdWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUgcnVsZSkgeyBtX3Zl
cnRpY2FsUnVsZSA9IHJ1bGU7IH0KKyAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZlcnRpY2FsUnVs
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KGRhdGEo
KS5tX3ZlcnRpY2FsUnVsZSk7IH0KKyAgICB2b2lkIHNldFZlcnRpY2FsUnVsZShFTmluZVBpZWNl
SW1hZ2VSdWxlIHJ1bGUpIHsgZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1fdmVydGljYWxSdWxlID0g
cnVsZTsgfQogCiAgICAgdm9pZCBjb3B5SW1hZ2VTbGljZXNGcm9tKGNvbnN0IE5pbmVQaWVjZUlt
YWdlJiBvdGhlcikKICAgICB7Ci0gICAgICAgIG1faW1hZ2VTbGljZXMgPSBvdGhlci5tX2ltYWdl
U2xpY2VzOwotICAgICAgICBtX2ZpbGwgPSBvdGhlci5tX2ZpbGw7CisgICAgICAgIGVuc3VyZURh
dGEoKTsKKyAgICAgICAgbV9kYXRhLT5tX2ltYWdlU2xpY2VzID0gb3RoZXIuZGF0YSgpLm1faW1h
Z2VTbGljZXM7CisgICAgICAgIG1fZGF0YS0+bV9maWxsID0gb3RoZXIuZGF0YSgpLm1fZmlsbDsK
ICAgICB9CiAKICAgICB2b2lkIGNvcHlCb3JkZXJTbGljZXNGcm9tKGNvbnN0IE5pbmVQaWVjZUlt
YWdlJiBvdGhlcikKICAgICB7Ci0gICAgICAgIG1fYm9yZGVyU2xpY2VzID0gb3RoZXIubV9ib3Jk
ZXJTbGljZXM7CisgICAgICAgIGVuc3VyZURhdGEoKTsKKyAgICAgICAgbV9kYXRhLT5tX2JvcmRl
clNsaWNlcyA9IG90aGVyLmRhdGEoKS5tX2JvcmRlclNsaWNlczsKICAgICB9CiAgICAgCiAgICAg
dm9pZCBjb3B5T3V0c2V0RnJvbShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIpCiAgICAgewot
ICAgICAgICBtX291dHNldCA9IG90aGVyLm1fb3V0c2V0OworICAgICAgICBlbnN1cmVEYXRhKCk7
CisgICAgICAgIG1fZGF0YS0+bV9vdXRzZXQgPSBvdGhlci5kYXRhKCkubV9vdXRzZXQ7CiAgICAg
fQogCiAgICAgdm9pZCBjb3B5UmVwZWF0RnJvbShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIp
CiAgICAgewotICAgICAgICBtX2hvcml6b250YWxSdWxlID0gb3RoZXIubV9ob3Jpem9udGFsUnVs
ZTsKLSAgICAgICAgbV92ZXJ0aWNhbFJ1bGUgPSBvdGhlci5tX3ZlcnRpY2FsUnVsZTsKKyAgICAg
ICAgZW5zdXJlRGF0YSgpOworICAgICAgICBtX2RhdGEtPm1faG9yaXpvbnRhbFJ1bGUgPSBvdGhl
ci5kYXRhKCkubV9ob3Jpem9udGFsUnVsZTsKKyAgICAgICAgbV9kYXRhLT5tX3ZlcnRpY2FsUnVs
ZSA9IG90aGVyLmRhdGEoKS5tX3ZlcnRpY2FsUnVsZTsKICAgICB9CiAKICAgICB2b2lkIHNldE1h
c2tEZWZhdWx0cygpCiAgICAgewotICAgICAgICBtX2ltYWdlU2xpY2VzID0gTGVuZ3RoQm94KDAp
OwotICAgICAgICBtX2ZpbGwgPSB0cnVlOwotICAgICAgICBtX2JvcmRlclNsaWNlcyA9IExlbmd0
aEJveCgpOworICAgICAgICBlbnN1cmVEYXRhKCk7CisgICAgICAgIG1fZGF0YS0+bV9pbWFnZVNs
aWNlcyA9IExlbmd0aEJveCgwKTsKKyAgICAgICAgbV9kYXRhLT5tX2ZpbGwgPSB0cnVlOworICAg
ICAgICBtX2RhdGEtPm1fYm9yZGVyU2xpY2VzID0gTGVuZ3RoQm94KCk7CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwotICAgIExlbmd0aEJveCBtX2lt
YWdlU2xpY2VzOwotICAgIExlbmd0aEJveCBtX2JvcmRlclNsaWNlczsKLSAgICBMZW5ndGhCb3gg
bV9vdXRzZXQ7Ci0gICAgYm9vbCBtX2ZpbGwgOiAxOwotICAgIHVuc2lnbmVkIG1faG9yaXpvbnRh
bFJ1bGUgOiAyOyAvLyBFTmluZVBpZWNlSW1hZ2VSdWxlCi0gICAgdW5zaWduZWQgbV92ZXJ0aWNh
bFJ1bGUgOiAyOyAvLyBFTmluZVBpZWNlSW1hZ2VSdWxlCisgICAgc3RhdGljIGNvbnN0IE5pbmVQ
aWVjZUltYWdlRGF0YSYgZGVmYXVsdERhdGEoKTsKKworICAgIHZvaWQgZW5zdXJlRGF0YSgpCisg
ICAgeworICAgICAgICBpZiAoIW1fZGF0YSkKKyAgICAgICAgICAgIG1fZGF0YSA9IGFkb3B0UHRy
KG5ldyBOaW5lUGllY2VJbWFnZURhdGEpOworICAgIH0KKworICAgIGNvbnN0IE5pbmVQaWVjZUlt
YWdlRGF0YSYgZGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9kYXRhKQorICAgICAg
ICAgICAgcmV0dXJuICptX2RhdGE7CisgICAgICAgIHJldHVybiBkZWZhdWx0RGF0YSgpOworICAg
IH0KKworICAgIE93blB0cjxOaW5lUGllY2VJbWFnZURhdGE+IG1fZGF0YTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="167796"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158101</attachid>
            <date>2012-08-13 14:13:27 -0700</date>
            <delta_ts>2012-08-13 15:45:04 -0700</delta_ts>
            <desc>Patch for moon landing</desc>
            <filename>land-93747.diff</filename>
            <type>text/plain</type>
            <size>11142</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZGM4MjM1Li40NjYyYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTgg
QEAKKzIwMTItMDgtMTMgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlZHVjZSB0aGUgc2l6ZSBvZiBlbXB0eSBOaW5lUGllY2VJbWFnZSBvYmplY3RzLgorICAg
ICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85Mzc0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBNb3ZlIHRoZSBtZW1iZXJzIG9mIE5pbmVQaWVjZUlt
YWdlIGludG8gYSBOaW5lUGllY2VJbWFnZURhdGEgY2xhc3MsIGxlYXZpbmcgTmluZVBpZWNlSW1h
Z2UKKyAgICAgICAgd2l0aCBhIHNpbmdsZSBPd25QdHI8TmluZVBpZWNlSW1hZ2VEYXRhPiBtZW1i
ZXIuIFRoZSBjb25zdGFudCBOaW5lUGllY2VJbWFnZTo6ZGVmYXVsdERhdGEoKQorICAgICAgICBw
cm92aWRlcyBkZWZhdWx0IHZhbHVlcyBmb3Igb2JqZWN0cyB3aXRoIG51bGwgbV9kYXRhLgorCisg
ICAgICAgIFJlbmRlclN0eWxlJ3MgIlN0eWxlU3Vycm91bmREYXRhIiBtZW1iZXIgaGFzIGEgQm9y
ZGVyRGF0YSwgd2hpY2ggaW4gdHVybiBob2xkcyBhIE5pbmVQaWVjZUltYWdlLgorICAgICAgICBU
aGlzIG1lYW5zIHRoYXQgYW55dGhpbmcgd2l0aCBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20sIG1hcmdp
biwgcGFkZGluZyBvciBib3JkZXIgc3R5bGUgYnV0ICpubyoKKyAgICAgICAgYm9yZGVyLWltYWdl
IHdpbGwgc2F2ZSAxMDQgYnl0ZXMgKGFzc3VtaW5nIHRoZWlyIFJlbmRlclN0eWxlIGlzIHVuc2hh
cmVkLCB3aGljaCBpcyBmYWlybHkgY29tbW9uLikKKworICAgICAgICBUaGlzIHJlZHVjZXMgdGhl
IHNpemUgb2YgU3R5bGVTdXJyb3VuZERhdGEgYnkgMTA0IGJ5dGVzLCBlZmZlY3RpdmVseSByZWR1
Y2luZyBtZW1vcnkgY29uc3VtcHRpb24KKyAgICAgICAgYnkgMS43Mk1CIHdoZW4gdmlld2luZyB0
aGUgZnVsbCBIVE1MNSBzcGVjIGF0IDxodHRwOi8vd2hhdHdnLm9yZy9jPgorCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5p
bmVQaWVjZUltYWdlRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6ZGVmYXVsdERhdGEpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZURhdGE6Ok5pbmVQaWVjZUltYWdlRGF0YSk6CisgICAgICAgIChOaW5lUGllY2VJbWFn
ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2VEYXRhOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTmluZVBpZWNlSW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6Ok5pbmVQaWVjZUltYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Tmlu
ZVBpZWNlSW1hZ2U6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1h
Z2U6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6Omhhc0lt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjppbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
TmluZVBpZWNlSW1hZ2U6OmltYWdlU2xpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVj
ZUltYWdlOjpzZXRJbWFnZVNsaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFn
ZTo6ZmlsbCk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0RmlsbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Ym9yZGVyU2xpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpzZXRCb3JkZXJTbGljZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TmluZVBpZWNlSW1hZ2U6Om91dHNldCk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6c2V0T3V0c2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpo
b3Jpem9udGFsUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0SG9y
aXpvbnRhbFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OnZlcnRpY2Fs
UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6c2V0VmVydGljYWxSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb3B5SW1hZ2VTbGljZXNGcm9t
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb3B5Qm9yZGVyU2xpY2VzRnJv
bSk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29weU91dHNldEZyb20pOgor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvcHlSZXBlYXRGcm9tKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpzZXRNYXNrRGVmYXVsdHMpOgorICAgICAgICAo
V2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmVuc3VyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
TmluZVBpZWNlSW1hZ2U6OmRhdGEpOgorCiAyMDEyLTA4LTEzICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFNpbXBsaWZ5IHN0b3JhZ2Ug
YW5kIHJlZHVjZSBzaXplIG9mIFF0Q29ubmVjdGlvbk9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAKaW5kZXggOThmZmE2NS4uMThh
MTA3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVj
ZUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNl
SW1hZ2UuY3BwCkBAIC0yNiwxMCArMjYsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1i
b29sIE5pbmVQaWVjZUltYWdlOjpvcGVyYXRvcj09KGNvbnN0IE5pbmVQaWVjZUltYWdlJiBvKSBj
b25zdAorYm9vbCBOaW5lUGllY2VJbWFnZURhdGE6Om9wZXJhdG9yPT0oY29uc3QgTmluZVBpZWNl
SW1hZ2VEYXRhJiBvKSBjb25zdAogewogICAgIHJldHVybiBTdHlsZUltYWdlOjppbWFnZXNFcXVp
dmFsZW50KG1faW1hZ2UuZ2V0KCksIG8ubV9pbWFnZS5nZXQoKSkgJiYgbV9pbWFnZVNsaWNlcyA9
PSBvLm1faW1hZ2VTbGljZXMgJiYgbV9maWxsID09IG8ubV9maWxsCiAgICAgICAgICAgICYmIG1f
Ym9yZGVyU2xpY2VzID09IG8ubV9ib3JkZXJTbGljZXMgJiYgbV9vdXRzZXQgPT0gby5tX291dHNl
dCAmJiBtX2hvcml6b250YWxSdWxlID09IG8ubV9ob3Jpem9udGFsUnVsZSAmJiBtX3ZlcnRpY2Fs
UnVsZSA9PSBvLm1fdmVydGljYWxSdWxlOwogfQogCitjb25zdCBOaW5lUGllY2VJbWFnZURhdGEm
IE5pbmVQaWVjZUltYWdlOjpkZWZhdWx0RGF0YSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChOaW5lUGllY2VJbWFnZURhdGEsIGRhdGEsICgpKTsKKyAgICByZXR1cm4gZGF0YTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaApp
bmRleCA2MzkwZjNkLi4yYmUyNjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvTmluZVBpZWNlSW1hZ2UuaApAQCAtMzQsOSArMzQsOSBAQCBlbnVtIEVOaW5lUGllY2VJ
bWFnZVJ1bGUgewogICAgIFN0cmV0Y2hJbWFnZVJ1bGUsIFJvdW5kSW1hZ2VSdWxlLCBTcGFjZUlt
YWdlUnVsZSwgUmVwZWF0SW1hZ2VSdWxlCiB9OwogCi1jbGFzcyBOaW5lUGllY2VJbWFnZSB7Citj
bGFzcyBOaW5lUGllY2VJbWFnZURhdGEgewogcHVibGljOgotICAgIE5pbmVQaWVjZUltYWdlKCkK
KyAgICBOaW5lUGllY2VJbWFnZURhdGEoKQogICAgICAgICA6IG1faW1hZ2UoMCkKICAgICAgICAg
LCBtX2ltYWdlU2xpY2VzKExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5ndGgoMTAwLCBQZXJjZW50
KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAsIFBlcmNlbnQpKQogICAgICAgICAs
IG1fYm9yZGVyU2xpY2VzKExlbmd0aCgxLCBSZWxhdGl2ZSksIExlbmd0aCgxLCBSZWxhdGl2ZSks
IExlbmd0aCgxLCBSZWxhdGl2ZSksIExlbmd0aCgxLCBSZWxhdGl2ZSkpCkBAIC00Nyw3ICs0Nyw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgTmluZVBpZWNlSW1hZ2UoUGFzc1JlZlB0
cjxTdHlsZUltYWdlPiBpbWFnZSwgTGVuZ3RoQm94IGltYWdlU2xpY2VzLCBib29sIGZpbGwsIExl
bmd0aEJveCBib3JkZXJTbGljZXMsIExlbmd0aEJveCBvdXRzZXQsIEVOaW5lUGllY2VJbWFnZVJ1
bGUgaCwgRU5pbmVQaWVjZUltYWdlUnVsZSB2KSAKKyAgICBOaW5lUGllY2VJbWFnZURhdGEoUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSwgTGVuZ3RoQm94IGltYWdlU2xpY2VzLCBib29sIGZp
bGwsIExlbmd0aEJveCBib3JkZXJTbGljZXMsIExlbmd0aEJveCBvdXRzZXQsIEVOaW5lUGllY2VJ
bWFnZVJ1bGUgaCwgRU5pbmVQaWVjZUltYWdlUnVsZSB2KQogICAgICAgOiBtX2ltYWdlKGltYWdl
KQogICAgICAgLCBtX2ltYWdlU2xpY2VzKGltYWdlU2xpY2VzKQogICAgICAgLCBtX2JvcmRlclNs
aWNlcyhib3JkZXJTbGljZXMpCkBAIC01OCwyNCArNTgsNTUgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG8pIGNvbnN0
OwotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBOaW5lUGllY2VJbWFnZSYgbykgY29uc3QgeyBy
ZXR1cm4gISgqdGhpcyA9PSBvKTsgfQorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOaW5lUGll
Y2VJbWFnZURhdGEmKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTmluZVBpZWNl
SW1hZ2VEYXRhJiBvKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG8pOyB9CisKKyAgICBSZWZQ
dHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKKyAgICBMZW5ndGhCb3ggbV9pbWFnZVNsaWNlczsKKyAg
ICBMZW5ndGhCb3ggbV9ib3JkZXJTbGljZXM7CisgICAgTGVuZ3RoQm94IG1fb3V0c2V0OworICAg
IGJvb2wgbV9maWxsIDogMTsKKyAgICB1bnNpZ25lZCBtX2hvcml6b250YWxSdWxlIDogMjsgLy8g
RU5pbmVQaWVjZUltYWdlUnVsZQorICAgIHVuc2lnbmVkIG1fdmVydGljYWxSdWxlIDogMjsgLy8g
RU5pbmVQaWVjZUltYWdlUnVsZQorfTsKKworY2xhc3MgTmluZVBpZWNlSW1hZ2UgeworcHVibGlj
OgorICAgIE5pbmVQaWVjZUltYWdlKCkgeyB9CisKKyAgICBOaW5lUGllY2VJbWFnZShQYXNzUmVm
UHRyPFN0eWxlSW1hZ2U+IGltYWdlLCBMZW5ndGhCb3ggaW1hZ2VTbGljZXMsIGJvb2wgZmlsbCwg
TGVuZ3RoQm94IGJvcmRlclNsaWNlcywgTGVuZ3RoQm94IG91dHNldCwgRU5pbmVQaWVjZUltYWdl
UnVsZSBoLCBFTmluZVBpZWNlSW1hZ2VSdWxlIHYpCisgICAgICAgIDogbV9kYXRhKGFkb3B0UHRy
KG5ldyBOaW5lUGllY2VJbWFnZURhdGEoaW1hZ2UsIGltYWdlU2xpY2VzLCBmaWxsLCBib3JkZXJT
bGljZXMsIG91dHNldCwgaCwgdikpKQorICAgIHsgfQogCi0gICAgYm9vbCBoYXNJbWFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1faW1hZ2UgIT0gMDsgfQotICAgIFN0eWxlSW1hZ2UqIGltYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQotICAgIHZvaWQgc2V0SW1hZ2UoUGFzc1JlZlB0
cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBtX2ltYWdlID0gaW1hZ2U7IH0KKyAgICBOaW5lUGllY2VJ
bWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIpCisgICAgeworICAgICAgICAqdGhpcyA9
IG90aGVyOworICAgIH0KKworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE5pbmVQaWVjZUltYWdl
JiBvdGhlcikKKyAgICB7CisgICAgICAgIGNvbnN0IE5pbmVQaWVjZUltYWdlRGF0YSYgb3RoZXJE
YXRhID0gb3RoZXIuZGF0YSgpOworICAgICAgICBtX2RhdGEgPSBhZG9wdFB0cihuZXcgTmluZVBp
ZWNlSW1hZ2VEYXRhKG90aGVyRGF0YS5tX2ltYWdlLCBvdGhlckRhdGEubV9pbWFnZVNsaWNlcywg
b3RoZXJEYXRhLm1fZmlsbCwgb3RoZXJEYXRhLm1fYm9yZGVyU2xpY2VzLCBvdGhlckRhdGEubV9v
dXRzZXQsIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KG90aGVyRGF0YS5tX2hvcml6
b250YWxSdWxlKSwgc3RhdGljX2Nhc3Q8RU5pbmVQaWVjZUltYWdlUnVsZT4ob3RoZXJEYXRhLm1f
dmVydGljYWxSdWxlKSkpOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBOaW5l
UGllY2VJbWFnZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIGRhdGEoKSA9PSBvdGhlci5kYXRhKCk7
IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTmluZVBpZWNlSW1hZ2UmIG90aGVyKSBjb25z
dCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorCisgICAgYm9vbCBoYXNJbWFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YSAmJiBtX2RhdGEtPm1faW1hZ2U7IH0KKyAgICBTdHlsZUltYWdl
KiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA/IG1fZGF0YS0+bV9pbWFnZS5nZXQoKSA6
IDA7IH0KKyAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpIHsg
ZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1faW1hZ2UgPSBpbWFnZTsgfQogICAgIAotICAgIGNvbnN0
IExlbmd0aEJveCYgaW1hZ2VTbGljZXMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2xpY2VzOyB9
Ci0gICAgdm9pZCBzZXRJbWFnZVNsaWNlcyhjb25zdCBMZW5ndGhCb3gmIHNsaWNlcykgeyBtX2lt
YWdlU2xpY2VzID0gc2xpY2VzOyB9CisgICAgY29uc3QgTGVuZ3RoQm94JiBpbWFnZVNsaWNlcygp
IGNvbnN0IHsgcmV0dXJuIGRhdGEoKS5tX2ltYWdlU2xpY2VzOyB9CisgICAgdm9pZCBzZXRJbWFn
ZVNsaWNlcyhjb25zdCBMZW5ndGhCb3gmIHNsaWNlcykgeyBlbnN1cmVEYXRhKCk7IG1fZGF0YS0+
bV9pbWFnZVNsaWNlcyA9IHNsaWNlczsgfQogCi0gICAgYm9vbCBmaWxsKCkgY29uc3QgeyByZXR1
cm4gbV9maWxsOyB9Ci0gICAgdm9pZCBzZXRGaWxsKGJvb2wgZmlsbCkgeyBtX2ZpbGwgPSBmaWxs
OyB9CisgICAgYm9vbCBmaWxsKCkgY29uc3QgeyByZXR1cm4gZGF0YSgpLm1fZmlsbDsgfQorICAg
IHZvaWQgc2V0RmlsbChib29sIGZpbGwpIHsgZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1fZmlsbCA9
IGZpbGw7IH0KIAotICAgIGNvbnN0IExlbmd0aEJveCYgYm9yZGVyU2xpY2VzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ib3JkZXJTbGljZXM7IH0KLSAgICB2b2lkIHNldEJvcmRlclNsaWNlcyhjb25zdCBM
ZW5ndGhCb3gmIHNsaWNlcykgeyBtX2JvcmRlclNsaWNlcyA9IHNsaWNlczsgfQorICAgIGNvbnN0
IExlbmd0aEJveCYgYm9yZGVyU2xpY2VzKCkgY29uc3QgeyByZXR1cm4gZGF0YSgpLm1fYm9yZGVy
U2xpY2VzOyB9CisgICAgdm9pZCBzZXRCb3JkZXJTbGljZXMoY29uc3QgTGVuZ3RoQm94JiBzbGlj
ZXMpIHsgZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1fYm9yZGVyU2xpY2VzID0gc2xpY2VzOyB9CiAK
LSAgICBjb25zdCBMZW5ndGhCb3gmIG91dHNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb3V0c2V0OyB9
Ci0gICAgdm9pZCBzZXRPdXRzZXQoY29uc3QgTGVuZ3RoQm94JiBvdXRzZXQpIHsgbV9vdXRzZXQg
PSBvdXRzZXQ7IH0KKyAgICBjb25zdCBMZW5ndGhCb3gmIG91dHNldCgpIGNvbnN0IHsgcmV0dXJu
IGRhdGEoKS5tX291dHNldDsgfQorICAgIHZvaWQgc2V0T3V0c2V0KGNvbnN0IExlbmd0aEJveCYg
b3V0c2V0KSB7IGVuc3VyZURhdGEoKTsgbV9kYXRhLT5tX291dHNldCA9IG91dHNldDsgfQogICAg
IAogICAgIHN0YXRpYyBMYXlvdXRVbml0IGNvbXB1dGVPdXRzZXQoTGVuZ3RoIG91dHNldFNpZGUs
IExheW91dFVuaXQgYm9yZGVyU2lkZSkKICAgICB7CkBAIC04NCw0OSArMTE1LDYzIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG91dHNldFNpZGUudmFsdWUoKTsKICAgICB9CiAKLSAgICBFTmlu
ZVBpZWNlSW1hZ2VSdWxlIGhvcml6b250YWxSdWxlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RU5pbmVQaWVjZUltYWdlUnVsZT4obV9ob3Jpem9udGFsUnVsZSk7IH0KLSAgICB2b2lkIHNl
dEhvcml6b250YWxSdWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUgcnVsZSkgeyBtX2hvcml6b250YWxS
dWxlID0gcnVsZTsgfQorICAgIEVOaW5lUGllY2VJbWFnZVJ1bGUgaG9yaXpvbnRhbFJ1bGUoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFTmluZVBpZWNlSW1hZ2VSdWxlPihkYXRhKCkubV9o
b3Jpem9udGFsUnVsZSk7IH0KKyAgICB2b2lkIHNldEhvcml6b250YWxSdWxlKEVOaW5lUGllY2VJ
bWFnZVJ1bGUgcnVsZSkgeyBlbnN1cmVEYXRhKCk7IG1fZGF0YS0+bV9ob3Jpem9udGFsUnVsZSA9
IHJ1bGU7IH0KICAgICAKLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZlcnRpY2FsUnVsZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1bGU+KG1fdmVydGljYWxS
dWxlKTsgfQotICAgIHZvaWQgc2V0VmVydGljYWxSdWxlKEVOaW5lUGllY2VJbWFnZVJ1bGUgcnVs
ZSkgeyBtX3ZlcnRpY2FsUnVsZSA9IHJ1bGU7IH0KKyAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZl
cnRpY2FsUnVsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVOaW5lUGllY2VJbWFnZVJ1
bGU+KGRhdGEoKS5tX3ZlcnRpY2FsUnVsZSk7IH0KKyAgICB2b2lkIHNldFZlcnRpY2FsUnVsZShF
TmluZVBpZWNlSW1hZ2VSdWxlIHJ1bGUpIHsgZW5zdXJlRGF0YSgpOyBtX2RhdGEtPm1fdmVydGlj
YWxSdWxlID0gcnVsZTsgfQogCiAgICAgdm9pZCBjb3B5SW1hZ2VTbGljZXNGcm9tKGNvbnN0IE5p
bmVQaWVjZUltYWdlJiBvdGhlcikKICAgICB7Ci0gICAgICAgIG1faW1hZ2VTbGljZXMgPSBvdGhl
ci5tX2ltYWdlU2xpY2VzOwotICAgICAgICBtX2ZpbGwgPSBvdGhlci5tX2ZpbGw7CisgICAgICAg
IGVuc3VyZURhdGEoKTsKKyAgICAgICAgbV9kYXRhLT5tX2ltYWdlU2xpY2VzID0gb3RoZXIuZGF0
YSgpLm1faW1hZ2VTbGljZXM7CisgICAgICAgIG1fZGF0YS0+bV9maWxsID0gb3RoZXIuZGF0YSgp
Lm1fZmlsbDsKICAgICB9CiAKICAgICB2b2lkIGNvcHlCb3JkZXJTbGljZXNGcm9tKGNvbnN0IE5p
bmVQaWVjZUltYWdlJiBvdGhlcikKICAgICB7Ci0gICAgICAgIG1fYm9yZGVyU2xpY2VzID0gb3Ro
ZXIubV9ib3JkZXJTbGljZXM7CisgICAgICAgIGVuc3VyZURhdGEoKTsKKyAgICAgICAgbV9kYXRh
LT5tX2JvcmRlclNsaWNlcyA9IG90aGVyLmRhdGEoKS5tX2JvcmRlclNsaWNlczsKICAgICB9CiAg
ICAgCiAgICAgdm9pZCBjb3B5T3V0c2V0RnJvbShjb25zdCBOaW5lUGllY2VJbWFnZSYgb3RoZXIp
CiAgICAgewotICAgICAgICBtX291dHNldCA9IG90aGVyLm1fb3V0c2V0OworICAgICAgICBlbnN1
cmVEYXRhKCk7CisgICAgICAgIG1fZGF0YS0+bV9vdXRzZXQgPSBvdGhlci5kYXRhKCkubV9vdXRz
ZXQ7CiAgICAgfQogCiAgICAgdm9pZCBjb3B5UmVwZWF0RnJvbShjb25zdCBOaW5lUGllY2VJbWFn
ZSYgb3RoZXIpCiAgICAgewotICAgICAgICBtX2hvcml6b250YWxSdWxlID0gb3RoZXIubV9ob3Jp
em9udGFsUnVsZTsKLSAgICAgICAgbV92ZXJ0aWNhbFJ1bGUgPSBvdGhlci5tX3ZlcnRpY2FsUnVs
ZTsKKyAgICAgICAgZW5zdXJlRGF0YSgpOworICAgICAgICBtX2RhdGEtPm1faG9yaXpvbnRhbFJ1
bGUgPSBvdGhlci5kYXRhKCkubV9ob3Jpem9udGFsUnVsZTsKKyAgICAgICAgbV9kYXRhLT5tX3Zl
cnRpY2FsUnVsZSA9IG90aGVyLmRhdGEoKS5tX3ZlcnRpY2FsUnVsZTsKICAgICB9CiAKICAgICB2
b2lkIHNldE1hc2tEZWZhdWx0cygpCiAgICAgewotICAgICAgICBtX2ltYWdlU2xpY2VzID0gTGVu
Z3RoQm94KDApOwotICAgICAgICBtX2ZpbGwgPSB0cnVlOwotICAgICAgICBtX2JvcmRlclNsaWNl
cyA9IExlbmd0aEJveCgpOworICAgICAgICBlbnN1cmVEYXRhKCk7CisgICAgICAgIG1fZGF0YS0+
bV9pbWFnZVNsaWNlcyA9IExlbmd0aEJveCgwKTsKKyAgICAgICAgbV9kYXRhLT5tX2ZpbGwgPSB0
cnVlOworICAgICAgICBtX2RhdGEtPm1fYm9yZGVyU2xpY2VzID0gTGVuZ3RoQm94KCk7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwotICAgIExlbmd0
aEJveCBtX2ltYWdlU2xpY2VzOwotICAgIExlbmd0aEJveCBtX2JvcmRlclNsaWNlczsKLSAgICBM
ZW5ndGhCb3ggbV9vdXRzZXQ7Ci0gICAgYm9vbCBtX2ZpbGwgOiAxOwotICAgIHVuc2lnbmVkIG1f
aG9yaXpvbnRhbFJ1bGUgOiAyOyAvLyBFTmluZVBpZWNlSW1hZ2VSdWxlCi0gICAgdW5zaWduZWQg
bV92ZXJ0aWNhbFJ1bGUgOiAyOyAvLyBFTmluZVBpZWNlSW1hZ2VSdWxlCisgICAgc3RhdGljIGNv
bnN0IE5pbmVQaWVjZUltYWdlRGF0YSYgZGVmYXVsdERhdGEoKTsKKworICAgIHZvaWQgZW5zdXJl
RGF0YSgpCisgICAgeworICAgICAgICBpZiAoIW1fZGF0YSkKKyAgICAgICAgICAgIG1fZGF0YSA9
IGFkb3B0UHRyKG5ldyBOaW5lUGllY2VJbWFnZURhdGEpOworICAgIH0KKworICAgIGNvbnN0IE5p
bmVQaWVjZUltYWdlRGF0YSYgZGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9kYXRh
KQorICAgICAgICAgICAgcmV0dXJuICptX2RhdGE7CisgICAgICAgIHJldHVybiBkZWZhdWx0RGF0
YSgpOworICAgIH0KKworICAgIE93blB0cjxOaW5lUGllY2VJbWFnZURhdGE+IG1fZGF0YTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>