<?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>29351</bug_id>
          
          <creation_ts>2009-09-17 16:34:22 -0700</creation_ts>
          <short_desc>Each wrapped Objective-C object should use a single RuntimeObjectImp</short_desc>
          <delta_ts>2013-12-19 10:05:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>147975</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-17 16:34:22 -0700</bug_when>
    <thetext>When exposing Objective-C objects to JavaScript, we end up making multiple ObjcInstance objects and multiple RuntimeObjectImp objects for a single Objective-C object. This isn&apos;t good because it makes them receive multiple finalizeForWebScript calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147976</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-17 16:34:38 -0700</bug_when>
    <thetext>rdar://problem/7142294</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147977</commentid>
    <comment_count>2</comment_count>
      <attachid>39735</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-17 16:35:43 -0700</bug_when>
    <thetext>Created attachment 39735
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148003</commentid>
    <comment_count>3</comment_count>
      <attachid>39735</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-17 19:23:40 -0700</bug_when>
    <thetext>Comment on attachment 39735
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148236</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-18 10:49:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/48513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148308</commentid>
    <comment_count>5</comment_count>
      <attachid>39777</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-09-18 12:29:31 -0700</bug_when>
    <thetext>Created attachment 39777
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148309</commentid>
    <comment_count>6</comment_count>
      <attachid>39777</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-09-18 12:30:17 -0700</bug_when>
    <thetext>Comment on attachment 39777
Patch v1

Wrong bug, sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148317</commentid>
    <comment_count>7</comment_count>
      <attachid>39735</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-09-18 12:43:25 -0700</bug_when>
    <thetext>Comment on attachment 39735
patch

This one was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148362</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2009-09-18 13:36:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; http://trac.webkit.org/changeset/48513

Unfortunately this patch brake Qt build: http://build.webkit.org/builders/Qt%20Linux%20Release/builds/1693/steps/compile-webkit/logs/stdio

The error caused the new virtual function added to runtime.h,
but not defined in inherited class QtInstance : public Instance.
 	125 private:
 	126	    virtual RuntimeObjectImp* newRuntimeObject(ExecState*);

newRuntimeObject should have protected visibility, and createRuntimeObject should be renamed to newRuntimeObject in inherited class QtInstance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148365</commentid>
    <comment_count>9</comment_count>
      <attachid>39785</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2009-09-18 13:37:48 -0700</bug_when>
    <thetext>Created attachment 39785
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148377</commentid>
    <comment_count>10</comment_count>
      <attachid>39785</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-18 13:55:20 -0700</bug_when>
    <thetext>Comment on attachment 39785
proposed patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148378</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-18 13:55:38 -0700</bug_when>
    <thetext>I have to re-open the bug for the commit-queue to see it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148392</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-18 14:44:54 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt;      125 private:
&gt;      126        virtual RuntimeObjectImp* newRuntimeObject(ExecState*);
&gt; 
&gt; newRuntimeObject should have protected visibility

Why? I don&apos;t agree. But it&apos;s not important.

&gt; createRuntimeObject
&gt; should be renamed to newRuntimeObject in inherited class QtInstance.

Yes, sorry! Thanks for fixing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148414</commentid>
    <comment_count>13</comment_count>
      <attachid>39785</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-18 15:12:25 -0700</bug_when>
    <thetext>Comment on attachment 39785
proposed patch

Clearing flags on attachment: 39785

Committed r48538: &lt;http://trac.webkit.org/changeset/48538&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148416</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-18 15:12:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961422</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-19 10:05:13 -0800</bug_when>
    <thetext>This change introduced incorrect lifetime management and cross-origin data leaks in WebKit1, see bug 123029 comment 8.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39735</attachid>
            <date>2009-09-17 16:35:43 -0700</date>
            <delta_ts>2009-09-18 12:43:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ObjCWrapperPatch.txt</filename>
            <type>text/plain</type>
            <size>18335</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQ4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMDktMDktMTcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVhY2gg
d3JhcHBlZCBPYmplY3RpdmUtQyBvYmplY3Qgc2hvdWxkIHVzZSBhIHNpbmdsZSBSdW50aW1lT2Jq
ZWN0SW1wCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTM1MQorICAgICAgICByZGFyOi8vcHJvYmxlbS83MTQyMjk0CisKKyAgICAgICAgKiBXZWJDb3Jl
LmJhc2UuZXhwOiBBZGRlZCBhIG5ld2x5LW5lZWRlZCBleHBvcnRlZCBzeW1ib2wuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmg6IEVsaW1pbmF0ZWQgdW51c2VkCisgICAg
ICAgIGNyZWF0ZVdyYXBwZXJDYWNoZVdpdGhJbnRlZ2VyS2V5cyBzaW5jZSBpdCBoYXMgbm90IGJl
ZW4gbmVlZGVkIHNpbmNlIHRoZQorICAgICAgICBSR0JDb2xvciB3cmFwcGVycyB3ZXJlIHJld29y
a2VkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW06IERpdHRvLgorCisg
ICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5oOiBNYWRlIHRoZSBjcmVhdGUgZnVu
Y3Rpb24gbm9uLWlubGluZS4KKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1t
OgorICAgICAgICAoY3JlYXRlSW5zdGFuY2VXcmFwcGVyQ2FjaGUpOiBBZGRlZC4gQ3JlYXRlcyBh
biBhcHByb3ByaWF0ZSBtYXAgdGFibGUuCisgICAgICAgIChPYmpjSW5zdGFuY2U6OmNyZWF0ZSk6
IE1vdmVkIGhlcmUgZnJvbSBoZWFkZXIuIFVzZXMgTlNNYXBHZXQgYW5kCisgICAgICAgIE5TTWFw
SW5zZXJ0IHRvIGNhY2hlIHRoZSBpbnN0YW5jZSBpbiBhIG1hcCB0YWJsZS4KKyAgICAgICAgKE9i
amNJbnN0YW5jZTo6fk9iamNJbnN0YW5jZSk6IEFkZGVkIGEgY2FsbCB0byBOU01hcFJlbW92ZSB0
byByZW1vdmUKKyAgICAgICAgdGhlIGluc3RhbmNlIGZyb20gdGhlIG1hcCB0YWJsZS4KKworICAg
ICAgICAqIGJyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpRdEluc3RhbmNlOjp+UXRJbnN0YW5jZSk6IFJlbW92ZSB1bm5lZWRlZCBjb2RlIHRvIHJlbW92
ZQorICAgICAgICB0aGUgaW5zdGFuY2UgZnJvbSBjYWNoZWRPYmplY3RzLCB3aGljaCBubyBsb25n
ZXIgZXhpc3RzLgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6bmV3UnVudGlt
ZU9iamVjdCk6IFJlbmFtZWQgdG8gb3ZlcmxvYWQgbmV3CisgICAgICAgIGJvdHRsZW5lY2suIENh
Y2hpbmcgaXMgbm93IGhhbmRsZWQgYnkgdGhlIGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBicmlk
Z2UvcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZTo6SW5zdGFu
Y2UpOiBJbml0aWFsaXplIG1fcnVudGltZU9iamVjdCB0byAwLgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6SW5zdGFuY2U6On5JbnN0YW5jZSk6IEFzc2VydCBtX3J1bnRpbWVPYmplY3QgaXMgMC4K
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Okluc3RhbmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KTog
VXNlIG1fcnVudGltZU9iamVjdAorICAgICAgICBpZiBpdCdzIGFscmVhZHkgc2V0LiBTZXQgbV9y
dW50aW1lT2JqZWN0IGFuZCBjYWxsIGFkZFJ1bnRpbWVPYmplY3QKKyAgICAgICAgaWYgaXQncyBu
b3QuCisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZTo6bmV3UnVudGltZU9iamVjdCk6
IEFkZGVkLiBWaXJ0dWFsIGZ1bmN0aW9uLAorICAgICAgICB1c2VkIG9ubHkgYnkgY3JlYXRlUnVu
dGltZU9iamVjdC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Okluc3RhbmNlOjp3aWxsRGVzdHJv
eVJ1bnRpbWVPYmplY3QpOiBBZGRlZC4KKyAgICAgICAgQ2FsbHMgcmVtb3ZlUnVudGltZU9iamVj
dCBhbmQgdGhlbiBjbGVhcnMgbV9ydW50aW1lT2JqZWN0LgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6SW5zdGFuY2U6OndpbGxJbnZhbGlkYXRlUnVudGltZU9iamVjdCk6IEFkZGVkLgorICAgICAg
ICBDbGVhcnMgbV9ydW50aW1lT2JqZWN0LgorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWUuaDog
TWFkZSBjcmVhdGVSdW50aW1lT2JqZWN0IG5vbi12aXJ0dWFsLiBBZGRlZAorICAgICAgICB3aWxs
RGVzdHJveVJ1bnRpbWVPYmplY3QsIHdpbGxJbnZhbGlkYXRlUnVudGltZU9iamVjdCwKKyAgICAg
ICAgbmV3UnVudGltZU9iamVjdCwgYW5kIG1fcnVudGltZU9iamVjdC4KKworICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6
OlJ1bnRpbWVPYmplY3RJbXApOiBSZW1vdmVkIGFkZFJ1bnRpbWVPYmplY3QKKyAgICAgICAgY2Fs
bCwgbm93IGhhbmRsZWQgYnkgY2FsbGVyLgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1w
Ojp+UnVudGltZU9iamVjdEltcCk6IFJlcGxhY2VkIHJlbW92ZVJ1bnRpbWVPYmplY3QKKyAgICAg
ICAgY2FsbCB3aXRoIHdpbGxEZXN0cm95UnVudGltZU9iamVjdCBjYWxsOyB0aGUgbGF0dGVyIG5v
d3MgY2FsbHMKKyAgICAgICAgcmVtb3ZlUnVudGltZU9iamVjdC4KKyAgICAgICAgKEpTQzo6UnVu
dGltZU9iamVjdEltcDo6aW52YWxpZGF0ZSk6IEFkZGVkIHdpbGxJbnZhbGlkYXRlUnVudGltZU9i
amVjdAorICAgICAgICBjYWxsLgorCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6
IE1hZGUgaW52YWxpZGF0ZSBub24tdmlydHVhbC4KKwogMjAwOS0wOS0xNyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5
YXR0LgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cAkocmV2aXNpb24gNDg0ODcpCisrKyBXZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsNyBAQCBfX1o0Y29yZVAxOURP
TURvY3VtZW50RnJhZ21lbnQKIF9fWjRjb3JlUDIyRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogX19a
NGNvcmVQN0RPTU5vZGUKIF9fWjRjb3JlUDhET01SYW5nZQorX19aTjNKU0M4QmluZGluZ3M4SW5z
dGFuY2UxNm5ld1J1bnRpbWVPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pON1dlYkNvcmUxME1v
dXNlRXZlbnRDMUVSS05TXzEyQXRvbWljU3RyaW5nRWJiTjNXVEYxMFBhc3NSZWZQdHJJTlNfOURP
TVdpbmRvd0VFRWlpaWlpYmJiYnROUzVfSU5TXzExRXZlbnRUYXJnZXRFRUVOUzVfSU5TXzlDbGlw
Ym9hcmRFRUViCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxN3NldFNjcm9sbGJhck1vZGVzRU5T
XzEzU2Nyb2xsYmFyTW9kZUVTMV8KIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2
ZVNjcm9sbGJhcnNFYgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmgJKHJldmlz
aW9uIDQ4NDg3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDcgKzYxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBDcmVh
dGUgYW4gTlNNYXBUYWJsZSBtYXBwaW5nIGZyb20gcG9pbnRlcnMgdG8gT2JqQyBvYmplY3RzIGhl
bGQgd2l0aCB6ZXJvaW5nIHdlYWsgcmVmZXJlbmNlcy4KIE5TTWFwVGFibGUqIGNyZWF0ZVdyYXBw
ZXJDYWNoZSgpOwotTlNNYXBUYWJsZSogY3JlYXRlV3JhcHBlckNhY2hlV2l0aEludGVnZXJLZXlz
KCk7IC8vIFNhbWUsIGJ1dCBmcm9tIGludGVnZXJzIHRvIE9iakMgb2JqZWN0cy4KIAogaWQgY3Jl
YXRlRE9NV3JhcHBlcihKU0M6OkpTT2JqZWN0KiwgUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpS
b290T2JqZWN0PiBvcmlnaW4sIFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4g
Y3VycmVudCk7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSW50ZXJuYWwubW0JKHJldmlz
aW9uIDQ4NDg3KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSwxOCArNDksNiBAQCBOU01hcFRhYmxlKiBjcmVhdGVXcmFwcGVyQ2Fj
aGUoKQogI2VuZGlmCiB9CiAKLU5TTWFwVGFibGUqIGNyZWF0ZVdyYXBwZXJDYWNoZVdpdGhJbnRl
Z2VyS2V5cygpCi17Ci0jaWZkZWYgQlVJTERJTkdfT05fVElHRVIKLSAgICByZXR1cm4gTlNDcmVh
dGVNYXBUYWJsZShOU0ludE1hcEtleUNhbGxCYWNrcywgTlNOb25SZXRhaW5lZE9iamVjdE1hcFZh
bHVlQ2FsbEJhY2tzLCAwKTsKLSNlbHNlCi0gICAgLy8gTlNNYXBUYWJsZSB3aXRoIHplcm9pbmcg
d2VhayBwb2ludGVycyBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIGJ1aWxkIGNhY2hlcyBsaWtl
IHRoaXMgdW5kZXIgZ2FyYmFnZSBjb2xsZWN0aW9uLgotICAgIE5TUG9pbnRlckZ1bmN0aW9uc09w
dGlvbnMga2V5T3B0aW9ucyA9IE5TUG9pbnRlckZ1bmN0aW9uc09wYXF1ZU1lbW9yeSB8IE5TUG9p
bnRlckZ1bmN0aW9uc0ludGVnZXJQZXJzb25hbGl0eTsKLSAgICBOU1BvaW50ZXJGdW5jdGlvbnNP
cHRpb25zIHZhbHVlT3B0aW9ucyA9IE5TUG9pbnRlckZ1bmN0aW9uc1plcm9pbmdXZWFrTWVtb3J5
IHwgTlNQb2ludGVyRnVuY3Rpb25zT2JqZWN0UGVyc29uYWxpdHk7Ci0gICAgcmV0dXJuIFtbTlNN
YXBUYWJsZSBhbGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOmtleU9wdGlvbnMgdmFsdWVPcHRpb25z
OnZhbHVlT3B0aW9ucyBjYXBhY2l0eTowXTsKLSNlbmRpZgotfQotCiBOU09iamVjdCogZ2V0RE9N
V3JhcHBlcihET01PYmplY3RJbnRlcm5hbCogaW1wbCkKIHsKICAgICBpZiAoIURPTVdyYXBwZXJD
YWNoZSkKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3J1bnRpbWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYnJpZGdlL3J1bnRpbWUuY3BwCShyZXZpc2lvbiA0ODQ4NykKKysrIFdlYkNvcmUvYnJp
ZGdlL3J1bnRpbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsMTQgQEAgQXJyYXk6
On5BcnJheSgpCiAKIEluc3RhbmNlOjpJbnN0YW5jZShQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJv
b3RPYmplY3QpCiAgICAgOiBfcm9vdE9iamVjdChyb290T2JqZWN0KQorICAgICwgbV9ydW50aW1l
T2JqZWN0KDApCiB7CiAgICAgQVNTRVJUKF9yb290T2JqZWN0KTsKIH0KIAogSW5zdGFuY2U6On5J
bnN0YW5jZSgpCiB7CisgICAgQVNTRVJUKCFtX3J1bnRpbWVPYmplY3QpOwogfQogCiBzdGF0aWMg
S0pTRGlkRXhlY3V0ZUZ1bmN0aW9uUHRyIHNfZGlkRXhlY3V0ZUZ1bmN0aW9uOwpAQCAtODAsMTEg
KzgyLDM3IEBAIHZvaWQgSW5zdGFuY2U6OmVuZCgpCiAKIFJ1bnRpbWVPYmplY3RJbXAqIEluc3Rh
bmNlOjpjcmVhdGVSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKKyAgICBBU1NFUlQo
X3Jvb3RPYmplY3QpOworICAgIEFTU0VSVChfcm9vdE9iamVjdC0+aXNWYWxpZCgpKTsKKyAgICBp
ZiAobV9ydW50aW1lT2JqZWN0KQorICAgICAgICByZXR1cm4gbV9ydW50aW1lT2JqZWN0OworICAg
IEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgbV9ydW50aW1lT2JqZWN0
ID0gbmV3UnVudGltZU9iamVjdChleGVjKTsKKyAgICBfcm9vdE9iamVjdC0+YWRkUnVudGltZU9i
amVjdChtX3J1bnRpbWVPYmplY3QpOworICAgIHJldHVybiBtX3J1bnRpbWVPYmplY3Q7Cit9CisK
K1J1bnRpbWVPYmplY3RJbXAqIEluc3RhbmNlOjpuZXdSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIAog
ICAgIHJldHVybiBuZXcgKGV4ZWMpIFJ1bnRpbWVPYmplY3RJbXAoZXhlYywgdGhpcyk7CiB9CiAK
K3ZvaWQgSW5zdGFuY2U6OndpbGxEZXN0cm95UnVudGltZU9iamVjdCgpCit7CisgICAgQVNTRVJU
KF9yb290T2JqZWN0KTsKKyAgICBBU1NFUlQoX3Jvb3RPYmplY3QtPmlzVmFsaWQoKSk7CisgICAg
QVNTRVJUKG1fcnVudGltZU9iamVjdCk7CisgICAgX3Jvb3RPYmplY3QtPnJlbW92ZVJ1bnRpbWVP
YmplY3QobV9ydW50aW1lT2JqZWN0KTsKKyAgICBtX3J1bnRpbWVPYmplY3QgPSAwOworfQorCit2
b2lkIEluc3RhbmNlOjp3aWxsSW52YWxpZGF0ZVJ1bnRpbWVPYmplY3QoKQoreworICAgIEFTU0VS
VChtX3J1bnRpbWVPYmplY3QpOworICAgIG1fcnVudGltZU9iamVjdCA9IDA7Cit9CisKIFJvb3RP
YmplY3QqIEluc3RhbmNlOjpyb290T2JqZWN0KCkgY29uc3QgCiB7IAogICAgIHJldHVybiBfcm9v
dE9iamVjdCAmJiBfcm9vdE9iamVjdC0+aXNWYWxpZCgpID8gX3Jvb3RPYmplY3QuZ2V0KCkgOiAw
OwpJbmRleDogV2ViQ29yZS9icmlkZ2UvcnVudGltZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YnJpZGdlL3J1bnRpbWUuaAkocmV2aXNpb24gNDg0ODcpCisrKyBXZWJDb3JlL2JyaWRnZS9ydW50
aW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg2LDggKzg2LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGJlZ2luKCk7CiAgICAgdm9pZCBlbmQoKTsKICAgICAKLSAgICB2aXJ0dWFsIENs
YXNzICpnZXRDbGFzcygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJ1bnRpbWVPYmplY3RJbXAq
IGNyZWF0ZVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKik7CisgICAgdmlydHVhbCBDbGFzcyogZ2V0
Q2xhc3MoKSBjb25zdCA9IDA7CisgICAgUnVudGltZU9iamVjdEltcCogY3JlYXRlUnVudGltZU9i
amVjdChFeGVjU3RhdGUqKTsKKyAgICB2b2lkIHdpbGxJbnZhbGlkYXRlUnVudGltZU9iamVjdCgp
OworICAgIHZvaWQgd2lsbERlc3Ryb3lSdW50aW1lT2JqZWN0KCk7CiAgICAgCiAgICAgLy8gUmV0
dXJucyBmYWxzZSBpZiB0aGUgdmFsdWUgd2FzIG5vdCBzZXQgc3VjY2Vzc2Z1bGx5LgogICAgIHZp
cnR1YWwgYm9vbCBzZXRWYWx1ZU9mVW5kZWZpbmVkRmllbGQoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIEpTVmFsdWUpIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMTksNiArMTIxLDExIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdmlydHVhbEVuZCgpIHsgfQogCiAgICAgUmVm
UHRyPFJvb3RPYmplY3Q+IF9yb290T2JqZWN0OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgUnVu
dGltZU9iamVjdEltcCogbmV3UnVudGltZU9iamVjdChFeGVjU3RhdGUqKTsKKworICAgIFJ1bnRp
bWVPYmplY3RJbXAqIG1fcnVudGltZU9iamVjdDsKIH07CiAKIGNsYXNzIEFycmF5IDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAJKHJldmlzaW9u
IDQ4NDg3KQorKysgV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00NiwyNSArNDYsMjUgQEAgUnVudGltZU9iamVjdEltcDo6UnVudGlt
ZU9iamVjdEltcChFeGVjUwogICAgIDogSlNPYmplY3QoZGVwcmVjYXRlZEdldERPTVN0cnVjdHVy
ZTxSdW50aW1lT2JqZWN0SW1wPihleGVjKSkKICAgICAsIGluc3RhbmNlKGkpCiB7Ci0gICAgaW5z
dGFuY2UtPnJvb3RPYmplY3QoKS0+YWRkUnVudGltZU9iamVjdCh0aGlzKTsKIH0KICAgICAKIFJ1
bnRpbWVPYmplY3RJbXA6OlJ1bnRpbWVPYmplY3RJbXAoRXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaSkKICAgICA6IEpTT2Jq
ZWN0KHN0cnVjdHVyZSkKICAgICAsIGluc3RhbmNlKGkpCiB7Ci0gICAgaW5zdGFuY2UtPnJvb3RP
YmplY3QoKS0+YWRkUnVudGltZU9iamVjdCh0aGlzKTsKIH0KIAogUnVudGltZU9iamVjdEltcDo6
flJ1bnRpbWVPYmplY3RJbXAoKQogewogICAgIGlmIChpbnN0YW5jZSkKLSAgICAgICAgaW5zdGFu
Y2UtPnJvb3RPYmplY3QoKS0+cmVtb3ZlUnVudGltZU9iamVjdCh0aGlzKTsKKyAgICAgICAgaW5z
dGFuY2UtPndpbGxEZXN0cm95UnVudGltZU9iamVjdCgpOwogfQogCiB2b2lkIFJ1bnRpbWVPYmpl
Y3RJbXA6OmludmFsaWRhdGUoKQogewogICAgIEFTU0VSVChpbnN0YW5jZSk7CisgICAgaWYgKGlu
c3RhbmNlKQorICAgICAgICBpbnN0YW5jZS0+d2lsbEludmFsaWRhdGVSdW50aW1lT2JqZWN0KCk7
CiAgICAgaW5zdGFuY2UgPSAwOwogfQogCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgJKHJl
dmlzaW9uIDQ4NDg3KQorKysgV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTMgKzM0LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgUnVudGltZU9iamVjdEltcCA6IHB1YmxpYyBKU09iamVjdCB7CiBwdWJsaWM6CiAgICAgUnVu
dGltZU9iamVjdEltcChFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPEJpbmRpbmdzOjpJbnN0YW5jZT4p
OwotCiAgICAgdmlydHVhbCB+UnVudGltZU9iamVjdEltcCgpOwogCiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7Ci0g
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpOworICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHZpcnR1YWwgSlNW
YWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29u
c3Q7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHZp
cnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKQEAg
LTQ4LDcgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CiAgICAgdmlydHVhbCB2b2lkIGdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKICAgICBC
aW5kaW5nczo6SW5zdGFuY2UqIGdldEludGVybmFsSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBp
bnN0YW5jZS5nZXQoKTsgfQogCiAgICAgc3RhdGljIEpTT2JqZWN0KiB0aHJvd0ludmFsaWRBY2Nl
c3NFcnJvcihFeGVjU3RhdGUqKTsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0
YW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5o
CShyZXZpc2lvbiA0ODQ4NykKKysrIFdlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
MyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDE2ICszNywxMiBAQCBjbGFzcyBPYmpjQ2xh
c3M7CiAKIGNsYXNzIE9iamNJbnN0YW5jZSA6IHB1YmxpYyBJbnN0YW5jZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8T2JqY0luc3RhbmNlPiBjcmVhdGUoT2JqZWN0U3RydWN0UHRy
IGluc3RhbmNlLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RPYmplY3QpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE9iamNJbnN0YW5jZShpbnN0YW5jZSwgcm9vdE9iamVj
dCkpOwotICAgIH0KLQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iamNJbnN0YW5jZT4gY3JlYXRl
KE9iamVjdFN0cnVjdFB0ciwgUGFzc1JlZlB0cjxSb290T2JqZWN0Pik7CisgICAgdmlydHVhbCB+
T2JqY0luc3RhbmNlKCk7CisgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0R2xvYmFsRXhjZXB0aW9u
KE5TU3RyaW5nKiwgSlNHbG9iYWxPYmplY3QqIGV4Y2VwdGlvbkVudmlyb25tZW50ID0gMCk7IC8v
IEEgbnVsbCBleGNlcHRpb25FbnZpcm9ubWVudCBtZWFucyB0aGUgZXhjZXB0aW9uIHNob3VsZCBw
cm9wb2dhdGUgdG8gYW55IGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4KIAotICAgIH5PYmpjSW5zdGFu
Y2UoKTsKLSAgICAKLSAgICB2aXJ0dWFsIENsYXNzICpnZXRDbGFzcygpIGNvbnN0OworICAgIHZp
cnR1YWwgQ2xhc3MqIGdldENsYXNzKCkgY29uc3Q7CiAgICAgICAgIAogICAgIHZpcnR1YWwgSlNW
YWx1ZSB2YWx1ZU9mKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgIHZpcnR1YWwgSlNWYWx1ZSBkZWZh
dWx0VmFsdWUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3Q7CkBAIC03
MSw3ICs2Nyw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbW92ZUds
b2JhbEV4Y2VwdGlvblRvRXhlY1N0YXRlKEV4ZWNTdGF0ZSopOwogCi0gICAgT2JqY0luc3RhbmNl
KE9iamVjdFN0cnVjdFB0ciBpbnN0YW5jZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0Pik7CisgICAg
T2JqY0luc3RhbmNlKE9iamVjdFN0cnVjdFB0ciwgUGFzc1JlZlB0cjxSb290T2JqZWN0Pik7CiAg
ICAgCiAgICAgUmV0YWluUHRyPE9iamVjdFN0cnVjdFB0cj4gX2luc3RhbmNlOwogICAgIG11dGFi
bGUgT2JqY0NsYXNzICpfY2xhc3M7CkluZGV4OiBXZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5z
dGFuY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNl
Lm1tCShyZXZpc2lvbiA0ODQ4NykKKysrIFdlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5j
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDggQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw4ICs0NCwyMSBA
QAogdXNpbmcgbmFtZXNwYWNlIEpTQzo6QmluZGluZ3M7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
Ci1zdGF0aWMgTlNTdHJpbmcqIHNfZXhjZXB0aW9uOworc3RhdGljIE5TU3RyaW5nICpzX2V4Y2Vw
dGlvbjsKIHN0YXRpYyBKU0dsb2JhbE9iamVjdCogc19leGNlcHRpb25FbnZpcm9ubWVudDsgLy8g
Tm8gbmVlZCB0byBwcm90ZWN0IHRoaXMgdmFsdWUsIHNpbmNlIHdlIGp1c3QgdXNlIGl0IGZvciBh
IHBvaW50ZXIgY29tcGFyaXNvbi4KK3N0YXRpYyBOU01hcFRhYmxlICpzX2luc3RhbmNlV3JhcHBl
ckNhY2hlOworCitzdGF0aWMgTlNNYXBUYWJsZSAqY3JlYXRlSW5zdGFuY2VXcmFwcGVyQ2FjaGUo
KQoreworI2lmZGVmIEJVSUxESU5HX09OX1RJR0VSCisgICAgcmV0dXJuIE5TQ3JlYXRlTWFwVGFi
bGUoTlNOb25SZXRhaW5lZE9iamVjdE1hcEtleUNhbGxCYWNrcywgTlNOb25Pd25lZFBvaW50ZXJN
YXBWYWx1ZUNhbGxCYWNrcywgMCk7CisjZWxzZQorICAgIC8vIE5TTWFwVGFibGUgd2l0aCB6ZXJv
aW5nIHdlYWsgcG9pbnRlcnMgaXMgdGhlIHJlY29tbWVuZGVkIHdheSB0byBidWlsZCBjYWNoZXMg
bGlrZSB0aGlzIHVuZGVyIGdhcmJhZ2UgY29sbGVjdGlvbi4KKyAgICBOU1BvaW50ZXJGdW5jdGlv
bnNPcHRpb25zIGtleU9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlvbnNaZXJvaW5nV2Vha01lbW9y
eSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBlcnNvbmFsaXR5OworICAgIE5TUG9pbnRlckZ1
bmN0aW9uc09wdGlvbnMgdmFsdWVPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25zT3BhcXVlTWVt
b3J5IHwgTlNQb2ludGVyRnVuY3Rpb25zT3BhcXVlUGVyc29uYWxpdHk7CisgICAgcmV0dXJuIFtb
TlNNYXBUYWJsZSBhbGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOmtleU9wdGlvbnMgdmFsdWVPcHRp
b25zOnZhbHVlT3B0aW9ucyBjYXBhY2l0eTowXTsKKyNlbmRpZgorfQogCiB2b2lkIE9iamNJbnN0
YW5jZTo6c2V0R2xvYmFsRXhjZXB0aW9uKE5TU3RyaW5nKiBleGNlcHRpb24sIEpTR2xvYmFsT2Jq
ZWN0KiBleGNlcHRpb25FbnZpcm9ubWVudCkKIHsKQEAgLTc0LDcgKzg3LDcgQEAgdm9pZCBPYmpj
SW5zdGFuY2U6Om1vdmVHbG9iYWxFeGNlcHRpb25UbwogICAgIHNfZXhjZXB0aW9uRW52aXJvbm1l
bnQgPSAwOwogfQogCi1PYmpjSW5zdGFuY2U6Ok9iamNJbnN0YW5jZShPYmplY3RTdHJ1Y3RQdHIg
aW5zdGFuY2UsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCkgCitPYmpjSW5zdGFu
Y2U6Ok9iamNJbnN0YW5jZShpZCBpbnN0YW5jZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290
T2JqZWN0KSAKICAgICA6IEluc3RhbmNlKHJvb3RPYmplY3QpCiAgICAgLCBfaW5zdGFuY2UoaW5z
dGFuY2UpCiAgICAgLCBfY2xhc3MoMCkKQEAgLTgzLDEzICs5NiwzMCBAQCBPYmpjSW5zdGFuY2U6
Ok9iamNJbnN0YW5jZShPYmplY3RTdHJ1Y3RQCiB7CiB9CiAKK1Bhc3NSZWZQdHI8T2JqY0luc3Rh
bmNlPiBPYmpjSW5zdGFuY2U6OmNyZWF0ZShpZCBpbnN0YW5jZSwgUGFzc1JlZlB0cjxSb290T2Jq
ZWN0PiByb290T2JqZWN0KQoreworICAgIGlmICghc19pbnN0YW5jZVdyYXBwZXJDYWNoZSkKKyAg
ICAgICAgc19pbnN0YW5jZVdyYXBwZXJDYWNoZSA9IGNyZWF0ZUluc3RhbmNlV3JhcHBlckNhY2hl
KCk7CisgICAgaWYgKHZvaWQqIGV4aXN0aW5nV3JhcHBlciA9IE5TTWFwR2V0KHNfaW5zdGFuY2VX
cmFwcGVyQ2FjaGUsIGluc3RhbmNlKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9iamNJ
bnN0YW5jZSo+KGV4aXN0aW5nV3JhcHBlcik7CisgICAgUmVmUHRyPE9iamNJbnN0YW5jZT4gd3Jh
cHBlciA9IGFkb3B0UmVmKG5ldyBPYmpjSW5zdGFuY2UoaW5zdGFuY2UsIHJvb3RPYmplY3QpKTsK
KyAgICBOU01hcEluc2VydChzX2luc3RhbmNlV3JhcHBlckNhY2hlLCBpbnN0YW5jZSwgd3JhcHBl
ci5nZXQoKSk7CisgICAgcmV0dXJuIHdyYXBwZXIucmVsZWFzZSgpOworfQorCiBPYmpjSW5zdGFu
Y2U6On5PYmpjSW5zdGFuY2UoKSAKIHsKLSAgICAvLyAtZmluYWxpemVGb3JXZWJTY3JpcHQgYW5k
IC1kZWFsbG9jLy1maW5hbGl6ZSBtYXkgcmVxdWlyZSBhdXRvcmVsZWFzZSBwb29scy4KKyAgICAv
LyBCb3RoIC1maW5hbGl6ZUZvcldlYlNjcmlwdCBhbmQgLWRlYWxsb2MvLWZpbmFsaXplIG9mIF9p
bnN0YW5jZSBtYXkgcmVxdWlyZSBhdXRvcmVsZWFzZSBwb29scy4KICAgICBOU0F1dG9yZWxlYXNl
UG9vbCogcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworCisgICAgQVNT
RVJUKHNfaW5zdGFuY2VXcmFwcGVyQ2FjaGUpOworICAgIEFTU0VSVChfaW5zdGFuY2UpOworICAg
IE5TTWFwUmVtb3ZlKHNfaW5zdGFuY2VXcmFwcGVyQ2FjaGUsIF9pbnN0YW5jZS5nZXQoKSk7CisK
ICAgICBpZiAoW19pbnN0YW5jZS5nZXQoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGZp
bmFsaXplRm9yV2ViU2NyaXB0KV0pCiAgICAgICAgIFtfaW5zdGFuY2UuZ2V0KCkgcGVyZm9ybVNl
bGVjdG9yOkBzZWxlY3RvcihmaW5hbGl6ZUZvcldlYlNjcmlwdCldOwogICAgIF9pbnN0YW5jZSA9
IDA7CisKICAgICBbcG9vbCBkcmFpbl07CiB9CiAKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5j
ZS5jcHAJKHJldmlzaW9uIDQ4NDg3KQorKysgV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MywxNiArNDMsMTAgQEAgbmFtZXNwYWNlIEJpbmRpbmdz
IHsKIHR5cGVkZWYgUU11bHRpSGFzaDx2b2lkKiwgUXRJbnN0YW5jZSo+IFFPYmplY3RJbnN0YW5j
ZU1hcDsKIHN0YXRpYyBRT2JqZWN0SW5zdGFuY2VNYXAgY2FjaGVkSW5zdGFuY2VzOwogCi0vLyBD
YWNoZSBKU09iamVjdHMKLXR5cGVkZWYgUUhhc2g8UXRJbnN0YW5jZSosIEpTT2JqZWN0Kj4gSW5z
dGFuY2VKU09iamVjdE1hcDsKLXN0YXRpYyBJbnN0YW5jZUpTT2JqZWN0TWFwIGNhY2hlZE9iamVj
dHM7Ci0KIC8vIERlcml2ZWQgUnVudGltZU9iamVjdAogY2xhc3MgUXRSdW50aW1lT2JqZWN0SW1w
IDogcHVibGljIFJ1bnRpbWVPYmplY3RJbXAgewogcHVibGljOgogICAgIFF0UnVudGltZU9iamVj
dEltcChFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7Ci0gICAgflF0UnVudGltZU9i
amVjdEltcCgpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICBzdGF0aWMg
Y29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApAQCAtNjQsOSArNTgsNiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICBpbnN0YW5jZS0+bWFya0FnZ3JlZ2F0ZShtYXJrU3RhY2spOwogICAgIH0KIAotcHJv
dGVjdGVkOgotICAgIHZvaWQgcmVtb3ZlRnJvbUNhY2hlKCk7Ci0gICAgICAgIAogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4g
JnNfaW5mbzsgfQogfTsKQEAgLTc4LDI1ICs2OSw2IEBAIFF0UnVudGltZU9iamVjdEltcDo6UXRS
dW50aW1lT2JqZWN0SW1wKEUKIHsKIH0KIAotUXRSdW50aW1lT2JqZWN0SW1wOjp+UXRSdW50aW1l
T2JqZWN0SW1wKCkKLXsKLSAgICByZW1vdmVGcm9tQ2FjaGUoKTsKLX0KLQotdm9pZCBRdFJ1bnRp
bWVPYmplY3RJbXA6OmludmFsaWRhdGUoKQotewotICAgIHJlbW92ZUZyb21DYWNoZSgpOwotICAg
IFJ1bnRpbWVPYmplY3RJbXA6OmludmFsaWRhdGUoKTsKLX0KLQotdm9pZCBRdFJ1bnRpbWVPYmpl
Y3RJbXA6OnJlbW92ZUZyb21DYWNoZSgpCi17Ci0gICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsKLSAgICBRdEluc3RhbmNlKiBrZXkgPSBjYWNoZWRPYmplY3RzLmtleSh0aGlz
KTsKLSAgICBpZiAoa2V5KQotICAgICAgICBjYWNoZWRPYmplY3RzLnJlbW92ZShrZXkpOwotfQot
CiAvLyBRdEluc3RhbmNlCiBRdEluc3RhbmNlOjpRdEluc3RhbmNlKFFPYmplY3QqIG8sIFBhc3NS
ZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCwgUVNjcmlwdEVuZ2luZTo6VmFsdWVPd25lcnNo
aXAgb3duZXJzaGlwKQogICAgIDogSW5zdGFuY2Uocm9vdE9iamVjdCkKQEAgLTExMiw3ICs4NCw2
IEBAIFF0SW5zdGFuY2U6On5RdEluc3RhbmNlKCkKIHsKICAgICBKU0xvY2sgbG9jayhTaWxlbmNl
QXNzZXJ0aW9uc09ubHkpOwogCi0gICAgY2FjaGVkT2JqZWN0cy5yZW1vdmUodGhpcyk7CiAgICAg
Y2FjaGVkSW5zdGFuY2VzLnJlbW92ZShtX2hhc2hrZXkpOwogCiAgICAgLy8gY2xlYW4gdXAgKHVu
cHJvdGVjdCBmcm9tIGdjKSB0aGUgSlNWYWx1ZXMgd2UndmUgY3JlYXRlZApAQCAtMTkwLDE2ICsx
NjEsMTAgQEAgQ2xhc3MqIFF0SW5zdGFuY2U6OmdldENsYXNzKCkgY29uc3QKICAgICByZXR1cm4g
bV9jbGFzczsKIH0KIAotUnVudGltZU9iamVjdEltcCogUXRJbnN0YW5jZTo6Y3JlYXRlUnVudGlt
ZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMpCitSdW50aW1lT2JqZWN0SW1wKiBRdEluc3RhbmNlOjpu
ZXdSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0xvY2sgbG9jayhTaWxl
bmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIFJ1bnRpbWVPYmplY3RJbXAqIHJldCA9IHN0YXRpY19j
YXN0PFJ1bnRpbWVPYmplY3RJbXAqPihjYWNoZWRPYmplY3RzLnZhbHVlKHRoaXMpKTsKLSAgICBp
ZiAoIXJldCkgewotICAgICAgICByZXQgPSBuZXcgKGV4ZWMpIFF0UnVudGltZU9iamVjdEltcChl
eGVjLCB0aGlzKTsKLSAgICAgICAgY2FjaGVkT2JqZWN0cy5pbnNlcnQodGhpcywgcmV0KTsKLSAg
ICAgICAgcmV0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdEltcCo+KGNhY2hlZE9iamVjdHMu
dmFsdWUodGhpcykpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiBuZXcgKGV4
ZWMpIFF0UnVudGltZU9iamVjdEltcChleGVjLCB0aGlzKTsKIH0KIAogdm9pZCBRdEluc3RhbmNl
OjptYXJrQWdncmVnYXRlKE1hcmtTdGFjayYgbWFya1N0YWNrKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39777</attachid>
            <date>2009-09-18 12:29:31 -0700</date>
            <delta_ts>2009-09-18 12:30:17 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-29351-20090918122929.patch</filename>
            <type>text/plain</type>
            <size>6761</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODUyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMDktMTggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkzMzIKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcyMzE2NTI+IAorICAgICAgICBSRUdSRVNTSU9OIChyNDg0NDYpOiBX
aGlsZSBhIDxzZWxlY3Q+IHBvcHVwIG1lbnUgaXMgb3BlbiwgdGhlCisgICAgICAgIHJlc3Qgb2Yg
dGhlIFdlYlZpZXcgZG9lc24ndCByZXNwb25kIHRvIG1vdXNlIG1vdmUgZXZlbnRzLgorCisgICAg
ICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2xhdGVQb2ludCk6CisgICAgICAgIE5ldyBoZWxwZXIgZnVuY3Rpb24gdGhhdCB0cmFuc2xh
dGVzIGEgcG9pbnQgYmV0d2VlbiBIV05EIGNvb3JkaW5hdGVzLgorICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6OlBvcHVwTWVudTo6c2hvdyk6CisgICAgICAgIFByb3RlY3QgdGhlIFBvcHVwTWVu
dSBpZiBzb21lb25lIHJlbW92ZXMgdGhlIDxzZWxlY3Q+IGluIHJlc3BvbnNlIHRvIGEgbW91c2UK
KyAgICAgICAgZXZlbnQuIEhhbmRsZSBXTV9IT1NUX1dJTkRPV19NT1VTRU1PVkUgZXZlbnRzLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudTo6d25kUHJvYyk6CisgICAgICAg
IGluIHRoZSBXTV9NT1VTRU1PVkUgaGFuZGxlciwgaWYgdGhlIG1vdXNlIGlzIG5vdCBvdmVyIHRo
ZSBwb3B1cCwgcG9zdCBhIAorICAgICAgICBXTV9IT1NUX1dJTkRPV19NT1VTRU1PVkUgZXZlbnQg
c28gdGhhdCB0aGUgaG9zdCB3aW5kb3cgKHRoZSBXZWJWaWV3KSBnZXRzIHRoZQorICAgICAgICBt
b3VzZSBtb3ZlIGV2ZW50LgorCiAyMDA5LTA5LTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAJKHJldmlzaW9uIDQ4NTE5KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIs
MTEgQEAgY29uc3QgaW50IHBvcHVwV2luZG93Qm9yZGVyV2lkdGggPSAxOwogc3RhdGljIExQQ1RT
VFIga1BvcHVwV2luZG93Q2xhc3NOYW1lID0gX1QoIlBvcHVwV2luZG93Q2xhc3MiKTsKIAogLy8g
VGhpcyBpcyB1c2VkIGZyb20gd2l0aGluIG91ciBjdXN0b20gbWVzc2FnZSBwdW1wIHdoZW4gd2Ug
d2FudCB0byBzZW5kIGEKLS8vIFdNX0NIQVIgbWVzc2FnZSB0byB0aGUgd2ViIHZpZXcgYW5kIG5v
dCBoYXZlIG91ciBtZXNzYWdlIHN0b2xlbiBhbmQgc2VudCB0bworLy8gbWVzc2FnZSB0byB0aGUg
d2ViIHZpZXcgYW5kIG5vdCBoYXZlIG91ciBtZXNzYWdlIHN0b2xlbiBhbmQgc2VudCB0bwogLy8g
dGhlIHBvcHVwIHdpbmRvdy4KLXN0YXRpYyBjb25zdCBVSU5UIFdNX0hPU1RfV0lORE9XX0NIQVIg
PSBXTV9VU0VSOworc3RhdGljIGNvbnN0IFVJTlQgV01fSE9TVF9XSU5ET1dfRklSU1QgPSBXTV9V
U0VSOworc3RhdGljIGNvbnN0IFVJTlQgV01fSE9TVF9XSU5ET1dfQ0hBUiA9IFdNX1VTRVIgKyBX
TV9DSEFSOyAKK3N0YXRpYyBjb25zdCBVSU5UIFdNX0hPU1RfV0lORE9XX01PVVNFTU9WRSA9IFdN
X1VTRVIgKyBXTV9NT1VTRU1PVkU7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBhcyBzb29uIGFz
IHByYWN0aWNhbC4KIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FTQ0lJUHJpbnRhYmxlKHVuc2lnbmVk
IGMpCkBAIC03Miw2ICs3NCwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNBU0NJSVByaW50YWJs
ZSh1bnNpCiAgICAgcmV0dXJuIGMgPj0gMHgyMCAmJiBjIDw9IDB4N0U7CiB9CiAKK3N0YXRpYyB2
b2lkIHRyYW5zbGF0ZVBvaW50KExQQVJBTSYgbFBhcmFtLCBIV05EIGZyb20sIEhXTkQgdG8pIHsK
KyAgICBQT0lOVCBwdDsKKyAgICBwdC54ID0gKHNob3J0KUxPV09SRChsUGFyYW0pOworICAgIHB0
LnkgPSAoc2hvcnQpSElXT1JEKGxQYXJhbSk7ICAgIAorICAgIDo6TWFwV2luZG93UG9pbnRzKGZy
b20sIHRvLCAmcHQsIDEpOworICAgIGxQYXJhbSA9IE1BS0VMUEFSQU0ocHQueCwgcHQueSk7Cit9
CisKIFBvcHVwTWVudTo6UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQogICAgIDog
bV9wb3B1cENsaWVudChjbGllbnQpCiAgICAgLCBtX3Njcm9sbGJhcigwKQpAQCAtMTY1LDYgKzE3
NSw5IEBAIHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEYKIAogICAgIG1f
c2hvd1BvcHVwID0gdHJ1ZTsKIAorICAgIC8vIFByb3RlY3QgdGhlIHBvcHVwIG1lbnUgaW4gY2Fz
ZSBpdHMgb3duZXIgaXMgZGVzdHJveWVkIHdoaWxlIHdlJ3JlIHJ1bm5pbmcgdGhlIG1lc3NhZ2Ug
cHVtcC4KKyAgICBSZWZQdHI8UG9wdXBNZW51PiBwcm90ZWN0KHRoaXMpOworCiAgICAgOjpTZXRD
YXB0dXJlKGhvc3RXaW5kb3cpOwogCiAgICAgTVNHIG1zZzsKQEAgLTE3MiwxMSArMTg1LDEyIEBA
IHZvaWQgUG9wdXBNZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEYKIAogICAgIHdoaWxlICg6
OkdldE1lc3NhZ2UoJm1zZywgMCwgMCwgMCkpIHsKICAgICAgICAgc3dpdGNoIChtc2cubWVzc2Fn
ZSkgeworICAgICAgICAgICAgY2FzZSBXTV9IT1NUX1dJTkRPV19NT1VTRU1PVkU6CiAgICAgICAg
ICAgICBjYXNlIFdNX0hPU1RfV0lORE9XX0NIQVI6IAogICAgICAgICAgICAgICAgIGlmIChtc2cu
aHduZCA9PSBtX3BvcHVwKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVzc2FnZSBz
aG91bGQgYmUgc2VudCB0byB0aGUgaG9zdCB3aW5kb3cgYXMgYSBXTV9DSEFSLgorICAgICAgICAg
ICAgICAgICAgICAvLyBUaGlzIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgdG8gdGhlIGhvc3Qgd2lu
ZG93LgogICAgICAgICAgICAgICAgICAgICBtc2cuaHduZCA9IGhvc3RXaW5kb3c7Ci0gICAgICAg
ICAgICAgICAgICAgIG1zZy5tZXNzYWdlID0gV01fQ0hBUjsKKyAgICAgICAgICAgICAgICAgICAg
bXNnLm1lc3NhZ2UgLT0gV01fSE9TVF9XSU5ET1dfRklSU1Q7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0yMDYsMTEgKzIyMCw5IEBAIHZvaWQgUG9wdXBN
ZW51OjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEYKICAgICAgICAgICAgIGNhc2UgV01fTUJVVFRP
TkRPV046CiAgICAgICAgICAgICBjYXNlIFdNX01CVVRUT05VUDoKICAgICAgICAgICAgIGNhc2Ug
V01fTUJVVFRPTkRCTENMSzogewotICAgICAgICAgICAgICAgIFBPSU5UIHB0OwotICAgICAgICAg
ICAgICAgIHB0LnggPSAoc2hvcnQpTE9XT1JEKG1zZy5sUGFyYW0pOwotICAgICAgICAgICAgICAg
IHB0LnkgPSAoc2hvcnQpSElXT1JEKG1zZy5sUGFyYW0pOwotICAgICAgICAgICAgICAgIDo6TWFw
V2luZG93UG9pbnRzKG1zZy5od25kLCBtX3BvcHVwLCAmcHQsIDEpOwotICAgICAgICAgICAgICAg
IG1zZy5sUGFyYW0gPSBNQUtFTFBBUkFNKHB0LngsIHB0LnkpOworICAgICAgICAgICAgICAgIC8v
IFRyYW5zbGF0ZSB0aGUgY29vcmRpbmF0ZS4KKyAgICAgICAgICAgICAgICB0cmFuc2xhdGVQb2lu
dChtc2cubFBhcmFtLCBtc2cuaHduZCwgbV9wb3B1cCk7CisKICAgICAgICAgICAgICAgICBtc2cu
aHduZCA9IG1fcG9wdXA7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC0yMzAsNiArMjQyLDkgQEAgdm9pZCBQb3B1cE1lbnU6OnNob3coY29uc3QgSW50UmVjdCYgciwg
RgogICAgICAgICA6OlRyYW5zbGF0ZU1lc3NhZ2UoJm1zZyk7CiAgICAgICAgIDo6RGlzcGF0Y2hN
ZXNzYWdlKCZtc2cpOwogCisgICAgICAgIGlmICghbV9wb3B1cENsaWVudCkKKyAgICAgICAgICAg
IGJyZWFrOworCiAgICAgICAgIGlmICghbV9zaG93UG9wdXApCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgYWN0aXZlV2luZG93ID0gOjpHZXRBY3RpdmVXaW5kb3coKTsKQEAgLTg4MCw2ICs4
OTUsMTcgQEAgTFJFU1VMVCBQb3B1cE1lbnU6OnduZFByb2MoSFdORCBoV25kLCBVSQogCiAgICAg
ICAgICAgICBSRUNUIGJvdW5kczsKICAgICAgICAgICAgIEdldENsaWVudFJlY3QocG9wdXBIYW5k
bGUoKSwgJmJvdW5kcyk7CisgICAgICAgICAgICBpZiAoITo6UHRJblJlY3QoJmJvdW5kcywgbW91
c2VQb2ludCkgJiYgISh3UGFyYW0gJiBNS19MQlVUVE9OKSAmJiBjbGllbnQoKSkgeworICAgICAg
ICAgICAgICAgIC8vIFdoZW4gdGhlIG1vdXNlIGlzIG5vdCBpbnNpZGUgdGhlIHBvcHVwIG1lbnUg
YW5kIHRoZSBsZWZ0IGJ1dHRvbiBpc24ndCBkb3duLCBqdXN0CisgICAgICAgICAgICAgICAgLy8g
cmVwb3N0IHRoZSBtZXNzYWdlIHRvIHRoZSB3ZWIgdmlldy4KKworICAgICAgICAgICAgICAgIC8v
IFRyYW5zbGF0ZSB0aGUgY29vcmRpbmF0ZS4KKyAgICAgICAgICAgICAgICB0cmFuc2xhdGVQb2lu
dChsUGFyYW0sIG1fcG9wdXAsIGNsaWVudCgpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93
KCkpOworCisgICAgICAgICAgICAgICAgOjpQb3N0TWVzc2FnZShtX3BvcHVwLCBXTV9IT1NUX1dJ
TkRPV19NT1VTRU1PVkUsIHdQYXJhbSwgbFBhcmFtKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKChzaG91bGRIb3RUcmFjayB8fCB3UGFy
YW0gJiBNS19MQlVUVE9OKSAmJiA6OlB0SW5SZWN0KCZib3VuZHMsIG1vdXNlUG9pbnQpKQogICAg
ICAgICAgICAgICAgIHNldEZvY3VzZWRJbmRleChsaXN0SW5kZXhBdFBvaW50KG1vdXNlUG9pbnQp
LCB0cnVlKTsKIApJbmRleDogV2ViS2l0RXhhbXBsZVBsdWdpbnMvTmV0c2NhcGVDb2NvYVBsdWdp
bi9tYWluLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0RXhhbXBsZVBsdWdpbnMvTmV0c2NhcGVDb2Nv
YVBsdWdpbi9tYWluLm0JKHJldmlzaW9uIDQ4NTE5KQorKysgV2ViS2l0RXhhbXBsZVBsdWdpbnMv
TmV0c2NhcGVDb2NvYVBsdWdpbi9tYWluLm0JKHdvcmtpbmcgY29weSkKQEAgLTI2Myw2ICsyNjMs
MTAgQEAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZVBsdWdpbihQbHVnaW5PYmplYwogCiBzdGF0aWMg
dm9pZCBoYW5kbGVNb3VzZUV2ZW50KFBsdWdpbk9iamVjdCAqb2JqLCBOUENvY29hRXZlbnQgKmV2
ZW50KQogeworICAgIGlmIChldmVudC0+dHlwZSA9PSBOUENvY29hRXZlbnRNb3VzZVVwKSB7Cisg
ICAgICAgIE5TQmVlcCgpOworICAgIH0KKyAgICAKICAgICBOU1N0cmluZyAqc3RyaW5nID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJUeXBlOiAlQFxuIgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vZGlmaWVyIGZsYWdzOiAweCV4XG4i
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29v
cmRpbmF0ZXM6ICglZywgJWcpXG4iCkluZGV4OiBXZWJLaXRFeGFtcGxlUGx1Z2lucy9OZXRzY2Fw
ZUNvY29hUGx1Z2luL05ldHNjYXBlQ29jb2FQbHVnaW4ueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXRFeGFtcGxlUGx1Z2lucy9OZXRzY2FwZUNvY29hUGx1Z2lu
L05ldHNjYXBlQ29jb2FQbHVnaW4ueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
NDg1MTkpCisrKyBXZWJLaXRFeGFtcGxlUGx1Z2lucy9OZXRzY2FwZUNvY29hUGx1Z2luL05ldHNj
YXBlQ29jb2FQbHVnaW4ueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTkyLDEyICsxOTIsMTMgQEAKIAkJMTQ5QzI5ODgwODkwMkM1MzAwOEE5RUZDIC8qIERlYnVn
ICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQlidWlsZFNldHRpbmdz
ID0gewotCQkJCUFSQ0hTID0gIiQoQVJDSFNfU1RBTkRBUkRfMzJfNjRfQklUX1BSRV9YQ09ERV8z
XzEpIjsKKwkJCQlBUkNIUyA9ICIkKE9OTFlfQUNUSVZFX0FSQ0hfUFJFX1hDT0RFXzNfMSkiOwog
CQkJCUFSQ0hTX1NUQU5EQVJEXzMyXzY0X0JJVF9QUkVfWENPREVfM18xID0gInBwYyBpMzg2IHBw
YzY0IHg4Nl82NCI7CiAJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVM7CiAJCQkJ
R0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU9OTFlfQUNUSVZFX0FSQ0hfUFJF
X1hDT0RFXzNfMSA9ICIkKE5BVElWRV9BUkNIKSI7CiAJCQkJUFJFQklORElORyA9IE5POwotCQkJ
CVNES1JPT1QgPSAvRGV2ZWxvcGVyL1NES3MvTWFjT1NYMTAuNS5zZGs7CisJCQkJU0RLUk9PVCA9
ICIiOwogCQkJfTsKIAkJCW5hbWUgPSBEZWJ1ZzsKIAkJfTs=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39785</attachid>
            <date>2009-09-18 13:37:48 -0700</date>
            <delta_ts>2009-09-18 15:12:25 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>buildfix.patch</filename>
            <type>text/plain</type>
            <size>1578</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2MxNjY1Zi4uNWVkOWVlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0wOS0xOCAgQ3NhYmEgT3N6dHJv
Z29uYWMgIDxvc3ppQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEJ1aWxkZml4IGNhdXNlZCBieSBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC80ODUxMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkzNTEKKworICAgICAgICAqIGJyaWRnZS9xdC9xdF9pbnN0
YW5jZS5oOiBjcmVhdGVSdW50aW1lT2JqZWN0IG1ldGhvZCByZW5hbWVkIHRvIG5ld1J1bnRpbWVP
YmplY3QuCisgICAgICAgICogYnJpZGdlL3J1bnRpbWUuaDogVmlzaWJpbGl0eSBvZiBuZXdSdW50
aW1lT2JqZWN0IG1ldGhvZCBtb2RpZmllZCB0byBwcm90ZWN0ZWQuCisKIDIwMDktMDktMTggIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmggYi9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5oCmluZGV4IGMyNzZiMjkuLjAwYWFhNWIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmgKKysrIGIvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfaW5zdGFuY2UuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgflF0
SW5zdGFuY2UoKTsKIAogICAgIHZpcnR1YWwgQ2xhc3MqIGdldENsYXNzKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBSdW50aW1lT2JqZWN0SW1wKiBjcmVhdGVSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSop
OworICAgIHZpcnR1YWwgUnVudGltZU9iamVjdEltcCogbmV3UnVudGltZU9iamVjdChFeGVjU3Rh
dGUqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCBlbmQo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWUuaCBiL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWUuaAppbmRleCA3MmVlMzg3Li42NjgyYTk3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lLmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZS5oCkBAIC0xMTksMTIg
KzExOSwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHZpcnR1YWxC
ZWdpbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFsRW5kKCkgeyB9CisgICAgdmlydHVh
bCBSdW50aW1lT2JqZWN0SW1wKiBuZXdSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSopOwogCiAgICAg
UmVmUHRyPFJvb3RPYmplY3Q+IF9yb290T2JqZWN0OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
UnVudGltZU9iamVjdEltcCogbmV3UnVudGltZU9iamVjdChFeGVjU3RhdGUqKTsKLQogICAgIFJ1
bnRpbWVPYmplY3RJbXAqIG1fcnVudGltZU9iamVjdDsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>