<?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>100877</bug_id>
          
          <creation_ts>2012-10-31 12:32:32 -0700</creation_ts>
          <short_desc>MarkedBlocks should use something other than the mark bits to indicate liveness for newly allocated objects</short_desc>
          <delta_ts>2012-11-02 15:14:55 -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>JavaScriptCore</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755545</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-31 12:32:32 -0700</bug_when>
    <thetext>Currently when we canonicalize cell liveness data in MarkedBlocks, we set the mark bit for every cell in the block except for those in the free list. This allows us to consider objects that were allocated since the previous collection to be considered live until they have a chance to be properly marked by the collector.

If we want to use the mark bits to signify other types of information, e.g. using sticky mark bits for generational collection, we will have to keep track of newly allocated objects in a different fashion when we canonicalize cell liveness.

One method would be to allocate a separate set of bits while canonicalizing liveness data. These bits would track the newly allocated objects in the block separately from those objects who had already been marked. We would then check these bits, along with the mark bits, when determining liveness. At the end of the conservative scan, we then throw away these Bitmaps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755552</commentid>
    <comment_count>1</comment_count>
      <attachid>171705</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-10-31 12:40:14 -0700</bug_when>
    <thetext>Created attachment 171705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757481</commentid>
    <comment_count>2</comment_count>
      <attachid>172113</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-02 12:43:35 -0700</bug_when>
    <thetext>Created attachment 172113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757497</commentid>
    <comment_count>3</comment_count>
      <attachid>172113</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-02 12:53:49 -0700</bug_when>
    <thetext>Comment on attachment 172113
Patch

Attachment 172113 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14714023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757502</commentid>
    <comment_count>4</comment_count>
      <attachid>172113</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-02 12:58:33 -0700</bug_when>
    <thetext>Comment on attachment 172113
Patch

Attachment 172113 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14714026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757512</commentid>
    <comment_count>5</comment_count>
      <attachid>172121</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-11-02 13:06:09 -0700</bug_when>
    <thetext>Created attachment 172121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757656</commentid>
    <comment_count>6</comment_count>
      <attachid>172121</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 15:14:52 -0700</bug_when>
    <thetext>Comment on attachment 172121
Patch

Clearing flags on attachment: 172121

Committed r133358: &lt;http://trac.webkit.org/changeset/133358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757657</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 15:14:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171705</attachid>
            <date>2012-10-31 12:40:14 -0700</date>
            <delta_ts>2012-11-02 12:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100877-20121031123837.patch</filename>
            <type>text/plain</type>
            <size>10451</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzMDU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTEwLTMxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTWFya2VkQmxvY2tzIHNob3VsZCB1c2Ugc29tZXRoaW5nIG90aGVyIHRoYW4gdGhl
IG1hcmsgYml0cyB0byBpbmRpY2F0ZSBsaXZlbmVzcyBmb3IgbmV3bHkgYWxsb2NhdGVkIG9iamVj
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB3aGVuIHdlIGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzIGRhdGEgaW4gTWFya2VkQmxv
Y2tzLCB3ZSBzZXQgdGhlIG1hcmsgYml0IGZvciBldmVyeSBjZWxsIGluIHRoZSAKKyAgICAgICAg
YmxvY2sgZXhjZXB0IGZvciB0aG9zZSBpbiB0aGUgZnJlZSBsaXN0LiBUaGlzIGFsbG93cyB1cyB0
byBjb25zaWRlciBvYmplY3RzIHRoYXQgd2VyZSBhbGxvY2F0ZWQgc2luY2UgdGhlIAorICAgICAg
ICBwcmV2aW91cyBjb2xsZWN0aW9uIHRvIGJlIGNvbnNpZGVyZWQgbGl2ZSB1bnRpbCB0aGV5IGhh
dmUgYSBjaGFuY2UgdG8gYmUgcHJvcGVybHkgbWFya2VkIGJ5IHRoZSBjb2xsZWN0b3IuCisKKyAg
ICAgICAgSWYgd2Ugd2FudCB0byB1c2UgdGhlIG1hcmsgYml0cyB0byBzaWduaWZ5IG90aGVyIHR5
cGVzIG9mIGluZm9ybWF0aW9uLCBlLmcuIHVzaW5nIHN0aWNreSBtYXJrIGJpdHMgZm9yIGdlbmVy
YXRpb25hbCAKKyAgICAgICAgY29sbGVjdGlvbiwgd2Ugd2lsbCBoYXZlIHRvIGtlZXAgdHJhY2sg
b2YgbmV3bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gYSBkaWZmZXJlbnQgZmFzaGlvbiB3aGVuIHdl
IGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzLgorCisgICAgICAgIE9uZSBtZXRob2Qgd291bGQg
YmUgdG8gYWxsb2NhdGUgYSBzZXBhcmF0ZSBzZXQgb2YgYml0cyB3aGlsZSBjYW5vbmljYWxpemlu
ZyBsaXZlbmVzcyBkYXRhLiBUaGVzZSBiaXRzIHdvdWxkIAorICAgICAgICB0cmFjayB0aGUgbmV3
bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gdGhlIGJsb2NrIHNlcGFyYXRlbHkgZnJvbSB0aG9zZSBv
YmplY3RzIHdobyBoYWQgYWxyZWFkeSBiZWVuIG1hcmtlZC4gV2Ugd291bGQgCisgICAgICAgIHRo
ZW4gY2hlY2sgdGhlc2UgYml0cywgYWxvbmcgd2l0aCB0aGUgbWFyayBiaXRzLCB3aGVuIGRldGVy
bWluaW5nIGxpdmVuZXNzLiBBdCB0aGUgZW5kIG9mIHRoZSBjb25zZXJ2YXRpdmUgc2NhbiwgCisg
ICAgICAgIHdlIHRoZW4gdGhyb3cgYXdheSB0aGVzZSBCaXRtYXBzLgorCisgICAgICAgICogaGVh
cC9IZWFwLmg6CisgICAgICAgIChIZWFwKToKKyAgICAgICAgKEpTQzo6SGVhcDo6aXNMaXZlKTog
V2Ugbm93IGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIG5ld2x5QWxsb2NhdGVkIEJpdG1h
cC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpzcGVjaWFsaXplZFN3ZWVwKTogV2UgY2xlYXIgdGhlIG5l
d2x5QWxsb2NhdGVkIEJpdG1hcCBpZiB3ZSdyZSBjcmVhdGluZyBhIGZyZWUgbGlzdC4gVGhpcyAK
KyAgICAgICAgd2lsbCBoYXBwZW4gaWYgd2UgY2Fub25pY2FsaXplIGxpdmVuZXNzIGRhdGEgZm9y
IHNvbWUgb3RoZXIgcmVhc29uIHRoYW4gY29sbGVjdGlvbiAoZS5nLiBmb3JFYWNoQ2VsbCkgYW5k
IAorICAgICAgICB0aGVuIHN0YXJ0IGFsbG9jYXRpbmcgYWdhaW4uCisgICAgICAgIChKU0M6OlNl
dE5ld2x5QWxsb2NhdGVkRnVuY3Rvcjo6U2V0TmV3bHlBbGxvY2F0ZWRGdW5jdG9yKTogCisgICAg
ICAgIChTZXROZXdseUFsbG9jYXRlZEZ1bmN0b3IpOgorICAgICAgICAoSlNDOjpTZXROZXdseUFs
bG9jYXRlZEZ1bmN0b3I6Om9wZXJhdG9yKCkpOiBXZSBzZXQgdGhlIG5ld2x5QWxsb2NhdGVkIGJp
dHMgZm9yIGFsbCB0aGUgb2JqZWN0cyAKKyAgICAgICAgdGhhdCBhcmVuJ3QgYWxyZWFkeSBtYXJr
ZWQuIFdlIHVuZG8gdGhlIGJpdHMgZm9yIHRoZSBvYmplY3RzIGluIHRoZSBmcmVlIGxpc3QgbGF0
ZXIgaW4gY2Fub25pY2FsaXplQ2VsbExpdmVuZXNzRGF0YS4KKyAgICAgICAgKEpTQzo6TWFya2Vk
QmxvY2s6OmNhbm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEpOiBXZSBzaG91bGQgbmV2ZXIgaGF2
ZSBhIEZyZWVMaXN0ZWQgYmxvY2sgd2l0aCBhIG5ld2x5QWxsb2NhdGVkIEJpdG1hcC4KKyAgICAg
ICAgV2UgYWxsb2NhdGUgdGhlIG5ldyBCaXRtYXAsIHNldCB0aGUgYml0cyBmb3IgYWxsIHRoZSBv
YmplY3RzIHRoYXQgYXJlbid0IGFscmVhZHkgbWFya2VkLCBhbmQgdGhlbiB1bnNldCBhbGwgb2Yg
dGhlIAorICAgICAgICBiaXRzIGZvciB0aGUgaXRlbXMgY3VycmVudGx5IGluIHRoZSBGcmVlTGlz
dC4KKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAgICAgIChKU0M6Ok1hcmtlZEJs
b2NrOjpjbGVhck1hcmtzKTogV2UgY2xlYXIgdGhlIG5ld2x5QWxsb2NhdGVkIGJpdG1hcCBpZiBp
dCBleGlzdHMgYmVjYXVzZSBhdCB0aGlzIHBvaW50IHdlIGRvbid0IG5lZWQgaXQKKyAgICAgICAg
YW55IG1vcmUuCisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjppc0VtcHR5KTogSWYgd2UgaGF2
ZSBzb21lIG9iamVjdHMgdGhhdCBhcmUgbmV3bHlBbGxvY2F0ZWQsIHdlIGFyZSBub3QgZW1wdHku
CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjppc05ld2x5QWxsb2NhdGVkKTogCisgICAgICAg
IChKU0MpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6c2V0TmV3bHlBbGxvY2F0ZWQpOgor
ICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Y2xlYXJOZXdseUFsbG9jYXRlZCk6CisgICAgICAg
IChKU0M6Ok1hcmtlZEJsb2NrOjppc0xpdmUpOiBXZSBub3cgY2hlY2sgdGhlIG5ld2x5QWxsb2Nh
dGVkIEJpdG1hcCwgaWYgaXQgZXhpc3RzLCB3aGVuIGRldGVybWluaW5nIGxpdmVuZXNzIG9mIGEg
Y2VsbCBpbiAKKyAgICAgICAgYSBibG9jayB0aGF0IGlzIE1hcmtlZC4KKyAgICAgICAgKiBoZWFw
L1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0M6OldlYWtCbG9jazo6dmlzaXQpOiBXZSBuZWVk
IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBmaW5hbGl6ZSBvYmplY3RzIHRoYXQgYXJlIGluIHRoZSBu
ZXdseUFsbG9jYXRlZCBCaXRtYXAuCisgICAgICAgIChKU0M6OldlYWtCbG9jazo6cmVhcCk6IERp
dHRvLgorCiAyMDEyLTEwLTMwICBZdXFpYW5nIFhpYW4gIDx5dXFpYW5nLnhpYW5AaW50ZWwuY29t
PgogCiAgICAgICAgIGdsc2wtZnVuY3Rpb24tYXRhbi5odG1sIFdlYkdMIGNvbmZvcm1hbmNlIHRl
c3QgZmFpbHMgYWZ0ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5
MTU0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMzI5NzkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2
LDYgKzg2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIG91ciBzY2FuIHRvIHJ1biBm
YXN0ZXIuIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc190aW1lQ2hlY2tSZXNvbHV0
aW9uID0gMTY7CiAKKyAgICAgICAgc3RhdGljIGJvb2wgaXNMaXZlKGNvbnN0IHZvaWQqKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgaXNNYXJrZWQoY29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMg
Ym9vbCB0ZXN0QW5kU2V0TWFya2VkKGNvbnN0IHZvaWQqKTsKICAgICAgICAgc3RhdGljIHZvaWQg
c2V0TWFya2VkKGNvbnN0IHZvaWQqKTsKQEAgLTMwNSw2ICszMDYsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHJldHVybiBoZWFwKHYuYXNDZWxsKCkpOwogICAgIH0KIAorICAgIGlubGlu
ZSBib29sIEhlYXA6OmlzTGl2ZShjb25zdCB2b2lkKiBjZWxsKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+aXNMaXZlQ2VsbChjZWxsKTsKKyAgICB9
CisKICAgICBpbmxpbmUgYm9vbCBIZWFwOjppc01hcmtlZChjb25zdCB2b2lkKiBjZWxsKQogICAg
IHsKICAgICAgICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+aXNNYXJrZWQo
Y2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3Bw
CShyZXZpc2lvbiAxMzI5NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDExICs3OCwxMSBAQCBNYXJrZWRCbG9jazo6
RnJlZUxpc3QgTWFya2VkQmxvY2s6OnNwZWNpCiAgICAgRnJlZUNlbGwqIGhlYWQgPSAwOwogICAg
IHNpemVfdCBjb3VudCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0QXRvbSgpOyBpIDwg
bV9lbmRBdG9tOyBpICs9IG1fYXRvbXNQZXJDZWxsKSB7Ci0gICAgICAgIGlmIChibG9ja1N0YXRl
ID09IE1hcmtlZCAmJiBtX21hcmtzLmdldChpKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAg
ICAgICAgIEpTQ2VsbCogY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpTQ2VsbCo+KCZhdG9t
cygpW2ldKTsKIAorICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PSBNYXJrZWQgJiYgaXNMaXZlKGNl
bGwpKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgaWYgKGR0b3JUeXBlICE9IE1h
cmtlZEJsb2NrOjpOb25lICYmIGJsb2NrU3RhdGUgIT0gTmV3KQogICAgICAgICAgICAgY2FsbERl
c3RydWN0b3IoY2VsbCk7CiAKQEAgLTk0LDYgKzk0LDExIEBAIE1hcmtlZEJsb2NrOjpGcmVlTGlz
dCBNYXJrZWRCbG9jazo6c3BlY2kKICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIFdlIG9ubHkg
d2FudCB0byBkaXNjYXJkIHRoZSBuZXdseUFsbG9jYXRlZCBiaXRzIGlmIHdlJ3JlIGNyZWF0aW5n
IGEgRnJlZUxpc3QsCisgICAgLy8gb3RoZXJ3aXNlIHdlIHdvdWxkIGxvc2UgaW5mb3JtYXRpb24g
b24gd2hhdCdzIGN1cnJlbnRseSBhbGl2ZS4KKyAgICBpZiAoc3dlZXBNb2RlID09IFN3ZWVwVG9G
cmVlTGlzdCAmJiBtX25ld2x5QWxsb2NhdGVkKQorICAgICAgICBtX25ld2x5QWxsb2NhdGVkLmNs
ZWFyKCk7CisKICAgICBtX3N0YXRlID0gKChzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVMaXN0KSA/
IEZyZWVMaXN0ZWQgOiBNYXJrZWQpOwogICAgIHJldHVybiBGcmVlTGlzdChoZWFkLCBjb3VudCAq
IGNlbGxTaXplKCkpOwogfQpAQCAtMTM4LDEyICsxNDMsMjQgQEAgTWFya2VkQmxvY2s6OkZyZWVM
aXN0IE1hcmtlZEJsb2NrOjpzd2VlcAogICAgIHJldHVybiBGcmVlTGlzdCgpOwogfQogCi1jbGFz
cyBTZXRBbGxNYXJrc0Z1bmN0b3IgOiBwdWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsK
K2NsYXNzIFNldE5ld2x5QWxsb2NhdGVkRnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9p
ZEZ1bmN0b3IgewogcHVibGljOgorICAgIFNldE5ld2x5QWxsb2NhdGVkRnVuY3RvcihNYXJrZWRC
bG9jayogYmxvY2spCisgICAgICAgIDogbV9ibG9jayhibG9jaykKKyAgICB7CisgICAgfQorCiAg
ICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2VsbCkKICAgICB7Ci0gICAgICAgIE1hcmtlZEJs
b2NrOjpibG9ja0ZvcihjZWxsKS0+c2V0TWFya2VkKGNlbGwpOworICAgICAgICBBU1NFUlQoTWFy
a2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpID09IG1fYmxvY2spOworICAgICAgICBpZiAobV9ibG9j
ay0+aXNNYXJrZWQoY2VsbCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9ibG9j
ay0+c2V0TmV3bHlBbGxvY2F0ZWQoY2VsbCk7CiAgICAgfQorCitwcml2YXRlOgorICAgIE1hcmtl
ZEJsb2NrKiBtX2Jsb2NrOwogfTsKIAogdm9pZCBNYXJrZWRCbG9jazo6Y2Fub25pY2FsaXplQ2Vs
bExpdmVuZXNzRGF0YShjb25zdCBGcmVlTGlzdCYgZnJlZUxpc3QpCkBAIC0xNjgsMTQgKzE4NSwx
NyBAQCB2b2lkIE1hcmtlZEJsb2NrOjpjYW5vbmljYWxpemVDZWxsTGl2ZW5lCiAgICAgLy8gYWxs
b2NhdGVkIGZyb20gb3VyIGZyZWUgbGlzdCBhcmUgbm90IGN1cnJlbnRseSBtYXJrZWQsIHNvIHdl
IG5lZWQgYW5vdGhlcgogICAgIC8vIHdheSB0byB0ZWxsIHdoYXQncyBsaXZlIHZzIGRlYWQuIAog
ICAgIAotICAgIFNldEFsbE1hcmtzRnVuY3RvciBmdW5jdG9yOworICAgIEFTU0VSVCghbV9uZXds
eUFsbG9jYXRlZCk7CisgICAgbV9uZXdseUFsbG9jYXRlZCA9IGFkb3B0UHRyKG5ldyBXVEY6OkJp
dG1hcDxhdG9tc1BlckJsb2NrLCBXVEY6OkJpdG1hcE5vdEF0b21pYz4oKSk7CisKKyAgICBTZXRO
ZXdseUFsbG9jYXRlZEZ1bmN0b3IgZnVuY3Rvcih0aGlzKTsKICAgICBmb3JFYWNoQ2VsbChmdW5j
dG9yKTsKIAogICAgIEZyZWVDZWxsKiBuZXh0OwogICAgIGZvciAoRnJlZUNlbGwqIGN1cnJlbnQg
PSBoZWFkOyBjdXJyZW50OyBjdXJyZW50ID0gbmV4dCkgewogICAgICAgICBuZXh0ID0gY3VycmVu
dC0+bmV4dDsKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihjdXJyZW50KS0+emFw
KCk7Ci0gICAgICAgIGNsZWFyTWFya2VkKGN1cnJlbnQpOworICAgICAgICBjbGVhck5ld2x5QWxs
b2NhdGVkKGN1cnJlbnQpOwogICAgIH0KICAgICAKICAgICBtX3N0YXRlID0gTWFya2VkOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCShyZXZpc2lvbiAxMzI5
NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTksNiArMTU5LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IHNldE1hcmtlZChjb25zdCB2b2lkKik7CiAgICAgICAgIHZvaWQgY2xlYXJNYXJrZWQoY29uc3Qg
dm9pZCopOwogCisgICAgICAgIGJvb2wgaXNOZXdseUFsbG9jYXRlZChjb25zdCB2b2lkKik7Cisg
ICAgICAgIHZvaWQgc2V0TmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCopOworICAgICAgICB2b2lk
IGNsZWFyTmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCopOworCiAgICAgICAgIGJvb2wgbmVlZHNT
d2VlcGluZygpOwogCiAjaWYgRU5BQkxFKEdHQykKQEAgLTIxOCw2ICsyMjIsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICNlbHNlCiAgICAgICAgIFdURjo6Qml0bWFwPGF0b21zUGVyQmxvY2ssIFdURjo6
Qml0bWFwTm90QXRvbWljPiBtX21hcmtzOwogI2VuZGlmCisKKyAgICAgICAgT3duUHRyPFdURjo6
Qml0bWFwPGF0b21zUGVyQmxvY2ssIFdURjo6Qml0bWFwTm90QXRvbWljPiA+IG1fbmV3bHlBbGxv
Y2F0ZWQ7CisKICAgICAgICAgRGVzdHJ1Y3RvclR5cGUgbV9kZXN0cnVjdG9yVHlwZTsKICAgICAg
ICAgTWFya2VkQWxsb2NhdG9yKiBtX2FsbG9jYXRvcjsKICAgICAgICAgQmxvY2tTdGF0ZSBtX3N0
YXRlOwpAQCAtMzEzLDYgKzMyMCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEFTU0VS
VChtX3N0YXRlICE9IE5ldyAmJiBtX3N0YXRlICE9IEZyZWVMaXN0ZWQpOwogICAgICAgICBtX21h
cmtzLmNsZWFyQWxsKCk7CisgICAgICAgIGlmIChtX25ld2x5QWxsb2NhdGVkKQorICAgICAgICAg
ICAgbV9uZXdseUFsbG9jYXRlZC5jbGVhcigpOwogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBiZWNv
bWUgdHJ1ZSBhdCB0aGUgZW5kIG9mIHRoZSBtYXJrIHBoYXNlLiBXZSBzZXQgaXQgbm93IHRvCiAg
ICAgICAgIC8vIGF2b2lkIGFuIGV4dHJhIHBhc3MgdG8gZG8gc28gbGF0ZXIuCkBAIC0zMjYsNyAr
MzM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBpbmxpbmUgYm9vbCBNYXJrZWRCbG9jazo6
aXNFbXB0eSgpCiAgICAgewotICAgICAgICByZXR1cm4gbV9tYXJrcy5pc0VtcHR5KCkgJiYgbV93
ZWFrU2V0LmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIG1fbWFya3MuaXNFbXB0eSgpICYmIG1f
d2Vha1NldC5pc0VtcHR5KCkgJiYgKCFtX25ld2x5QWxsb2NhdGVkIHx8IG1fbmV3bHlBbGxvY2F0
ZWQtPmlzRW1wdHkoKSk7CiAgICAgfQogCiAgICAgaW5saW5lIHNpemVfdCBNYXJrZWRCbG9jazo6
Y2VsbFNpemUoKQpAQCAtMzc1LDYgKzM4NCwyNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
bV9tYXJrcy5jbGVhcihhdG9tTnVtYmVyKHApKTsKICAgICB9CiAKKyAgICBpbmxpbmUgYm9vbCBN
YXJrZWRCbG9jazo6aXNOZXdseUFsbG9jYXRlZChjb25zdCB2b2lkKiBwKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKG1fbmV3bHlBbGxvY2F0ZWQpOworICAgICAgICByZXR1cm4gbV9uZXdseUFsbG9j
YXRlZC0+Z2V0KGF0b21OdW1iZXIocCkpOworICAgIH0KKworICAgIGlubGluZSB2b2lkIE1hcmtl
ZEJsb2NrOjpzZXROZXdseUFsbG9jYXRlZChjb25zdCB2b2lkKiBwKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKG1fbmV3bHlBbGxvY2F0ZWQpOworICAgICAgICBtX25ld2x5QWxsb2NhdGVkLT5zZXQo
YXRvbU51bWJlcihwKSk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgTWFya2VkQmxvY2s6OmNs
ZWFyTmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCogcCkKKyAgICB7CisgICAgICAgIEFTU0VSVCht
X25ld2x5QWxsb2NhdGVkKTsKKyAgICAgICAgQVNTRVJUKGlzTmV3bHlBbGxvY2F0ZWQocCkpOwor
ICAgICAgICBtX25ld2x5QWxsb2NhdGVkLT5jbGVhcihhdG9tTnVtYmVyKHApKTsKKyAgICB9CisK
ICAgICBpbmxpbmUgYm9vbCBNYXJrZWRCbG9jazo6aXNMaXZlKGNvbnN0IEpTQ2VsbCogY2VsbCkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9zdGF0ZSkgewpAQCAtMzgyLDcgKzQxMCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgY2FzZSBN
YXJrZWQ6Ci0gICAgICAgICAgICByZXR1cm4gbV9tYXJrcy5nZXQoYXRvbU51bWJlcihjZWxsKSk7
CisgICAgICAgICAgICByZXR1cm4gbV9tYXJrcy5nZXQoYXRvbU51bWJlcihjZWxsKSkgfHwgKG1f
bmV3bHlBbGxvY2F0ZWQgJiYgaXNOZXdseUFsbG9jYXRlZChjZWxsKSk7CiAKICAgICAgICAgY2Fz
ZSBOZXc6CiAgICAgICAgIGNhc2UgRnJlZUxpc3RlZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAkocmV2aXNpb24gMTMyOTc5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEw
Miw3IEBAIHZvaWQgV2Vha0Jsb2NrOjp2aXNpdChIZWFwUm9vdFZpc2l0b3ImIGgKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGNvbnN0IEpTVmFsdWUmIGpzVmFsdWUgPSB3ZWFrSW1w
bC0+anNWYWx1ZSgpOwotICAgICAgICBpZiAoSGVhcDo6aXNNYXJrZWQoanNWYWx1ZS5hc0NlbGwo
KSkpCisgICAgICAgIGlmIChIZWFwOjppc0xpdmUoanNWYWx1ZS5hc0NlbGwoKSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBXZWFrSGFuZGxlT3duZXIqIHdlYWtIYW5kbGVPd25l
ciA9IHdlYWtJbXBsLT53ZWFrSGFuZGxlT3duZXIoKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lk
IFdlYWtCbG9jazo6cmVhcCgpCiAgICAgICAgIGlmICh3ZWFrSW1wbC0+c3RhdGUoKSA+IFdlYWtJ
bXBsOjpEZWFkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKEhlYXA6Omlz
TWFya2VkKHdlYWtJbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpKSB7CisgICAgICAgIGlmIChIZWFw
Ojppc0xpdmUod2Vha0ltcGwtPmpzVmFsdWUoKS5hc0NlbGwoKSkpIHsKICAgICAgICAgICAgIEFT
U0VSVCh3ZWFrSW1wbC0+c3RhdGUoKSA9PSBXZWFrSW1wbDo6TGl2ZSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172113</attachid>
            <date>2012-11-02 12:43:35 -0700</date>
            <delta_ts>2012-11-02 13:06:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100877-20121102124155.patch</filename>
            <type>text/plain</type>
            <size>9940</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzMjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDEyLTEwLTMxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTWFya2VkQmxvY2tzIHNob3VsZCB1c2Ugc29tZXRoaW5nIG90aGVyIHRoYW4gdGhl
IG1hcmsgYml0cyB0byBpbmRpY2F0ZSBsaXZlbmVzcyBmb3IgbmV3bHkgYWxsb2NhdGVkIG9iamVj
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB3aGVuIHdlIGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzIGRhdGEgaW4gTWFya2VkQmxv
Y2tzLCB3ZSBzZXQgdGhlIG1hcmsgYml0IGZvciBldmVyeSBjZWxsIGluIHRoZSAKKyAgICAgICAg
YmxvY2sgZXhjZXB0IGZvciB0aG9zZSBpbiB0aGUgZnJlZSBsaXN0LiBUaGlzIGFsbG93cyB1cyB0
byBjb25zaWRlciBvYmplY3RzIHRoYXQgd2VyZSBhbGxvY2F0ZWQgc2luY2UgdGhlIAorICAgICAg
ICBwcmV2aW91cyBjb2xsZWN0aW9uIHRvIGJlIGNvbnNpZGVyZWQgbGl2ZSB1bnRpbCB0aGV5IGhh
dmUgYSBjaGFuY2UgdG8gYmUgcHJvcGVybHkgbWFya2VkIGJ5IHRoZSBjb2xsZWN0b3IuCisKKyAg
ICAgICAgSWYgd2Ugd2FudCB0byB1c2UgdGhlIG1hcmsgYml0cyB0byBzaWduaWZ5IG90aGVyIHR5
cGVzIG9mIGluZm9ybWF0aW9uLCBlLmcuIHVzaW5nIHN0aWNreSBtYXJrIGJpdHMgZm9yIGdlbmVy
YXRpb25hbCAKKyAgICAgICAgY29sbGVjdGlvbiwgd2Ugd2lsbCBoYXZlIHRvIGtlZXAgdHJhY2sg
b2YgbmV3bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gYSBkaWZmZXJlbnQgZmFzaGlvbiB3aGVuIHdl
IGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzLgorCisgICAgICAgIE9uZSBtZXRob2Qgd291bGQg
YmUgdG8gYWxsb2NhdGUgYSBzZXBhcmF0ZSBzZXQgb2YgYml0cyB3aGlsZSBjYW5vbmljYWxpemlu
ZyBsaXZlbmVzcyBkYXRhLiBUaGVzZSBiaXRzIHdvdWxkIAorICAgICAgICB0cmFjayB0aGUgbmV3
bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gdGhlIGJsb2NrIHNlcGFyYXRlbHkgZnJvbSB0aG9zZSBv
YmplY3RzIHdobyBoYWQgYWxyZWFkeSBiZWVuIG1hcmtlZC4gV2Ugd291bGQgCisgICAgICAgIHRo
ZW4gY2hlY2sgdGhlc2UgYml0cywgYWxvbmcgd2l0aCB0aGUgbWFyayBiaXRzLCB3aGVuIGRldGVy
bWluaW5nIGxpdmVuZXNzLiAKKworICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSGVh
cCk6CisgICAgICAgIChKU0M6OkhlYXA6OmlzTGl2ZSk6IFdlIG5vdyBjaGVjayBmb3IgdGhlIHBy
ZXNlbmNlIG9mIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAuCisgICAgICAgIChKU0MpOgorICAg
ICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6
c3BlY2lhbGl6ZWRTd2VlcCk6IFdlIGNsZWFyIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAgaWYg
d2UncmUgY3JlYXRpbmcgYSBmcmVlIGxpc3QuIFRoaXMgCisgICAgICAgIHdpbGwgaGFwcGVuIGlm
IHdlIGNhbm9uaWNhbGl6ZSBsaXZlbmVzcyBkYXRhIGZvciBzb21lIG90aGVyIHJlYXNvbiB0aGFu
IGNvbGxlY3Rpb24gKGUuZy4gZm9yRWFjaENlbGwpIGFuZCAKKyAgICAgICAgdGhlbiBzdGFydCBh
bGxvY2F0aW5nIGFnYWluLgorICAgICAgICAoSlNDOjpTZXROZXdseUFsbG9jYXRlZEZ1bmN0b3I6
OlNldE5ld2x5QWxsb2NhdGVkRnVuY3Rvcik6IAorICAgICAgICAoU2V0TmV3bHlBbGxvY2F0ZWRG
dW5jdG9yKToKKyAgICAgICAgKEpTQzo6U2V0TmV3bHlBbGxvY2F0ZWRGdW5jdG9yOjpvcGVyYXRv
cigpKTogV2Ugc2V0IHRoZSBuZXdseUFsbG9jYXRlZCBiaXRzIGZvciBhbGwgdGhlIG9iamVjdHMg
CisgICAgICAgIHRoYXQgYXJlbid0IGFscmVhZHkgbWFya2VkLiBXZSB1bmRvIHRoZSBiaXRzIGZv
ciB0aGUgb2JqZWN0cyBpbiB0aGUgZnJlZSBsaXN0IGxhdGVyIGluIGNhbm9uaWNhbGl6ZUNlbGxM
aXZlbmVzc0RhdGEuCisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjYW5vbmljYWxpemVDZWxs
TGl2ZW5lc3NEYXRhKTogV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYSBGcmVlTGlzdGVkIGJsb2NrIHdp
dGggYSBuZXdseUFsbG9jYXRlZCBCaXRtYXAuCisgICAgICAgIFdlIGFsbG9jYXRlIHRoZSBuZXcg
Qml0bWFwLCBzZXQgdGhlIGJpdHMgZm9yIGFsbCB0aGUgb2JqZWN0cyB0aGF0IGFyZW4ndCBhbHJl
YWR5IG1hcmtlZCwgYW5kIHRoZW4gdW5zZXQgYWxsIG9mIHRoZSAKKyAgICAgICAgYml0cyBmb3Ig
dGhlIGl0ZW1zIGN1cnJlbnRseSBpbiB0aGUgRnJlZUxpc3QuCisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Y2xlYXJNYXJrcyk6IFdlIGNs
ZWFyIHRoZSBuZXdseUFsbG9jYXRlZCBiaXRtYXAgaWYgaXQgZXhpc3RzIGJlY2F1c2UgYXQgdGhp
cyBwb2ludCB3ZSBkb24ndCBuZWVkIGl0CisgICAgICAgIGFueSBtb3JlLgorICAgICAgICAoSlND
OjpNYXJrZWRCbG9jazo6aXNFbXB0eSk6IElmIHdlIGhhdmUgc29tZSBvYmplY3RzIHRoYXQgYXJl
IG5ld2x5QWxsb2NhdGVkLCB3ZSBhcmUgbm90IGVtcHR5LgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6aXNOZXdseUFsbG9jYXRlZCk6IAorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6
TWFya2VkQmxvY2s6OnNldE5ld2x5QWxsb2NhdGVkKToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxv
Y2s6OmNsZWFyTmV3bHlBbGxvY2F0ZWQpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6aXNM
aXZlKTogV2Ugbm93IGNoZWNrIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAsIGlmIGl0IGV4aXN0
cywgd2hlbiBkZXRlcm1pbmluZyBsaXZlbmVzcyBvZiBhIGNlbGwgaW4gCisgICAgICAgIGEgYmxv
Y2sgdGhhdCBpcyBNYXJrZWQuCisgICAgICAgICogaGVhcC9XZWFrQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpXZWFrQmxvY2s6OnZpc2l0KTogV2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qg
ZmluYWxpemUgb2JqZWN0cyB0aGF0IGFyZSBpbiB0aGUgbmV3bHlBbGxvY2F0ZWQgQml0bWFwLgor
ICAgICAgICAoSlNDOjpXZWFrQmxvY2s6OnJlYXApOiBEaXR0by4KKwogMjAxMi0xMC0zMSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBvcHRpbWl6ZWQgc3Ry
aW5nIGFjY2VzcyBjb2RlIHNob3VsZCBiZSBlbmFibGVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIC8vIG91ciBzY2FuIHRvIHJ1biBmYXN0ZXIuIAogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc190aW1lQ2hlY2tSZXNvbHV0aW9uID0gMTY7CiAKKyAgICAgICAgc3RhdGlj
IGJvb2wgaXNMaXZlKGNvbnN0IHZvaWQqKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNNYXJrZWQo
Y29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMgYm9vbCB0ZXN0QW5kU2V0TWFya2VkKGNvbnN0
IHZvaWQqKTsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0TWFya2VkKGNvbnN0IHZvaWQqKTsKQEAg
LTMwNSw2ICszMDYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBoZWFwKHYu
YXNDZWxsKCkpOwogICAgIH0KIAorICAgIGlubGluZSBib29sIEhlYXA6OmlzTGl2ZShjb25zdCB2
b2lkKiBjZWxsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpibG9ja0Zvcihj
ZWxsKS0+aXNMaXZlQ2VsbChjZWxsKTsKKyAgICB9CisKICAgICBpbmxpbmUgYm9vbCBIZWFwOjpp
c01hcmtlZChjb25zdCB2b2lkKiBjZWxsKQogICAgIHsKICAgICAgICAgcmV0dXJuIE1hcmtlZEJs
b2NrOjpibG9ja0ZvcihjZWxsKS0+aXNNYXJrZWQoY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDcgQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzcGVjaQog
ICAgIEZyZWVDZWxsKiBoZWFkID0gMDsKICAgICBzaXplX3QgY291bnQgPSAwOwogICAgIGZvciAo
c2l6ZV90IGkgPSBmaXJzdEF0b20oKTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2Vs
bCkgewotICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PSBNYXJrZWQgJiYgbV9tYXJrcy5nZXQoaSkp
CisgICAgICAgIGlmIChibG9ja1N0YXRlID09IE1hcmtlZCAmJiAobV9tYXJrcy5nZXQoaSkgfHwg
KG1fbmV3bHlBbGxvY2F0ZWQgJiYgbV9uZXdseUFsbG9jYXRlZC0+Z2V0KGkpKSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0
X3B0cjxKU0NlbGwqPigmYXRvbXMoKVtpXSk7CkBAIC05NCw2ICs5NCwxMSBAQCBNYXJrZWRCbG9j
azo6RnJlZUxpc3QgTWFya2VkQmxvY2s6OnNwZWNpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAv
LyBXZSBvbmx5IHdhbnQgdG8gZGlzY2FyZCB0aGUgbmV3bHlBbGxvY2F0ZWQgYml0cyBpZiB3ZSdy
ZSBjcmVhdGluZyBhIEZyZWVMaXN0LAorICAgIC8vIG90aGVyd2lzZSB3ZSB3b3VsZCBsb3NlIGlu
Zm9ybWF0aW9uIG9uIHdoYXQncyBjdXJyZW50bHkgYWxpdmUuCisgICAgaWYgKHN3ZWVwTW9kZSA9
PSBTd2VlcFRvRnJlZUxpc3QgJiYgbV9uZXdseUFsbG9jYXRlZCkKKyAgICAgICAgbV9uZXdseUFs
bG9jYXRlZCA9IDA7CisKICAgICBtX3N0YXRlID0gKChzd2VlcE1vZGUgPT0gU3dlZXBUb0ZyZWVM
aXN0KSA/IEZyZWVMaXN0ZWQgOiBNYXJrZWQpOwogICAgIHJldHVybiBGcmVlTGlzdChoZWFkLCBj
b3VudCAqIGNlbGxTaXplKCkpOwogfQpAQCAtMTM4LDEyICsxNDMsMjEgQEAgTWFya2VkQmxvY2s6
OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzd2VlcAogICAgIHJldHVybiBGcmVlTGlzdCgpOwogfQog
Ci1jbGFzcyBTZXRBbGxNYXJrc0Z1bmN0b3IgOiBwdWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5j
dG9yIHsKK2NsYXNzIFNldE5ld2x5QWxsb2NhdGVkRnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9j
azo6Vm9pZEZ1bmN0b3IgewogcHVibGljOgorICAgIFNldE5ld2x5QWxsb2NhdGVkRnVuY3RvcihN
YXJrZWRCbG9jayogYmxvY2spCisgICAgICAgIDogbV9ibG9jayhibG9jaykKKyAgICB7CisgICAg
fQorCiAgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCogY2VsbCkKICAgICB7Ci0gICAgICAgIE1h
cmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKS0+c2V0TWFya2VkKGNlbGwpOworICAgICAgICBBU1NF
UlQoTWFya2VkQmxvY2s6OmJsb2NrRm9yKGNlbGwpID09IG1fYmxvY2spOworICAgICAgICBtX2Js
b2NrLT5zZXROZXdseUFsbG9jYXRlZChjZWxsKTsKICAgICB9CisKK3ByaXZhdGU6CisgICAgTWFy
a2VkQmxvY2sqIG1fYmxvY2s7CiB9OwogCiB2b2lkIE1hcmtlZEJsb2NrOjpjYW5vbmljYWxpemVD
ZWxsTGl2ZW5lc3NEYXRhKGNvbnN0IEZyZWVMaXN0JiBmcmVlTGlzdCkKQEAgLTE2OCwxNCArMTgy
LDE3IEBAIHZvaWQgTWFya2VkQmxvY2s6OmNhbm9uaWNhbGl6ZUNlbGxMaXZlbmUKICAgICAvLyBh
bGxvY2F0ZWQgZnJvbSBvdXIgZnJlZSBsaXN0IGFyZSBub3QgY3VycmVudGx5IG1hcmtlZCwgc28g
d2UgbmVlZCBhbm90aGVyCiAgICAgLy8gd2F5IHRvIHRlbGwgd2hhdCdzIGxpdmUgdnMgZGVhZC4g
CiAgICAgCi0gICAgU2V0QWxsTWFya3NGdW5jdG9yIGZ1bmN0b3I7CisgICAgQVNTRVJUKCFtX25l
d2x5QWxsb2NhdGVkKTsKKyAgICBtX25ld2x5QWxsb2NhdGVkID0gYWRvcHRQdHIobmV3IFdURjo6
Qml0bWFwPGF0b21zUGVyQmxvY2s+KCkpOworCisgICAgU2V0TmV3bHlBbGxvY2F0ZWRGdW5jdG9y
IGZ1bmN0b3IodGhpcyk7CiAgICAgZm9yRWFjaENlbGwoZnVuY3Rvcik7CiAKICAgICBGcmVlQ2Vs
bCogbmV4dDsKICAgICBmb3IgKEZyZWVDZWxsKiBjdXJyZW50ID0gaGVhZDsgY3VycmVudDsgY3Vy
cmVudCA9IG5leHQpIHsKICAgICAgICAgbmV4dCA9IGN1cnJlbnQtPm5leHQ7CiAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oY3VycmVudCktPnphcCgpOwotICAgICAgICBjbGVhck1h
cmtlZChjdXJyZW50KTsKKyAgICAgICAgY2xlYXJOZXdseUFsbG9jYXRlZChjdXJyZW50KTsKICAg
ICB9CiAgICAgCiAgICAgbV9zdGF0ZSA9IE1hcmtlZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFya2VkQmxvY2suaAkocmV2aXNpb24gMTMzMjM4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1
OSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRNYXJrZWQoY29uc3Qgdm9p
ZCopOwogICAgICAgICB2b2lkIGNsZWFyTWFya2VkKGNvbnN0IHZvaWQqKTsKIAorICAgICAgICBi
b29sIGlzTmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCopOworICAgICAgICB2b2lkIHNldE5ld2x5
QWxsb2NhdGVkKGNvbnN0IHZvaWQqKTsKKyAgICAgICAgdm9pZCBjbGVhck5ld2x5QWxsb2NhdGVk
KGNvbnN0IHZvaWQqKTsKKwogICAgICAgICBib29sIG5lZWRzU3dlZXBpbmcoKTsKIAogI2lmIEVO
QUJMRShHR0MpCkBAIC0yMTgsNiArMjIyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjZWxzZQogICAg
ICAgICBXVEY6OkJpdG1hcDxhdG9tc1BlckJsb2NrLCBXVEY6OkJpdG1hcE5vdEF0b21pYz4gbV9t
YXJrczsKICNlbmRpZgorICAgICAgICBPd25QdHI8V1RGOjpCaXRtYXA8YXRvbXNQZXJCbG9jaz4g
PiBtX25ld2x5QWxsb2NhdGVkOworCiAgICAgICAgIERlc3RydWN0b3JUeXBlIG1fZGVzdHJ1Y3Rv
clR5cGU7CiAgICAgICAgIE1hcmtlZEFsbG9jYXRvciogbV9hbGxvY2F0b3I7CiAgICAgICAgIEJs
b2NrU3RhdGUgbV9zdGF0ZTsKQEAgLTMxMyw2ICszMTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBBU1NFUlQobV9zdGF0ZSAhPSBOZXcgJiYgbV9zdGF0ZSAhPSBGcmVlTGlzdGVkKTsK
ICAgICAgICAgbV9tYXJrcy5jbGVhckFsbCgpOworICAgICAgICBtX25ld2x5QWxsb2NhdGVkID0g
MDsKIAogICAgICAgICAvLyBUaGlzIHdpbGwgYmVjb21lIHRydWUgYXQgdGhlIGVuZCBvZiB0aGUg
bWFyayBwaGFzZS4gV2Ugc2V0IGl0IG5vdyB0bwogICAgICAgICAvLyBhdm9pZCBhbiBleHRyYSBw
YXNzIHRvIGRvIHNvIGxhdGVyLgpAQCAtMzI2LDcgKzMzMyw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6OmlzRW1wdHkoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fbWFya3MuaXNFbXB0eSgpICYmIG1fd2Vha1NldC5pc0VtcHR5KCk7CisgICAgICAg
IHJldHVybiBtX21hcmtzLmlzRW1wdHkoKSAmJiBtX3dlYWtTZXQuaXNFbXB0eSgpICYmICghbV9u
ZXdseUFsbG9jYXRlZCB8fCBtX25ld2x5QWxsb2NhdGVkLT5pc0VtcHR5KCkpOwogICAgIH0KIAog
ICAgIGlubGluZSBzaXplX3QgTWFya2VkQmxvY2s6OmNlbGxTaXplKCkKQEAgLTM3NSw2ICszODIs
MjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIG1fbWFya3MuY2xlYXIoYXRvbU51bWJlcihw
KSk7CiAgICAgfQogCisgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6OmlzTmV3bHlBbGxvY2F0
ZWQoY29uc3Qgdm9pZCogcCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX25ld2x5QWxsb2NhdGVk
LT5nZXQoYXRvbU51bWJlcihwKSk7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgTWFya2VkQmxv
Y2s6OnNldE5ld2x5QWxsb2NhdGVkKGNvbnN0IHZvaWQqIHApCisgICAgeworICAgICAgICBtX25l
d2x5QWxsb2NhdGVkLT5zZXQoYXRvbU51bWJlcihwKSk7CisgICAgfQorCisgICAgaW5saW5lIHZv
aWQgTWFya2VkQmxvY2s6OmNsZWFyTmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCogcCkKKyAgICB7
CisgICAgICAgIG1fbmV3bHlBbGxvY2F0ZWQtPmNsZWFyKGF0b21OdW1iZXIocCkpOworICAgIH0K
KwogICAgIGlubGluZSBib29sIE1hcmtlZEJsb2NrOjppc0xpdmUoY29uc3QgSlNDZWxsKiBjZWxs
KQogICAgIHsKICAgICAgICAgc3dpdGNoIChtX3N0YXRlKSB7CkBAIC0zODIsNyArNDA0LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBjYXNl
IE1hcmtlZDoKLSAgICAgICAgICAgIHJldHVybiBtX21hcmtzLmdldChhdG9tTnVtYmVyKGNlbGwp
KTsKKyAgICAgICAgICAgIHJldHVybiBtX21hcmtzLmdldChhdG9tTnVtYmVyKGNlbGwpKSB8fCAo
bV9uZXdseUFsbG9jYXRlZCAmJiBpc05ld2x5QWxsb2NhdGVkKGNlbGwpKTsKIAogICAgICAgICBj
YXNlIE5ldzoKICAgICAgICAgY2FzZSBGcmVlTGlzdGVkOgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyAr
MTAyLDcgQEAgdm9pZCBXZWFrQmxvY2s6OnZpc2l0KEhlYXBSb290VmlzaXRvciYgaAogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgY29uc3QgSlNWYWx1ZSYganNWYWx1ZSA9IHdlYWtJ
bXBsLT5qc1ZhbHVlKCk7Ci0gICAgICAgIGlmIChIZWFwOjppc01hcmtlZChqc1ZhbHVlLmFzQ2Vs
bCgpKSkKKyAgICAgICAgaWYgKEhlYXA6OmlzTGl2ZShqc1ZhbHVlLmFzQ2VsbCgpKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIFdlYWtIYW5kbGVPd25lciogd2Vha0hhbmRsZU93
bmVyID0gd2Vha0ltcGwtPndlYWtIYW5kbGVPd25lcigpOwpAQCAtMTI3LDcgKzEyNyw3IEBAIHZv
aWQgV2Vha0Jsb2NrOjpyZWFwKCkKICAgICAgICAgaWYgKHdlYWtJbXBsLT5zdGF0ZSgpID4gV2Vh
a0ltcGw6OkRlYWQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoSGVhcDo6
aXNNYXJrZWQod2Vha0ltcGwtPmpzVmFsdWUoKS5hc0NlbGwoKSkpIHsKKyAgICAgICAgaWYgKEhl
YXA6OmlzTGl2ZSh3ZWFrSW1wbC0+anNWYWx1ZSgpLmFzQ2VsbCgpKSkgewogICAgICAgICAgICAg
QVNTRVJUKHdlYWtJbXBsLT5zdGF0ZSgpID09IFdlYWtJbXBsOjpMaXZlKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172121</attachid>
            <date>2012-11-02 13:06:09 -0700</date>
            <delta_ts>2012-11-02 15:14:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100877-20121102130429.patch</filename>
            <type>text/plain</type>
            <size>9948</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzMjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDEyLTEwLTMxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTWFya2VkQmxvY2tzIHNob3VsZCB1c2Ugc29tZXRoaW5nIG90aGVyIHRoYW4gdGhl
IG1hcmsgYml0cyB0byBpbmRpY2F0ZSBsaXZlbmVzcyBmb3IgbmV3bHkgYWxsb2NhdGVkIG9iamVj
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSB3aGVuIHdlIGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzIGRhdGEgaW4gTWFya2VkQmxv
Y2tzLCB3ZSBzZXQgdGhlIG1hcmsgYml0IGZvciBldmVyeSBjZWxsIGluIHRoZSAKKyAgICAgICAg
YmxvY2sgZXhjZXB0IGZvciB0aG9zZSBpbiB0aGUgZnJlZSBsaXN0LiBUaGlzIGFsbG93cyB1cyB0
byBjb25zaWRlciBvYmplY3RzIHRoYXQgd2VyZSBhbGxvY2F0ZWQgc2luY2UgdGhlIAorICAgICAg
ICBwcmV2aW91cyBjb2xsZWN0aW9uIHRvIGJlIGNvbnNpZGVyZWQgbGl2ZSB1bnRpbCB0aGV5IGhh
dmUgYSBjaGFuY2UgdG8gYmUgcHJvcGVybHkgbWFya2VkIGJ5IHRoZSBjb2xsZWN0b3IuCisKKyAg
ICAgICAgSWYgd2Ugd2FudCB0byB1c2UgdGhlIG1hcmsgYml0cyB0byBzaWduaWZ5IG90aGVyIHR5
cGVzIG9mIGluZm9ybWF0aW9uLCBlLmcuIHVzaW5nIHN0aWNreSBtYXJrIGJpdHMgZm9yIGdlbmVy
YXRpb25hbCAKKyAgICAgICAgY29sbGVjdGlvbiwgd2Ugd2lsbCBoYXZlIHRvIGtlZXAgdHJhY2sg
b2YgbmV3bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gYSBkaWZmZXJlbnQgZmFzaGlvbiB3aGVuIHdl
IGNhbm9uaWNhbGl6ZSBjZWxsIGxpdmVuZXNzLgorCisgICAgICAgIE9uZSBtZXRob2Qgd291bGQg
YmUgdG8gYWxsb2NhdGUgYSBzZXBhcmF0ZSBzZXQgb2YgYml0cyB3aGlsZSBjYW5vbmljYWxpemlu
ZyBsaXZlbmVzcyBkYXRhLiBUaGVzZSBiaXRzIHdvdWxkIAorICAgICAgICB0cmFjayB0aGUgbmV3
bHkgYWxsb2NhdGVkIG9iamVjdHMgaW4gdGhlIGJsb2NrIHNlcGFyYXRlbHkgZnJvbSB0aG9zZSBv
YmplY3RzIHdobyBoYWQgYWxyZWFkeSBiZWVuIG1hcmtlZC4gV2Ugd291bGQgCisgICAgICAgIHRo
ZW4gY2hlY2sgdGhlc2UgYml0cywgYWxvbmcgd2l0aCB0aGUgbWFyayBiaXRzLCB3aGVuIGRldGVy
bWluaW5nIGxpdmVuZXNzLiAKKworICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAoSGVh
cCk6CisgICAgICAgIChKU0M6OkhlYXA6OmlzTGl2ZSk6IFdlIG5vdyBjaGVjayBmb3IgdGhlIHBy
ZXNlbmNlIG9mIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAuCisgICAgICAgIChKU0MpOgorICAg
ICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6
c3BlY2lhbGl6ZWRTd2VlcCk6IFdlIGNsZWFyIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAgaWYg
d2UncmUgY3JlYXRpbmcgYSBmcmVlIGxpc3QuIFRoaXMgCisgICAgICAgIHdpbGwgaGFwcGVuIGlm
IHdlIGNhbm9uaWNhbGl6ZSBsaXZlbmVzcyBkYXRhIGZvciBzb21lIG90aGVyIHJlYXNvbiB0aGFu
IGNvbGxlY3Rpb24gKGUuZy4gZm9yRWFjaENlbGwpIGFuZCAKKyAgICAgICAgdGhlbiBzdGFydCBh
bGxvY2F0aW5nIGFnYWluLgorICAgICAgICAoSlNDOjpTZXROZXdseUFsbG9jYXRlZEZ1bmN0b3I6
OlNldE5ld2x5QWxsb2NhdGVkRnVuY3Rvcik6IAorICAgICAgICAoU2V0TmV3bHlBbGxvY2F0ZWRG
dW5jdG9yKToKKyAgICAgICAgKEpTQzo6U2V0TmV3bHlBbGxvY2F0ZWRGdW5jdG9yOjpvcGVyYXRv
cigpKTogV2Ugc2V0IHRoZSBuZXdseUFsbG9jYXRlZCBiaXRzIGZvciBhbGwgdGhlIG9iamVjdHMg
CisgICAgICAgIHRoYXQgYXJlbid0IGFscmVhZHkgbWFya2VkLiBXZSB1bmRvIHRoZSBiaXRzIGZv
ciB0aGUgb2JqZWN0cyBpbiB0aGUgZnJlZSBsaXN0IGxhdGVyIGluIGNhbm9uaWNhbGl6ZUNlbGxM
aXZlbmVzc0RhdGEuCisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpjYW5vbmljYWxpemVDZWxs
TGl2ZW5lc3NEYXRhKTogV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYSBGcmVlTGlzdGVkIGJsb2NrIHdp
dGggYSBuZXdseUFsbG9jYXRlZCBCaXRtYXAuCisgICAgICAgIFdlIGFsbG9jYXRlIHRoZSBuZXcg
Qml0bWFwLCBzZXQgdGhlIGJpdHMgZm9yIGFsbCB0aGUgb2JqZWN0cyB0aGF0IGFyZW4ndCBhbHJl
YWR5IG1hcmtlZCwgYW5kIHRoZW4gdW5zZXQgYWxsIG9mIHRoZSAKKyAgICAgICAgYml0cyBmb3Ig
dGhlIGl0ZW1zIGN1cnJlbnRseSBpbiB0aGUgRnJlZUxpc3QuCisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Y2xlYXJNYXJrcyk6IFdlIGNs
ZWFyIHRoZSBuZXdseUFsbG9jYXRlZCBiaXRtYXAgaWYgaXQgZXhpc3RzIGJlY2F1c2UgYXQgdGhp
cyBwb2ludCB3ZSBkb24ndCBuZWVkIGl0CisgICAgICAgIGFueSBtb3JlLgorICAgICAgICAoSlND
OjpNYXJrZWRCbG9jazo6aXNFbXB0eSk6IElmIHdlIGhhdmUgc29tZSBvYmplY3RzIHRoYXQgYXJl
IG5ld2x5QWxsb2NhdGVkLCB3ZSBhcmUgbm90IGVtcHR5LgorICAgICAgICAoSlNDOjpNYXJrZWRC
bG9jazo6aXNOZXdseUFsbG9jYXRlZCk6IAorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6
TWFya2VkQmxvY2s6OnNldE5ld2x5QWxsb2NhdGVkKToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxv
Y2s6OmNsZWFyTmV3bHlBbGxvY2F0ZWQpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6aXNM
aXZlKTogV2Ugbm93IGNoZWNrIHRoZSBuZXdseUFsbG9jYXRlZCBCaXRtYXAsIGlmIGl0IGV4aXN0
cywgd2hlbiBkZXRlcm1pbmluZyBsaXZlbmVzcyBvZiBhIGNlbGwgaW4gCisgICAgICAgIGEgYmxv
Y2sgdGhhdCBpcyBNYXJrZWQuCisgICAgICAgICogaGVhcC9XZWFrQmxvY2suY3BwOgorICAgICAg
ICAoSlNDOjpXZWFrQmxvY2s6OnZpc2l0KTogV2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgZG9uJ3Qg
ZmluYWxpemUgb2JqZWN0cyB0aGF0IGFyZSBpbiB0aGUgbmV3bHlBbGxvY2F0ZWQgQml0bWFwLgor
ICAgICAgICAoSlNDOjpXZWFrQmxvY2s6OnJlYXApOiBEaXR0by4KKwogMjAxMi0xMC0zMSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBvcHRpbWl6ZWQgc3Ry
aW5nIGFjY2VzcyBjb2RlIHNob3VsZCBiZSBlbmFibGVkCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIC8vIG91ciBzY2FuIHRvIHJ1biBmYXN0ZXIuIAogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc190aW1lQ2hlY2tSZXNvbHV0aW9uID0gMTY7CiAKKyAgICAgICAgc3RhdGlj
IGJvb2wgaXNMaXZlKGNvbnN0IHZvaWQqKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNNYXJrZWQo
Y29uc3Qgdm9pZCopOwogICAgICAgICBzdGF0aWMgYm9vbCB0ZXN0QW5kU2V0TWFya2VkKGNvbnN0
IHZvaWQqKTsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0TWFya2VkKGNvbnN0IHZvaWQqKTsKQEAg
LTMwNSw2ICszMDYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBoZWFwKHYu
YXNDZWxsKCkpOwogICAgIH0KIAorICAgIGlubGluZSBib29sIEhlYXA6OmlzTGl2ZShjb25zdCB2
b2lkKiBjZWxsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hcmtlZEJsb2NrOjpibG9ja0Zvcihj
ZWxsKS0+aXNMaXZlQ2VsbChjZWxsKTsKKyAgICB9CisKICAgICBpbmxpbmUgYm9vbCBIZWFwOjpp
c01hcmtlZChjb25zdCB2b2lkKiBjZWxsKQogICAgIHsKICAgICAgICAgcmV0dXJuIE1hcmtlZEJs
b2NrOjpibG9ja0ZvcihjZWxsKS0+aXNNYXJrZWQoY2VsbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDcgQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJsb2NrOjpzcGVjaQog
ICAgIEZyZWVDZWxsKiBoZWFkID0gMDsKICAgICBzaXplX3QgY291bnQgPSAwOwogICAgIGZvciAo
c2l6ZV90IGkgPSBmaXJzdEF0b20oKTsgaSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2Vs
bCkgewotICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PSBNYXJrZWQgJiYgbV9tYXJrcy5nZXQoaSkp
CisgICAgICAgIGlmIChibG9ja1N0YXRlID09IE1hcmtlZCAmJiAobV9tYXJrcy5nZXQoaSkgfHwg
KG1fbmV3bHlBbGxvY2F0ZWQgJiYgbV9uZXdseUFsbG9jYXRlZC0+Z2V0KGkpKSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0
X3B0cjxKU0NlbGwqPigmYXRvbXMoKVtpXSk7CkBAIC05NCw2ICs5NCwxMSBAQCBNYXJrZWRCbG9j
azo6RnJlZUxpc3QgTWFya2VkQmxvY2s6OnNwZWNpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAv
LyBXZSBvbmx5IHdhbnQgdG8gZGlzY2FyZCB0aGUgbmV3bHlBbGxvY2F0ZWQgYml0cyBpZiB3ZSdy
ZSBjcmVhdGluZyBhIEZyZWVMaXN0LAorICAgIC8vIG90aGVyd2lzZSB3ZSB3b3VsZCBsb3NlIGlu
Zm9ybWF0aW9uIG9uIHdoYXQncyBjdXJyZW50bHkgYWxpdmUuCisgICAgaWYgKHN3ZWVwTW9kZSA9
PSBTd2VlcFRvRnJlZUxpc3QgJiYgbV9uZXdseUFsbG9jYXRlZCkKKyAgICAgICAgbV9uZXdseUFs
bG9jYXRlZC5jbGVhcigpOworCiAgICAgbV9zdGF0ZSA9ICgoc3dlZXBNb2RlID09IFN3ZWVwVG9G
cmVlTGlzdCkgPyBGcmVlTGlzdGVkIDogTWFya2VkKTsKICAgICByZXR1cm4gRnJlZUxpc3QoaGVh
ZCwgY291bnQgKiBjZWxsU2l6ZSgpKTsKIH0KQEAgLTEzOCwxMiArMTQzLDIxIEBAIE1hcmtlZEJs
b2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6c3dlZXAKICAgICByZXR1cm4gRnJlZUxpc3QoKTsK
IH0KIAotY2xhc3MgU2V0QWxsTWFya3NGdW5jdG9yIDogcHVibGljIE1hcmtlZEJsb2NrOjpWb2lk
RnVuY3RvciB7CitjbGFzcyBTZXROZXdseUFsbG9jYXRlZEZ1bmN0b3IgOiBwdWJsaWMgTWFya2Vk
QmxvY2s6OlZvaWRGdW5jdG9yIHsKIHB1YmxpYzoKKyAgICBTZXROZXdseUFsbG9jYXRlZEZ1bmN0
b3IoTWFya2VkQmxvY2sqIGJsb2NrKQorICAgICAgICA6IG1fYmxvY2soYmxvY2spCisgICAgewor
ICAgIH0KKwogICAgIHZvaWQgb3BlcmF0b3IoKShKU0NlbGwqIGNlbGwpCiAgICAgewotICAgICAg
ICBNYXJrZWRCbG9jazo6YmxvY2tGb3IoY2VsbCktPnNldE1hcmtlZChjZWxsKTsKKyAgICAgICAg
QVNTRVJUKE1hcmtlZEJsb2NrOjpibG9ja0ZvcihjZWxsKSA9PSBtX2Jsb2NrKTsKKyAgICAgICAg
bV9ibG9jay0+c2V0TmV3bHlBbGxvY2F0ZWQoY2VsbCk7CiAgICAgfQorCitwcml2YXRlOgorICAg
IE1hcmtlZEJsb2NrKiBtX2Jsb2NrOwogfTsKIAogdm9pZCBNYXJrZWRCbG9jazo6Y2Fub25pY2Fs
aXplQ2VsbExpdmVuZXNzRGF0YShjb25zdCBGcmVlTGlzdCYgZnJlZUxpc3QpCkBAIC0xNjgsMTQg
KzE4MiwxNyBAQCB2b2lkIE1hcmtlZEJsb2NrOjpjYW5vbmljYWxpemVDZWxsTGl2ZW5lCiAgICAg
Ly8gYWxsb2NhdGVkIGZyb20gb3VyIGZyZWUgbGlzdCBhcmUgbm90IGN1cnJlbnRseSBtYXJrZWQs
IHNvIHdlIG5lZWQgYW5vdGhlcgogICAgIC8vIHdheSB0byB0ZWxsIHdoYXQncyBsaXZlIHZzIGRl
YWQuIAogICAgIAotICAgIFNldEFsbE1hcmtzRnVuY3RvciBmdW5jdG9yOworICAgIEFTU0VSVCgh
bV9uZXdseUFsbG9jYXRlZCk7CisgICAgbV9uZXdseUFsbG9jYXRlZCA9IGFkb3B0UHRyKG5ldyBX
VEY6OkJpdG1hcDxhdG9tc1BlckJsb2NrPigpKTsKKworICAgIFNldE5ld2x5QWxsb2NhdGVkRnVu
Y3RvciBmdW5jdG9yKHRoaXMpOwogICAgIGZvckVhY2hDZWxsKGZ1bmN0b3IpOwogCiAgICAgRnJl
ZUNlbGwqIG5leHQ7CiAgICAgZm9yIChGcmVlQ2VsbCogY3VycmVudCA9IGhlYWQ7IGN1cnJlbnQ7
IGN1cnJlbnQgPSBuZXh0KSB7CiAgICAgICAgIG5leHQgPSBjdXJyZW50LT5uZXh0OwogICAgICAg
ICByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KGN1cnJlbnQpLT56YXAoKTsKLSAgICAgICAgY2xl
YXJNYXJrZWQoY3VycmVudCk7CisgICAgICAgIGNsZWFyTmV3bHlBbGxvY2F0ZWQoY3VycmVudCk7
CiAgICAgfQogICAgIAogICAgIG1fc3RhdGUgPSBNYXJrZWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHJldmlzaW9uIDEzMzIzOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2
ICsxNTksMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0TWFya2VkKGNvbnN0
IHZvaWQqKTsKICAgICAgICAgdm9pZCBjbGVhck1hcmtlZChjb25zdCB2b2lkKik7CiAKKyAgICAg
ICAgYm9vbCBpc05ld2x5QWxsb2NhdGVkKGNvbnN0IHZvaWQqKTsKKyAgICAgICAgdm9pZCBzZXRO
ZXdseUFsbG9jYXRlZChjb25zdCB2b2lkKik7CisgICAgICAgIHZvaWQgY2xlYXJOZXdseUFsbG9j
YXRlZChjb25zdCB2b2lkKik7CisKICAgICAgICAgYm9vbCBuZWVkc1N3ZWVwaW5nKCk7CiAKICNp
ZiBFTkFCTEUoR0dDKQpAQCAtMjE4LDYgKzIyMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogI2Vsc2UK
ICAgICAgICAgV1RGOjpCaXRtYXA8YXRvbXNQZXJCbG9jaywgV1RGOjpCaXRtYXBOb3RBdG9taWM+
IG1fbWFya3M7CiAjZW5kaWYKKyAgICAgICAgT3duUHRyPFdURjo6Qml0bWFwPGF0b21zUGVyQmxv
Y2s+ID4gbV9uZXdseUFsbG9jYXRlZDsKKwogICAgICAgICBEZXN0cnVjdG9yVHlwZSBtX2Rlc3Ry
dWN0b3JUeXBlOwogICAgICAgICBNYXJrZWRBbGxvY2F0b3IqIG1fYWxsb2NhdG9yOwogICAgICAg
ICBCbG9ja1N0YXRlIG1fc3RhdGU7CkBAIC0zMTMsNiArMzE5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgQVNTRVJUKG1fc3RhdGUgIT0gTmV3ICYmIG1fc3RhdGUgIT0gRnJlZUxpc3Rl
ZCk7CiAgICAgICAgIG1fbWFya3MuY2xlYXJBbGwoKTsKKyAgICAgICAgbV9uZXdseUFsbG9jYXRl
ZC5jbGVhcigpOwogCiAgICAgICAgIC8vIFRoaXMgd2lsbCBiZWNvbWUgdHJ1ZSBhdCB0aGUgZW5k
IG9mIHRoZSBtYXJrIHBoYXNlLiBXZSBzZXQgaXQgbm93IHRvCiAgICAgICAgIC8vIGF2b2lkIGFu
IGV4dHJhIHBhc3MgdG8gZG8gc28gbGF0ZXIuCkBAIC0zMjYsNyArMzMzLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICBpbmxpbmUgYm9vbCBNYXJrZWRCbG9jazo6aXNFbXB0eSgpCiAgICAgewot
ICAgICAgICByZXR1cm4gbV9tYXJrcy5pc0VtcHR5KCkgJiYgbV93ZWFrU2V0LmlzRW1wdHkoKTsK
KyAgICAgICAgcmV0dXJuIG1fbWFya3MuaXNFbXB0eSgpICYmIG1fd2Vha1NldC5pc0VtcHR5KCkg
JiYgKCFtX25ld2x5QWxsb2NhdGVkIHx8IG1fbmV3bHlBbGxvY2F0ZWQtPmlzRW1wdHkoKSk7CiAg
ICAgfQogCiAgICAgaW5saW5lIHNpemVfdCBNYXJrZWRCbG9jazo6Y2VsbFNpemUoKQpAQCAtMzc1
LDYgKzM4MiwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgbV9tYXJrcy5jbGVhcihhdG9t
TnVtYmVyKHApKTsKICAgICB9CiAKKyAgICBpbmxpbmUgYm9vbCBNYXJrZWRCbG9jazo6aXNOZXds
eUFsbG9jYXRlZChjb25zdCB2b2lkKiBwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbmV3bHlB
bGxvY2F0ZWQtPmdldChhdG9tTnVtYmVyKHApKTsKKyAgICB9CisKKyAgICBpbmxpbmUgdm9pZCBN
YXJrZWRCbG9jazo6c2V0TmV3bHlBbGxvY2F0ZWQoY29uc3Qgdm9pZCogcCkKKyAgICB7CisgICAg
ICAgIG1fbmV3bHlBbGxvY2F0ZWQtPnNldChhdG9tTnVtYmVyKHApKTsKKyAgICB9CisKKyAgICBp
bmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6Y2xlYXJOZXdseUFsbG9jYXRlZChjb25zdCB2b2lkKiBw
KQorICAgIHsKKyAgICAgICAgbV9uZXdseUFsbG9jYXRlZC0+Y2xlYXIoYXRvbU51bWJlcihwKSk7
CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6OmlzTGl2ZShjb25zdCBKU0Nl
bGwqIGNlbGwpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKQEAgLTM4Miw3ICs0
MDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
ICAgIGNhc2UgTWFya2VkOgotICAgICAgICAgICAgcmV0dXJuIG1fbWFya3MuZ2V0KGF0b21OdW1i
ZXIoY2VsbCkpOworICAgICAgICAgICAgcmV0dXJuIG1fbWFya3MuZ2V0KGF0b21OdW1iZXIoY2Vs
bCkpIHx8IChtX25ld2x5QWxsb2NhdGVkICYmIGlzTmV3bHlBbGxvY2F0ZWQoY2VsbCkpOwogCiAg
ICAgICAgIGNhc2UgTmV3OgogICAgICAgICBjYXNlIEZyZWVMaXN0ZWQ6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHJldmlzaW9uIDEzMzIzOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMiw3ICsxMDIsNyBAQCB2b2lkIFdlYWtCbG9jazo6dmlzaXQoSGVhcFJvb3RWaXNpdG9yJiBo
CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBjb25zdCBKU1ZhbHVlJiBqc1ZhbHVl
ID0gd2Vha0ltcGwtPmpzVmFsdWUoKTsKLSAgICAgICAgaWYgKEhlYXA6OmlzTWFya2VkKGpzVmFs
dWUuYXNDZWxsKCkpKQorICAgICAgICBpZiAoSGVhcDo6aXNMaXZlKGpzVmFsdWUuYXNDZWxsKCkp
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgV2Vha0hhbmRsZU93bmVyKiB3ZWFr
SGFuZGxlT3duZXIgPSB3ZWFrSW1wbC0+d2Vha0hhbmRsZU93bmVyKCk7CkBAIC0xMjcsNyArMTI3
LDcgQEAgdm9pZCBXZWFrQmxvY2s6OnJlYXAoKQogICAgICAgICBpZiAod2Vha0ltcGwtPnN0YXRl
KCkgPiBXZWFrSW1wbDo6RGVhZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChIZWFwOjppc01hcmtlZCh3ZWFrSW1wbC0+anNWYWx1ZSgpLmFzQ2VsbCgpKSkgeworICAgICAg
ICBpZiAoSGVhcDo6aXNMaXZlKHdlYWtJbXBsLT5qc1ZhbHVlKCkuYXNDZWxsKCkpKSB7CiAgICAg
ICAgICAgICBBU1NFUlQod2Vha0ltcGwtPnN0YXRlKCkgPT0gV2Vha0ltcGw6OkxpdmUpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>