<?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>56511</bug_id>
          
          <creation_ts>2011-03-16 17:56:02 -0700</creation_ts>
          <short_desc>Invalidate all NPObjects for a plug-in when that plug-in is destroyed</short_desc>
          <delta_ts>2011-03-17 12:42:19 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>368694</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 17:56:02 -0700</bug_when>
    <thetext>Invalidate all NPObjects for a plug-in when that plug-in is destroyed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368702</commentid>
    <comment_count>1</comment_count>
      <attachid>86013</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 18:01:35 -0700</bug_when>
    <thetext>Created attachment 86013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368705</commentid>
    <comment_count>2</comment_count>
      <attachid>86015</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 18:11:19 -0700</bug_when>
    <thetext>Created attachment 86015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368706</commentid>
    <comment_count>3</comment_count>
      <attachid>86015</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 18:27:25 -0700</bug_when>
    <thetext>Comment on attachment 86015
Patch

This patch is incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368710</commentid>
    <comment_count>4</comment_count>
      <attachid>86016</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 18:35:47 -0700</bug_when>
    <thetext>Created attachment 86016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368722</commentid>
    <comment_count>5</comment_count>
      <attachid>86019</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-16 19:00:24 -0700</bug_when>
    <thetext>Created attachment 86019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368751</commentid>
    <comment_count>6</comment_count>
      <attachid>86019</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-16 19:49:20 -0700</bug_when>
    <thetext>Comment on attachment 86019
Patch

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

&gt; Source/WebKit2/PluginProcess/PluginControllerProxy.cpp:86
&gt; +        // Get the plug-in so we can pass it to removePluginControllerProxy. The pointer is only
&gt; +        // used as an identifier so it&apos;s OK to just get a weak reference.

Aliasing can happen even when a pointer is just used as an identifier. In these cases I guess it’s OK because there’s no chance a new plug-in will be allocated before the remove call is made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369180</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-03-17 11:28:57 -0700</bug_when>
    <thetext>Committed r81370: &lt;http://trac.webkit.org/changeset/81370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369218</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-17 12:42:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81370 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86013</attachid>
            <date>2011-03-16 18:01:35 -0700</date>
            <delta_ts>2011-03-16 18:11:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56511-20110316180134.patch</filename>
            <type>text/plain</type>
            <size>12390</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzA0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDMtMTYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIGFsbCBOUE9iamVjdHMgZm9yIGEgcGx1
Zy1pbiB3aGVuIHRoYXQgcGx1Zy1pbiBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTkzNDkxPgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgd2Ugd291bGQgaW52YWxp
ZGF0ZSBOUE9iamVjdFByb3h5IG9iamVjdHMgYW5kIGRlbGV0ZSBOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcgorICAgICAgICBvYmplY3RzIHdoZW4gdGhlIGxhc3QgcGx1Zy1pbiBvZiBhIGNlcnRhaW4g
dHlwZSB3YXMgZGVzdHJveWVkLiBEb2luZyBzbyBjYXVzZWQgdXMgdG8gaG9sZCBvbiB0byBtZW1v
cnkKKyAgICAgICAgd2hpY2ggd2UgZG9uJ3QgbmVlZCwgYW5kIGNvdWxkIGFsc28gbGVhZCB0byBj
cmFzaGVzIGlmIHRoZSBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciB3b3VsZCBnZXQgYSBtZXNzYWdl
IGFuZAorICAgICAgICB0cmllZCB0byBpbnZva2UgaXQgb24gYSBhbHJlYWR5IGRlYWxsb2NhdGVk
IE5QT2JqZWN0LgorICAgICAgICAKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBs
dWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OnJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eSk6CisgICAgICAgIENhbGwgTlBSZW1v
dGVPYmplY3RNYXA6OnBsdWdpbkRlc3Ryb3llZCB3aGVuIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRl
c3Ryb3llZC4KKworICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI6Ok5QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RNZXNzYWdlUmVj
ZWl2ZXI6On5OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaDoKKyAgICAgICAgUmVtb3ZlIG1fc2hvdWxkUmVs
ZWFzZU9iamVjdFdoZW5JbnZhbGlkYXRpbmcsIHdlIG5vdyBrbm93IHRoYXQgbm8gTlBPYmplY3Rz
IHdpbGwgaGF2ZSBiZWVuIGRlYWxsb2NhdGVkCisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBOUE9i
amVjdE1lc3NhZ2VSZWNlaXZlciBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKFdlYktpdDo6TlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI6OnBsdWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
Ok5QT2JqZWN0UHJveHk6OnBsdWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5QUmVtb3RlT2JqZWN0TWFwOjpOUFJlbW90ZU9iamVjdE1hcCk6CisgICAgICAgIFJlbW92ZSBt
X2lzSW52YWxpZGF0aW5nLgorCisgICAgICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpu
cE9iamVjdFByb3h5RGVzdHJveWVkKToKKyAgICAgICAgU2ltcGxpZnkgY29kZS4KKworICAgICAg
ICAoV2ViS2l0OjpOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVkKToKKyAgICAgICAg
UmVuYW1lIGludmFsaWRhdGUgdG8gcGx1Z2luRGVzdHJveWVkLiBPbmx5IGludmFsaWRhdGUvZGVs
ZXRlIG9iamVjdHMgdGhhdCBiZWxvbmcgdG8gdGhlIGdpdmVuIHBsdWctaW4uCisKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oOgorICAgICAgICBSZW1vdmUgbV9p
c0ludmFsaWRhdGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uOjpyZW1vdmVQbHVnaW5Qcm94eSk6CisgICAgICAgIENhbGwgTlBSZW1vdGVPYmplY3RNYXA6
OnBsdWdpbkRlc3Ryb3llZCB3aGVuIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRlc3Ryb3llZC4KKwog
MjAxMS0wMy0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJKHJldmlzaW9uIDgx
Mjg3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBpc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICAgICB+UGx1Z2luQ29udHJvbGxlclByb3h5KCk7
CiAKKyAgICBQbHVnaW4qIHBsdWdpbigpIHsgcmV0dXJuIG1fcGx1Z2luLmdldCgpOyB9CisKICAg
ICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5JbnN0
YW5jZUlEOyB9CiAKICAgICBib29sIGluaXRpYWxpemUoY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gODEyODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzgsMTQgKzc4LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpbkMK
ICAgICAgICAgT3duUHRyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gcGx1Z2luQ29udHJvbGxlck93
blB0ciA9IGFkb3B0UHRyKG1fcGx1Z2luQ29udHJvbGxlcnMudGFrZShwbHVnaW5Db250cm9sbGVy
LT5wbHVnaW5JbnN0YW5jZUlEKCkpKTsKICAgICAgICAgQVNTRVJUKHBsdWdpbkNvbnRyb2xsZXJP
d25QdHIgPT0gcGx1Z2luQ29udHJvbGxlcik7CiAgICAgfQotICAgIAorCisgICAgLy8gSW52YWxp
ZGF0ZSBhbGwgb2JqZWN0cyByZWxhdGVkIHRvIHRoaXMgcGx1Zy1pbi4KKyAgICBtX25wUmVtb3Rl
T2JqZWN0TWFwLT5wbHVnaW5EZXN0cm95ZWQocGx1Z2luQ29udHJvbGxlci0+cGx1Z2luKCkpOwor
CiAgICAgaWYgKCFtX3BsdWdpbkNvbnRyb2xsZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgLy8gSW52YWxpZGF0ZSBvdXIgcmVtb3RlIG9iamVjdCBtYXAuCi0gICAgbV9ucFJl
bW90ZU9iamVjdE1hcC0+aW52YWxpZGF0ZSgpOwotICAgIG1fbnBSZW1vdGVPYmplY3RNYXAgPSBu
dWxscHRyOwotCiAgICAgLy8gVGhlIGxhc3QgcGx1Zy1pbiB3ZW50IGF3YXksIGNsb3NlIHRoaXMg
Y29ubmVjdGlvbi4KICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKICAgICBtX2Nvbm5l
Y3Rpb24gPSBudWxscHRyOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAkocmV2aXNpb24gODEyOTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDYgQEAKICNpbmNsdWRlICJOUFJ1bnRp
bWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlhbnREYXRhLmgiCiAKLS8vIEZJWE1FOiBU
aGlzIGNvZGUgc2hvdWxkbid0IGtub3cgYWJvdXQgTlBKU09iamVjdC4KLSNpbmNsdWRlICJOUEpT
T2JqZWN0LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPE5QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6Y3JlYXRlKE5QUmVtb3RlT2Jq
ZWN0TWFwKiBucFJlbW90ZU9iamVjdE1hcCwgUGx1Z2luKiBwbHVnaW4sIHVpbnQ2NF90IG5wT2Jq
ZWN0SUQsIE5QT2JqZWN0KiBucE9iamVjdCkKQEAgLTQ4LDcgKzQ1LDYgQEAgTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXI6Ok5QT2JqZWN0TWVzc2FnZQogICAgICwgbV9wbHVnaW4ocGx1Z2luKQogICAg
ICwgbV9ucE9iamVjdElEKG5wT2JqZWN0SUQpCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQot
ICAgICwgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZyghTlBKU09iamVjdDo6
aXNOUEpTT2JqZWN0KG5wT2JqZWN0KSkKIHsKICAgICByZXRhaW5OUE9iamVjdChtX25wT2JqZWN0
KTsKIH0KQEAgLTU3LDEzICs1Myw2IEBAIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyOjp+TlBPYmpl
Y3RNZXNzYWcKIHsKICAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT51bnJlZ2lzdGVyTlBPYmplY3Qo
bV9ucE9iamVjdElEKTsKIAotICAgIC8vIElmIHdlJ3JlIGludmFsaWRhdGluZyB0aGUgcmVtb3Rl
IG9iamVjdCBtYXAsIHdlIGRvbid0IGFsd2F5cyB3YW50IHRvIHJlbGVhc2UgdGhlIHVuZGVybHlp
bmcgTlBPYmplY3QuCi0gICAgLy8gT25lIGV4YW1wbGUgb2YgdGhpcyBpcyBOUEpTT2JqZWN0cyBp
biB0aGUgV2ViIHByb2Nlc3MsIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVuIGRlYWxsb2NhdGVkIGJ5
IHRoZSBwbHVnLWluIHZpZXcuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IHRoZSBpZGVhbCB3
YXkgdG8gaGFuZGxlIHRoaXMuIE1heWJlIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIHNob3VsZCBi
ZSBub3RpZmllZCBzb21laG93IHdoZW4gdGhlIHVuZGVybHlpbmcKLSAgICAvLyBOUE9iamVjdCBp
cyBkZWFsbG9jYXRlZC4KLSAgICBpZiAobV9ucFJlbW90ZU9iamVjdE1hcC0+aXNJbnZhbGlkYXRp
bmcoKSAmJiAhbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZykKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgcmVsZWFzZU5QT2JqZWN0KG1fbnBPYmplY3QpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyLmgJKHJldmlzaW9uIDgxMjk2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiAr
NDksNyBAQCBwdWJsaWM6CiAKICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopOwogCisgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBP
YmplY3Q7IH0KICAgICAKIHByaXZhdGU6CkBAIC03MCw3ICs3MSw2IEBAIHByaXZhdGU6CiAgICAg
UGx1Z2luKiBtX3BsdWdpbjsKICAgICB1aW50NjRfdCBtX25wT2JqZWN0SUQ7CiAgICAgTlBPYmpl
Y3QqIG1fbnBPYmplY3Q7Ci0gICAgYm9vbCBtX3Nob3VsZFJlbGVhc2VPYmplY3RXaGVuSW52YWxp
ZGF0aW5nOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAkocmV2aXNpb24gODEyOTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8TlBPYmplY3RQcm94eSo+KG5wT2JqZWN0KTsKICAgICB9CiAKKyAgICBQbHVnaW4qIHBs
dWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luOyB9CiAgICAgdWludDY0X3QgbnBPYmplY3RJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3RJRDsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1h
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1v
dGVPYmplY3RNYXAuY3BwCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyAr
NTAsNiBAQCBQYXNzUmVmUHRyPE5QUmVtb3RlT2JqZWN0TWFwPiBOUFJlbW90ZU9iCiAKIE5QUmVt
b3RlT2JqZWN0TWFwOjpOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2lzSW52YWxp
ZGF0aW5nKGZhbHNlKQogewogfQogCkBAIC03MSwxMCArNzAsMTAgQEAgTlBPYmplY3QqIE5QUmVt
b3RlT2JqZWN0TWFwOjpjcmVhdGVOUE9iagogCiB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpucE9i
amVjdFByb3h5RGVzdHJveWVkKE5QT2JqZWN0KiBucE9iamVjdCkKIHsKLSAgICBBU1NFUlQoTlBP
YmplY3RQcm94eTo6aXNOUE9iamVjdFByb3h5KG5wT2JqZWN0KSk7Ci0gICAgQVNTRVJUKG1fbnBP
YmplY3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0KSk7CisgICAgTlBPYmplY3RQcm94eSogbnBP
YmplY3RQcm94eSA9IE5QT2JqZWN0UHJveHk6OnRvTlBPYmplY3RQcm94eShucE9iamVjdCk7Cisg
ICAgQVNTRVJUKG1fbnBPYmplY3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKIAot
ICAgIG1fbnBPYmplY3RQcm94aWVzLnJlbW92ZShucE9iamVjdCk7CisgICAgbV9ucE9iamVjdFBy
b3hpZXMucmVtb3ZlKG5wT2JqZWN0UHJveHkpOwogfQogCiB1aW50NjRfdCBOUFJlbW90ZU9iamVj
dE1hcDo6cmVnaXN0ZXJOUE9iamVjdChOUE9iamVjdCogbnBPYmplY3QsIFBsdWdpbiogcGx1Z2lu
KQpAQCAtMTg3LDI1ICsxODYsMzcgQEAgTlBWYXJpYW50IE5QUmVtb3RlT2JqZWN0TWFwOjpucFZh
cmlhbnREYQogICAgIHJldHVybiBucFZhcmlhbnQ7CiB9CiAKLXZvaWQgTlBSZW1vdGVPYmplY3RN
YXA6OmludmFsaWRhdGUoKQordm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVk
KFBsdWdpbiogcGx1Z2luKQogewotICAgIEFTU0VSVCghbV9pc0ludmFsaWRhdGluZyk7Ci0KLSAg
ICBtX2lzSW52YWxpZGF0aW5nID0gdHJ1ZTsKLQogICAgIFZlY3RvcjxOUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlcio+IG1lc3NhZ2VSZWNlaXZlcnM7Ci0gICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcmVn
aXN0ZXJlZE5QT2JqZWN0cywgbWVzc2FnZVJlY2VpdmVycyk7CisKKyAgICAvLyBHYXRoZXIgdGhl
IHJlY2VpdmVycyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwbHVnLWluLgorICAgIGZvciAoSGFzaE1h
cDx1aW50NjRfdCwgTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX3JlZ2lzdGVyZWROUE9iamVjdHMuYmVnaW4oKSwgZW5kID0gbV9yZWdpc3RlcmVkTlBPYmpl
Y3RzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgTlBPYmplY3RNZXNzYWdlUmVj
ZWl2ZXIqIG5wT2JqZWN0TWVzc2FnZVJlY2VpdmVyID0gaXQtPnNlY29uZDsKKyAgICAgICAgaWYg
KG5wT2JqZWN0TWVzc2FnZVJlY2VpdmVyLT5wbHVnaW4oKSA9PSBwbHVnaW4pCisgICAgICAgICAg
ICBtZXNzYWdlUmVjZWl2ZXJzLmFwcGVuZChucE9iamVjdE1lc3NhZ2VSZWNlaXZlcik7CisgICAg
fQogCiAgICAgLy8gTm93IGRlbGV0ZSBhbGwgdGhlIHJlY2VpdmVycy4KICAgICBkZWxldGVBbGxW
YWx1ZXMobWVzc2FnZVJlY2VpdmVycyk7CiAKLSAgICBBU1NFUlQobV9yZWdpc3RlcmVkTlBPYmpl
Y3RzLmlzRW1wdHkoKSk7CisgICAgVmVjdG9yPE5QT2JqZWN0UHJveHkqPiBvYmplY3RQcm94aWVz
OworICAgIGZvciAoSGFzaFNldDxOUE9iamVjdFByb3h5Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9ucE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBOUE9iamVjdFByb3h5KiBucE9iamVjdFByb3h5
ID0gKml0OwogCi0gICAgZm9yIChIYXNoU2V0PE5QT2JqZWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbV9ucE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5k
KCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgTlBPYmplY3RQcm94eTo6dG9OUE9iamVjdFBy
b3h5KCppdCktPmludmFsaWRhdGUoKTsKLSAgICBtX25wT2JqZWN0UHJveGllcy5jbGVhcigpOwor
ICAgICAgICBpZiAobnBPYmplY3RQcm94eS0+cGx1Z2luKCkgPT0gcGx1Z2luKQorICAgICAgICAg
ICAgb2JqZWN0UHJveGllcy5hcHBlbmQobnBPYmplY3RQcm94eSk7CisgICAgfQorCisgICAgLy8g
SW52YWxpZGF0ZSBhbmQgcmVtb3ZlIGFsbCBwcm94aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBs
dWctaW4uCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RQcm94aWVzLnNpemUoKTsg
KytpKSB7CisgICAgICAgIE5QT2JqZWN0UHJveHkqIG5wT2JqZWN0UHJveHkgPSBvYmplY3RQcm94
aWVzW2ldOwogCi0gICAgbV9pc0ludmFsaWRhdGluZyA9IGZhbHNlOworICAgICAgICBucE9iamVj
dFByb3h5LT5pbnZhbGlkYXRlKCk7CisKKyAgICAgICAgQVNTRVJUKG1fbnBPYmplY3RQcm94aWVz
LmNvbnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKKyAgICAgICAgbV9ucE9iamVjdFByb3hpZXMucmVt
b3ZlKG5wT2JqZWN0UHJveHkpOworICAgIH0KIH0KIAogQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBO
UFJlbW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5
KQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9i
amVjdE1hcC5oCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL05QUmVtb3RlT2JqZWN0TWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDkgKzYxLDggQEAg
cHVibGljOgogICAgIE5QVmFyaWFudCBucFZhcmlhbnREYXRhVG9OUFZhcmlhbnQoY29uc3QgTlBW
YXJpYW50RGF0YSYsIFBsdWdpbiopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQotICAgIGJvb2wgaXNJbnZhbGlk
YXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzSW52YWxpZGF0aW5nOyB9CiAKLSAgICB2b2lkIGlu
dmFsaWRhdGUoKTsKKyAgICB2b2lkIHBsdWdpbkRlc3Ryb3llZChQbHVnaW4qKTsKIAogICAgIENv
cmVJUEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJl
cGx5KTsKIApAQCAtNzEsMTQgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTlBSZW1v
dGVPYmplY3RNYXAoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIENvcmVJUEM6OkNvbm5lY3Rp
b24qIG1fY29ubmVjdGlvbjsKIAotICAgIGJvb2wgbV9pc0ludmFsaWRhdGluZzsKLQogICAgIC8v
IEEgbWFwIG9mIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIGNsYXNzZXMsIHdyYXBwaW5nIG9iamVj
dHMgdGhhdCB3ZSBleHBvcnQgdG8gdGhlCiAgICAgLy8gb3RoZXIgZW5kIG9mIHRoZSBjb25uZWN0
aW9uLgogICAgIEhhc2hNYXA8dWludDY0X3QsIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKj4gbV9y
ZWdpc3RlcmVkTlBPYmplY3RzOwogCiAgICAgLy8gQSBzZXQgb2YgTlBPYmplY3RQcm94eSBvYmpl
Y3RzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcC4KLSAgICBIYXNoU2V0PE5QT2JqZWN0Kj4gbV9u
cE9iamVjdFByb3hpZXM7CisgICAgSGFzaFNldDxOUE9iamVjdFByb3h5Kj4gbV9ucE9iamVjdFBy
b3hpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uLmNwcAkocmV2aXNpb24gODEyODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MiwxMyArNjIsMTIgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlUGx1Zwog
ICAgIEFTU0VSVChtX3BsdWdpbnMuY29udGFpbnMocGx1Z2luLT5wbHVnaW5JbnN0YW5jZUlEKCkp
KTsKICAgICBtX3BsdWdpbnMucmVtb3ZlKHBsdWdpbi0+cGx1Z2luSW5zdGFuY2VJRCgpKTsKIAor
ICAgIC8vIEludmFsaWRhdGUgYWxsIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIHBsdWctaW4uCisg
ICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+cGx1Z2luRGVzdHJveWVkKHBsdWdpbik7CisKICAgICBp
ZiAoIW1fcGx1Z2lucy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEludmFs
aWRhdGUgb3VyIHJlbW90ZSBvYmplY3QgbWFwLgotICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmlu
dmFsaWRhdGUoKTsKLSAgICBtX25wUmVtb3RlT2JqZWN0TWFwID0gMDsKLSAgICAKICAgICAvLyBX
ZSBoYXZlIG5vIG1vcmUgcGx1Zy1pbnMsIGludmFsaWRhdGUgdGhlIGNvbm5lY3Rpb24gdG8gdGhl
IHBsdWctaW4gcHJvY2Vzcy4KICAgICBBU1NFUlQobV9jb25uZWN0aW9uKTsKICAgICBtX2Nvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86015</attachid>
            <date>2011-03-16 18:11:19 -0700</date>
            <delta_ts>2011-03-16 18:35:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56511-20110316181117.patch</filename>
            <type>text/plain</type>
            <size>12366</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzA0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDMtMTYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIGFsbCBOUE9iamVjdHMgZm9yIGEgcGx1
Zy1pbiB3aGVuIHRoYXQgcGx1Zy1pbiBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTkzNDkxPgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgd2Ugd291bGQgaW52YWxp
ZGF0ZSBOUE9iamVjdFByb3h5IG9iamVjdHMgYW5kIGRlbGV0ZSBOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcgorICAgICAgICBvYmplY3RzIHdoZW4gdGhlIGxhc3QgcGx1Zy1pbiBvZiBhIGNlcnRhaW4g
dHlwZSB3YXMgZGVzdHJveWVkLiBEb2luZyBzbyBjYXVzZWQgdXMgdG8gaG9sZCBvbiB0byBtZW1v
cnkKKyAgICAgICAgd2hpY2ggd2UgZG9uJ3QgbmVlZCwgYW5kIGNvdWxkIGFsc28gbGVhZCB0byBj
cmFzaGVzIGlmIHRoZSBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciB3b3VsZCBnZXQgYSBtZXNzYWdl
IGFuZAorICAgICAgICB0cmllZCB0byBpbnZva2UgaXQgb24gYSBhbHJlYWR5IGRlYWxsb2NhdGVk
IE5QT2JqZWN0LgorICAgICAgICAKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnBs
dWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OnJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eSk6CisgICAgICAgIENhbGwgTlBSZW1v
dGVPYmplY3RNYXA6OnBsdWdpbkRlc3Ryb3llZCB3aGVuIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRl
c3Ryb3llZC4KKworICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI6Ok5QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RNZXNzYWdlUmVj
ZWl2ZXI6On5OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgICogU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaDoKKyAgICAgICAgUmVtb3ZlIG1fc2hvdWxkUmVs
ZWFzZU9iamVjdFdoZW5JbnZhbGlkYXRpbmcsIHdlIG5vdyBrbm93IHRoYXQgbm8gTlBPYmplY3Rz
IHdpbGwgaGF2ZSBiZWVuIGRlYWxsb2NhdGVkCisgICAgICAgIGJ5IHRoZSB0aW1lIHRoZSBOUE9i
amVjdE1lc3NhZ2VSZWNlaXZlciBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKFdlYktpdDo6TlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI6OnBsdWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAg
ICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
Ok5QT2JqZWN0UHJveHk6OnBsdWdpbik6CisgICAgICAgIEFkZCBnZXR0ZXIuCisKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5QUmVtb3RlT2JqZWN0TWFwOjpOUFJlbW90ZU9iamVjdE1hcCk6CisgICAgICAgIFJlbW92ZSBt
X2lzSW52YWxpZGF0aW5nLgorCisgICAgICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpu
cE9iamVjdFByb3h5RGVzdHJveWVkKToKKyAgICAgICAgU2ltcGxpZnkgY29kZS4KKworICAgICAg
ICAoV2ViS2l0OjpOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVkKToKKyAgICAgICAg
UmVuYW1lIGludmFsaWRhdGUgdG8gcGx1Z2luRGVzdHJveWVkLiBPbmx5IGludmFsaWRhdGUvZGVs
ZXRlIG9iamVjdHMgdGhhdCBiZWxvbmcgdG8gdGhlIGdpdmVuIHBsdWctaW4uCisKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oOgorICAgICAgICBSZW1vdmUgbV9p
c0ludmFsaWRhdGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uOjpyZW1vdmVQbHVnaW5Qcm94eSk6CisgICAgICAgIENhbGwgTlBSZW1vdGVPYmplY3RNYXA6
OnBsdWdpbkRlc3Ryb3llZCB3aGVuIHRoZSBwbHVnLWluIGhhcyBiZWVuIGRlc3Ryb3llZC4KKwog
MjAxMS0wMy0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJKHJldmlzaW9uIDgx
Mjg3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBsdWdpbkluc3RhbmNlSUQsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBpc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICAgICB+UGx1Z2luQ29udHJvbGxlclByb3h5KCk7
CiAKKyAgICBQbHVnaW4qIHBsdWdpbigpIHsgcmV0dXJuIG1fcGx1Z2luLmdldCgpOyB9CisKICAg
ICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5JbnN0
YW5jZUlEOyB9CiAKICAgICBib29sIGluaXRpYWxpemUoY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gODEyODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzgsMTIgKzc4LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpbkMK
ICAgICAgICAgT3duUHRyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gcGx1Z2luQ29udHJvbGxlck93
blB0ciA9IGFkb3B0UHRyKG1fcGx1Z2luQ29udHJvbGxlcnMudGFrZShwbHVnaW5Db250cm9sbGVy
LT5wbHVnaW5JbnN0YW5jZUlEKCkpKTsKICAgICAgICAgQVNTRVJUKHBsdWdpbkNvbnRyb2xsZXJP
d25QdHIgPT0gcGx1Z2luQ29udHJvbGxlcik7CiAgICAgfQotICAgIAorCisgICAgLy8gSW52YWxp
ZGF0ZSBhbGwgb2JqZWN0cyByZWxhdGVkIHRvIHRoaXMgcGx1Zy1pbi4KKyAgICBtX25wUmVtb3Rl
T2JqZWN0TWFwLT5wbHVnaW5EZXN0cm95ZWQocGx1Z2luQ29udHJvbGxlci0+cGx1Z2luKCkpOwor
CiAgICAgaWYgKCFtX3BsdWdpbkNvbnRyb2xsZXJzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgLy8gSW52YWxpZGF0ZSBvdXIgcmVtb3RlIG9iamVjdCBtYXAuCi0gICAgbV9ucFJl
bW90ZU9iamVjdE1hcC0+aW52YWxpZGF0ZSgpOwogICAgIG1fbnBSZW1vdGVPYmplY3RNYXAgPSBu
dWxscHRyOwogCiAgICAgLy8gVGhlIGxhc3QgcGx1Zy1pbiB3ZW50IGF3YXksIGNsb3NlIHRoaXMg
Y29ubmVjdGlvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0
TWVzc2FnZVJlY2VpdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAJKHJldmlzaW9uIDgxMjk2KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw2IEBACiAjaW5jbHVkZSAiTlBSdW50aW1lVXRp
bGl0aWVzLmgiCiAjaW5jbHVkZSAiTlBWYXJpYW50RGF0YS5oIgogCi0vLyBGSVhNRTogVGhpcyBj
b2RlIHNob3VsZG4ndCBrbm93IGFib3V0IE5QSlNPYmplY3QuCi0jaW5jbHVkZSAiTlBKU09iamVj
dC5oIgotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlcj4gTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI6OmNyZWF0ZShOUFJlbW90ZU9iamVjdE1h
cCogbnBSZW1vdGVPYmplY3RNYXAsIFBsdWdpbiogcGx1Z2luLCB1aW50NjRfdCBucE9iamVjdElE
LCBOUE9iamVjdCogbnBPYmplY3QpCkBAIC00OCw3ICs0NSw2IEBAIE5QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyOjpOUE9iamVjdE1lc3NhZ2UKICAgICAsIG1fcGx1Z2luKHBsdWdpbikKICAgICAsIG1f
bnBPYmplY3RJRChucE9iamVjdElEKQogICAgICwgbV9ucE9iamVjdChucE9iamVjdCkKLSAgICAs
IG1fc2hvdWxkUmVsZWFzZU9iamVjdFdoZW5JbnZhbGlkYXRpbmcoIU5QSlNPYmplY3Q6OmlzTlBK
U09iamVjdChucE9iamVjdCkpCiB7CiAgICAgcmV0YWluTlBPYmplY3QobV9ucE9iamVjdCk7CiB9
CkBAIC01NywxMyArNTMsNiBAQCBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6fk5QT2JqZWN0TWVz
c2FnCiB7CiAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+dW5yZWdpc3Rlck5QT2JqZWN0KG1fbnBP
YmplY3RJRCk7CiAKLSAgICAvLyBJZiB3ZSdyZSBpbnZhbGlkYXRpbmcgdGhlIHJlbW90ZSBvYmpl
Y3QgbWFwLCB3ZSBkb24ndCBhbHdheXMgd2FudCB0byByZWxlYXNlIHRoZSB1bmRlcmx5aW5nIE5Q
T2JqZWN0LgotICAgIC8vIE9uZSBleGFtcGxlIG9mIHRoaXMgaXMgTlBKU09iamVjdHMgaW4gdGhl
IFdlYiBwcm9jZXNzLCB3aGljaCBoYXZlIGFscmVhZHkgYmVlbiBkZWFsbG9jYXRlZCBieSB0aGUg
cGx1Zy1pbiB2aWV3LgotICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5vdCB0aGUgaWRlYWwgd2F5IHRv
IGhhbmRsZSB0aGlzLiBNYXliZSBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBzaG91bGQgYmUgbm90
aWZpZWQgc29tZWhvdyB3aGVuIHRoZSB1bmRlcmx5aW5nCi0gICAgLy8gTlBPYmplY3QgaXMgZGVh
bGxvY2F0ZWQuCi0gICAgaWYgKG1fbnBSZW1vdGVPYmplY3RNYXAtPmlzSW52YWxpZGF0aW5nKCkg
JiYgIW1fc2hvdWxkUmVsZWFzZU9iamVjdFdoZW5JbnZhbGlkYXRpbmcpCi0gICAgICAgIHJldHVy
bjsKLQogICAgIHJlbGVhc2VOUE9iamVjdChtX25wT2JqZWN0KTsKIH0KIApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNl
aXZlci5oCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcg
QEAgcHVibGljOgogCiAgICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBkaWRSZWNlaXZlU3luY05Q
T2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKTsKIAorICAgIFBsdWdpbiogcGx1Z2luKCkgY29uc3QgeyByZXR1cm4gbV9wbHVn
aW47IH0KICAgICBOUE9iamVjdCogbnBPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX25wT2JqZWN0
OyB9CiAgICAgCiBwcml2YXRlOgpAQCAtNzAsNyArNzEsNiBAQCBwcml2YXRlOgogICAgIFBsdWdp
biogbV9wbHVnaW47CiAgICAgdWludDY0X3QgbV9ucE9iamVjdElEOwogICAgIE5QT2JqZWN0KiBt
X25wT2JqZWN0OwotICAgIGJvb2wgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGlu
ZzsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmgJKHJldmlzaW9uIDgxMjk2KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PE5QT2JqZWN0UHJveHkqPihucE9iamVjdCk7CiAgICAgfQogCisgICAgUGx1Z2luKiBwbHVnaW4o
KSBjb25zdCB7IHJldHVybiBtX3BsdWdpbjsgfQogICAgIHVpbnQ2NF90IG5wT2JqZWN0SUQoKSBj
b25zdCB7IHJldHVybiBtX25wT2JqZWN0SUQ7IH0KIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcAkocmV2aXNpb24gODEyOTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYg
QEAgUGFzc1JlZlB0cjxOUFJlbW90ZU9iamVjdE1hcD4gTlBSZW1vdGVPYgogCiBOUFJlbW90ZU9i
amVjdE1hcDo6TlBSZW1vdGVPYmplY3RNYXAoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9pc0ludmFsaWRhdGlu
ZyhmYWxzZSkKIHsKIH0KIApAQCAtNzEsMTAgKzcwLDEwIEBAIE5QT2JqZWN0KiBOUFJlbW90ZU9i
amVjdE1hcDo6Y3JlYXRlTlBPYmoKIAogdm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6bnBPYmplY3RQ
cm94eURlc3Ryb3llZChOUE9iamVjdCogbnBPYmplY3QpCiB7Ci0gICAgQVNTRVJUKE5QT2JqZWN0
UHJveHk6OmlzTlBPYmplY3RQcm94eShucE9iamVjdCkpOwotICAgIEFTU0VSVChtX25wT2JqZWN0
UHJveGllcy5jb250YWlucyhucE9iamVjdCkpOworICAgIE5QT2JqZWN0UHJveHkqIG5wT2JqZWN0
UHJveHkgPSBOUE9iamVjdFByb3h5Ojp0b05QT2JqZWN0UHJveHkobnBPYmplY3QpOworICAgIEFT
U0VSVChtX25wT2JqZWN0UHJveGllcy5jb250YWlucyhucE9iamVjdFByb3h5KSk7CiAKLSAgICBt
X25wT2JqZWN0UHJveGllcy5yZW1vdmUobnBPYmplY3QpOworICAgIG1fbnBPYmplY3RQcm94aWVz
LnJlbW92ZShucE9iamVjdFByb3h5KTsKIH0KIAogdWludDY0X3QgTlBSZW1vdGVPYmplY3RNYXA6
OnJlZ2lzdGVyTlBPYmplY3QoTlBPYmplY3QqIG5wT2JqZWN0LCBQbHVnaW4qIHBsdWdpbikKQEAg
LTE4NywyNSArMTg2LDM3IEBAIE5QVmFyaWFudCBOUFJlbW90ZU9iamVjdE1hcDo6bnBWYXJpYW50
RGEKICAgICByZXR1cm4gbnBWYXJpYW50OwogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpp
bnZhbGlkYXRlKCkKK3ZvaWQgTlBSZW1vdGVPYmplY3RNYXA6OnBsdWdpbkRlc3Ryb3llZChQbHVn
aW4qIHBsdWdpbikKIHsKLSAgICBBU1NFUlQoIW1faXNJbnZhbGlkYXRpbmcpOwotCi0gICAgbV9p
c0ludmFsaWRhdGluZyA9IHRydWU7Ci0KICAgICBWZWN0b3I8TlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIqPiBtZXNzYWdlUmVjZWl2ZXJzOwotICAgIGNvcHlWYWx1ZXNUb1ZlY3RvcihtX3JlZ2lzdGVy
ZWROUE9iamVjdHMsIG1lc3NhZ2VSZWNlaXZlcnMpOworCisgICAgLy8gR2F0aGVyIHRoZSByZWNl
aXZlcnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGx1Zy1pbi4KKyAgICBmb3IgKEhhc2hNYXA8dWlu
dDY0X3QsIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9y
ZWdpc3RlcmVkTlBPYmplY3RzLmJlZ2luKCksIGVuZCA9IG1fcmVnaXN0ZXJlZE5QT2JqZWN0cy5l
bmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
KiBucE9iamVjdE1lc3NhZ2VSZWNlaXZlciA9IGl0LT5zZWNvbmQ7CisgICAgICAgIGlmIChucE9i
amVjdE1lc3NhZ2VSZWNlaXZlci0+cGx1Z2luKCkgPT0gcGx1Z2luKQorICAgICAgICAgICAgbWVz
c2FnZVJlY2VpdmVycy5hcHBlbmQobnBPYmplY3RNZXNzYWdlUmVjZWl2ZXIpOworICAgIH0KIAog
ICAgIC8vIE5vdyBkZWxldGUgYWxsIHRoZSByZWNlaXZlcnMuCiAgICAgZGVsZXRlQWxsVmFsdWVz
KG1lc3NhZ2VSZWNlaXZlcnMpOwogCi0gICAgQVNTRVJUKG1fcmVnaXN0ZXJlZE5QT2JqZWN0cy5p
c0VtcHR5KCkpOworICAgIFZlY3RvcjxOUE9iamVjdFByb3h5Kj4gb2JqZWN0UHJveGllczsKKyAg
ICBmb3IgKEhhc2hTZXQ8TlBPYmplY3RQcm94eSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fbnBP
YmplY3RQcm94aWVzLmJlZ2luKCksIGVuZCA9IG1fbnBPYmplY3RQcm94aWVzLmVuZCgpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKKyAgICAgICAgTlBPYmplY3RQcm94eSogbnBPYmplY3RQcm94eSA9ICpp
dDsKIAotICAgIGZvciAoSGFzaFNldDxOUE9iamVjdCo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1f
bnBPYmplY3RQcm94aWVzLmJlZ2luKCksIGVuZCA9IG1fbnBPYmplY3RQcm94aWVzLmVuZCgpOyBp
dCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIE5QT2JqZWN0UHJveHk6OnRvTlBPYmplY3RQcm94eSgq
aXQpLT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9ucE9iamVjdFByb3hpZXMuY2xlYXIoKTsKKyAgICAg
ICAgaWYgKG5wT2JqZWN0UHJveHktPnBsdWdpbigpID09IHBsdWdpbikKKyAgICAgICAgICAgIG9i
amVjdFByb3hpZXMuYXBwZW5kKG5wT2JqZWN0UHJveHkpOworICAgIH0KKworICAgIC8vIEludmFs
aWRhdGUgYW5kIHJlbW92ZSBhbGwgcHJveGllcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwbHVnLWlu
LgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0UHJveGllcy5zaXplKCk7ICsraSkg
eworICAgICAgICBOUE9iamVjdFByb3h5KiBucE9iamVjdFByb3h5ID0gb2JqZWN0UHJveGllc1tp
XTsKIAotICAgIG1faXNJbnZhbGlkYXRpbmcgPSBmYWxzZTsKKyAgICAgICAgbnBPYmplY3RQcm94
eS0+aW52YWxpZGF0ZSgpOworCisgICAgICAgIEFTU0VSVChtX25wT2JqZWN0UHJveGllcy5jb250
YWlucyhucE9iamVjdFByb3h5KSk7CisgICAgICAgIG1fbnBPYmplY3RQcm94aWVzLnJlbW92ZShu
cE9iamVjdFByb3h5KTsKKyAgICB9CiB9CiAKIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgTlBSZW1v
dGVPYmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RN
YXAuaAkocmV2aXNpb24gODEyOTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
UFJlbW90ZU9iamVjdE1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw5ICs2MSw4IEBAIHB1Ymxp
YzoKICAgICBOUFZhcmlhbnQgbnBWYXJpYW50RGF0YVRvTlBWYXJpYW50KGNvbnN0IE5QVmFyaWFu
dERhdGEmLCBQbHVnaW4qKTsKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KLSAgICBib29sIGlzSW52YWxpZGF0aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ludmFsaWRhdGluZzsgfQogCi0gICAgdm9pZCBpbnZhbGlk
YXRlKCk7CisgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKICAgICBDb3JlSVBD
OjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSk7
CiAKQEAgLTcxLDE0ICs3MCwxMiBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5QUmVtb3RlT2Jq
ZWN0TWFwKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBt
X2Nvbm5lY3Rpb247CiAKLSAgICBib29sIG1faXNJbnZhbGlkYXRpbmc7Ci0KICAgICAvLyBBIG1h
cCBvZiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciBjbGFzc2VzLCB3cmFwcGluZyBvYmplY3RzIHRo
YXQgd2UgZXhwb3J0IHRvIHRoZQogICAgIC8vIG90aGVyIGVuZCBvZiB0aGUgY29ubmVjdGlvbi4K
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcio+IG1fcmVnaXN0
ZXJlZE5QT2JqZWN0czsKIAogICAgIC8vIEEgc2V0IG9mIE5QT2JqZWN0UHJveHkgb2JqZWN0cyBh
c3NvY2lhdGVkIHdpdGggdGhpcyBtYXAuCi0gICAgSGFzaFNldDxOUE9iamVjdCo+IG1fbnBPYmpl
Y3RQcm94aWVzOworICAgIEhhc2hTZXQ8TlBPYmplY3RQcm94eSo+IG1fbnBPYmplY3RQcm94aWVz
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bi5jcHAJKHJldmlzaW9uIDgxMjg3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTMg
KzYyLDE0IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWcKICAgICBB
U1NFUlQobV9wbHVnaW5zLmNvbnRhaW5zKHBsdWdpbi0+cGx1Z2luSW5zdGFuY2VJRCgpKSk7CiAg
ICAgbV9wbHVnaW5zLnJlbW92ZShwbHVnaW4tPnBsdWdpbkluc3RhbmNlSUQoKSk7CiAKKyAgICAv
LyBJbnZhbGlkYXRlIGFsbCBvYmplY3RzIHJlbGF0ZWQgdG8gdGhpcyBwbHVnLWluLgorICAgIG1f
bnBSZW1vdGVPYmplY3RNYXAtPnBsdWdpbkRlc3Ryb3llZChwbHVnaW4pOworCiAgICAgaWYgKCFt
X3BsdWdpbnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBJbnZhbGlkYXRl
IG91ciByZW1vdGUgb2JqZWN0IG1hcC4KLSAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT5pbnZhbGlk
YXRlKCk7Ci0gICAgbV9ucFJlbW90ZU9iamVjdE1hcCA9IDA7Ci0gICAgCisgICAgbV9ucFJlbW90
ZU9iamVjdE1hcCA9IG51bGxwdHI7CisKICAgICAvLyBXZSBoYXZlIG5vIG1vcmUgcGx1Zy1pbnMs
IGludmFsaWRhdGUgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHBsdWctaW4gcHJvY2Vzcy4KICAgICBB
U1NFUlQobV9jb25uZWN0aW9uKTsKICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86016</attachid>
            <date>2011-03-16 18:35:47 -0700</date>
            <delta_ts>2011-03-16 19:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56511-20110316183545.patch</filename>
            <type>text/plain</type>
            <size>15104</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzA2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDMtMTYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIGFsbCBOUE9iamVjdHMgZm9yIGEgcGx1
Zy1pbiB3aGVuIHRoYXQgcGx1Zy1pbiBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTkzNDkxPgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgd2Ugd291bGQgaW52YWxp
ZGF0ZSBOUE9iamVjdFByb3h5IG9iamVjdHMgYW5kIGRlbGV0ZSBOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcgorICAgICAgICBvYmplY3RzIHdoZW4gdGhlIGxhc3QgcGx1Zy1pbiBvZiBhIGNlcnRhaW4g
dHlwZSB3YXMgZGVzdHJveWVkLiBEb2luZyBzbyBjYXVzZWQgdXMgdG8gaG9sZCBvbiB0byBtZW1v
cnkKKyAgICAgICAgd2hpY2ggd2UgZG9uJ3QgbmVlZCwgYW5kIGNvdWxkIGFsc28gbGVhZCB0byBj
cmFzaGVzIGlmIHRoZSBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciB3b3VsZCBnZXQgYSBtZXNzYWdl
IGFuZAorICAgICAgICB0cmllZCB0byBpbnZva2UgaXQgb24gYSBhbHJlYWR5IGRlYWxsb2NhdGVk
IE5QT2JqZWN0LgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxp
emUpOgorICAgICAgICBJZiB3ZSBmYWlsIHRvIGluaXRpYWxpemUsIGNhbGwgcmVtb3ZlUGx1Z2lu
Q29udHJvbGxlclByb3h5IGluc3RlYWQgb2YgaGF2aW5nIFdlYlByb2Nlc3NDb25uZWN0aW9uIGRv
IHNvLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSk6
CisgICAgICAgIFBhc3MgdGhlIHBsdWctaW4gdG8gcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5
LgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Db250cm9s
bGVyUHJveHkpOgorICAgICAgICBDYWxsIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95
ZWQgd2hlbiB0aGUgcGx1Zy1pbiBoYXMgYmVlbiBkZXN0cm95ZWQuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIERvbid0IGNh
bGwgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5IGlmIHRoZSBwbHVnLWluIGZhaWxzIHRvIGlu
aXRpYWxpemUuIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZSBub3cKKyAgICAgICAg
dGFrZXMgY2FyZSBvZiBkb2luZyB0aGlzLgorCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcjo6TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpO
UE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6fk5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oOgorICAgICAgICBS
ZW1vdmUgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZywgd2Ugbm93IGtub3cg
dGhhdCBubyBOUE9iamVjdHMgd2lsbCBoYXZlIGJlZW4gZGVhbGxvY2F0ZWQKKyAgICAgICAgYnkg
dGhlIHRpbWUgdGhlIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIGlzIGRlc3Ryb3llZC4KKworICAg
ICAgICAoV2ViS2l0OjpOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6cGx1Z2luKToKKyAgICAgICAg
QWRkIGdldHRlci4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpOUE9iamVjdFByb3h5OjpwbHVnaW4pOgorICAgICAg
ICBBZGQgZ2V0dGVyLgorICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90
ZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpOUFJl
bW90ZU9iamVjdE1hcCk6CisgICAgICAgIFJlbW92ZSBtX2lzSW52YWxpZGF0aW5nLgorCisgICAg
ICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpucE9iamVjdFByb3h5RGVzdHJveWVkKToK
KyAgICAgICAgU2ltcGxpZnkgY29kZS4KKworICAgICAgICAoV2ViS2l0OjpOUFJlbW90ZU9iamVj
dE1hcDo6cGx1Z2luRGVzdHJveWVkKToKKyAgICAgICAgUmVuYW1lIGludmFsaWRhdGUgdG8gcGx1
Z2luRGVzdHJveWVkLiBPbmx5IGludmFsaWRhdGUvZGVsZXRlIG9iamVjdHMgdGhhdCBiZWxvbmcg
dG8gdGhlIGdpdmVuIHBsdWctaW4uCisKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90
ZU9iamVjdE1hcC5oOgorICAgICAgICBSZW1vdmUgbV9pc0ludmFsaWRhdGluZy4KKyAgICAgICAg
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdp
blByb3h5KToKKyAgICAgICAgQ2FsbCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVk
IHdoZW4gdGhlIHBsdWctaW4gaGFzIGJlZW4gZGVzdHJveWVkLgorCiAyMDExLTAzLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDgxMjk2KQorKysgU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Miw3ICs4MiwxNCBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
aW5pdGlhbGl6ZShjCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9wbHVnaW4t
PmluaXRpYWxpemUodGhpcywgcGFyYW1ldGVycykpIHsKKyAgICAgICAgLy8gR2V0IHRoZSBwbHVn
LWluIHNvIHdlIGNhbiBwYXNzIGl0IHRvIHJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eS4gVGhl
IHBvaW50ZXIgaXMgb25seQorICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgorICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOworICAgICAgICAKICAgICAgICAgbV9wbHVnaW4gPSAwOworCisg
ICAgICAgIC8vIFRoaXMgd2lsbCBkZWxldGUgdGhlIHBsdWctaW4gY29udHJvbGxlciBwcm94eSBv
YmplY3QuCisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5
KHRoaXMsIHBsdWdpbik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTEwMiwx
MyArMTA5LDE3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpkZXN0cm95KCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIEdldCB0aGUgcGx1Zy1pbiBzbyB3ZSBjYW4gcGFz
cyBpdCB0byByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkuIFRoZSBwb2ludGVyIGlzIG9ubHkK
KyAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQncyBPSyB0byBqdXN0IGdldCBhIHdl
YWsgcmVmZXJlbmNlLgorICAgIFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4uZ2V0KCk7CisKICAg
ICBtX3BsdWdpbi0+ZGVzdHJveSgpOwogICAgIG1fcGx1Z2luID0gMDsKIAogICAgIHBsYXRmb3Jt
RGVzdHJveSgpOwogCiAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0aGUgcGx1Zy1pbiBjb250cm9s
bGVyIHByb3h5IG9iamVjdC4KLSAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRyb2xs
ZXJQcm94eSh0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQ
cm94eSh0aGlzLCBwbHVnaW4pOwogfQogCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGFp
bnQoKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgxMjg3KQorKysgU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcwLDIwICs3MCwyMyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkZXN0cm95UGx1Z2lu
CiAgICAgcGx1Z2luQ29udHJvbGxlci0+ZGVzdHJveSgpOwogfQogCi12b2lkIFdlYlByb2Nlc3ND
b25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2luQ29udHJvbGxlclBy
b3h5KiBwbHVnaW5Db250cm9sbGVyKQordm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3Zl
UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSogcGx1Z2luQ29udHJv
bGxlciwgUGx1Z2luKiBwbHVnaW4pCiB7CisgICAgQVNTRVJUKHBsdWdpbik7CisKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3BsdWdpbkNvbnRyb2xsZXJzLmNvbnRhaW5zKHBsdWdpbkNvbnRyb2xs
ZXItPnBsdWdpbkluc3RhbmNlSUQoKSkpOwogCiAgICAgICAgIE93blB0cjxQbHVnaW5Db250cm9s
bGVyUHJveHk+IHBsdWdpbkNvbnRyb2xsZXJPd25QdHIgPSBhZG9wdFB0cihtX3BsdWdpbkNvbnRy
b2xsZXJzLnRha2UocGx1Z2luQ29udHJvbGxlci0+cGx1Z2luSW5zdGFuY2VJRCgpKSk7CiAgICAg
ICAgIEFTU0VSVChwbHVnaW5Db250cm9sbGVyT3duUHRyID09IHBsdWdpbkNvbnRyb2xsZXIpOwog
ICAgIH0KLSAgICAKKworICAgIC8vIEludmFsaWRhdGUgYWxsIG9iamVjdHMgcmVsYXRlZCB0byB0
aGlzIHBsdWctaW4uCisgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+cGx1Z2luRGVzdHJveWVkKHBs
dWdpbik7CisKICAgICBpZiAoIW1fcGx1Z2luQ29udHJvbGxlcnMuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBJbnZhbGlkYXRlIG91ciByZW1vdGUgb2JqZWN0IG1hcC4KLSAg
ICBtX25wUmVtb3RlT2JqZWN0TWFwLT5pbnZhbGlkYXRlKCk7CiAgICAgbV9ucFJlbW90ZU9iamVj
dE1hcCA9IG51bGxwdHI7CiAKICAgICAvLyBUaGUgbGFzdCBwbHVnLWluIHdlbnQgYXdheSwgY2xv
c2UgdGhpcyBjb25uZWN0aW9uLgpAQCAtMTY3LDEzICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKAogICAgIC8vIE5vdyB0cnkgdG8gaW5pdGlhbGl6ZSB0
aGUgcGx1Zy1pbi4KICAgICByZXN1bHQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPmluaXRp
YWxpemUocGFyYW1ldGVycyk7CiAKLSAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJlbW90ZUxh
eWVyQ2xpZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50
SUQoKTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIC8v
IFdlIGZhaWxlZCB0byBpbml0aWFsaXplLCByZW1vdmUgdGhlIHBsdWctaW4gY29udHJvbGxlci4g
VGhpcyBjb3VsZCBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIHJlbW92ZVBsdWdpbkNvbnRy
b2xsZXJQcm94eShwbHVnaW5Db250cm9sbGVyUHJveHlQdHIpOworICAgIHJlbW90ZUxheWVyQ2xp
ZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50SUQoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiA4MTI4NykK
KysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsg
fQogICAgIE5QUmVtb3RlT2JqZWN0TWFwKiBucFJlbW90ZU9iamVjdE1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbnBSZW1vdGVPYmplY3RNYXAuZ2V0KCk7IH0KIAotICAgIHZvaWQgcmVtb3ZlUGx1Z2lu
Q29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSopOworICAgIHZvaWQgcmVtb3Zl
UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSosIFBsdWdpbiopOwog
CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9uKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RNZXNzYWdlUmVjZWl2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAkocmV2aXNpb24gODEyOTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDYgQEAKICNpbmNsdWRlICJOUFJ1bnRpbWVV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlhbnREYXRhLmgiCiAKLS8vIEZJWE1FOiBUaGlz
IGNvZGUgc2hvdWxkbid0IGtub3cgYWJvdXQgTlBKU09iamVjdC4KLSNpbmNsdWRlICJOUEpTT2Jq
ZWN0LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6Y3JlYXRlKE5QUmVtb3RlT2JqZWN0
TWFwKiBucFJlbW90ZU9iamVjdE1hcCwgUGx1Z2luKiBwbHVnaW4sIHVpbnQ2NF90IG5wT2JqZWN0
SUQsIE5QT2JqZWN0KiBucE9iamVjdCkKQEAgLTQ4LDcgKzQ1LDYgQEAgTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXI6Ok5QT2JqZWN0TWVzc2FnZQogICAgICwgbV9wbHVnaW4ocGx1Z2luKQogICAgICwg
bV9ucE9iamVjdElEKG5wT2JqZWN0SUQpCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQotICAg
ICwgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZyghTlBKU09iamVjdDo6aXNO
UEpTT2JqZWN0KG5wT2JqZWN0KSkKIHsKICAgICByZXRhaW5OUE9iamVjdChtX25wT2JqZWN0KTsK
IH0KQEAgLTU3LDEzICs1Myw2IEBAIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyOjp+TlBPYmplY3RN
ZXNzYWcKIHsKICAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT51bnJlZ2lzdGVyTlBPYmplY3QobV9u
cE9iamVjdElEKTsKIAotICAgIC8vIElmIHdlJ3JlIGludmFsaWRhdGluZyB0aGUgcmVtb3RlIG9i
amVjdCBtYXAsIHdlIGRvbid0IGFsd2F5cyB3YW50IHRvIHJlbGVhc2UgdGhlIHVuZGVybHlpbmcg
TlBPYmplY3QuCi0gICAgLy8gT25lIGV4YW1wbGUgb2YgdGhpcyBpcyBOUEpTT2JqZWN0cyBpbiB0
aGUgV2ViIHByb2Nlc3MsIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVuIGRlYWxsb2NhdGVkIGJ5IHRo
ZSBwbHVnLWluIHZpZXcuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IHRoZSBpZGVhbCB3YXkg
dG8gaGFuZGxlIHRoaXMuIE1heWJlIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIHNob3VsZCBiZSBu
b3RpZmllZCBzb21laG93IHdoZW4gdGhlIHVuZGVybHlpbmcKLSAgICAvLyBOUE9iamVjdCBpcyBk
ZWFsbG9jYXRlZC4KLSAgICBpZiAobV9ucFJlbW90ZU9iamVjdE1hcC0+aXNJbnZhbGlkYXRpbmco
KSAmJiAhbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZykKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgcmVsZWFzZU5QT2JqZWN0KG1fbnBPYmplY3QpOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyLmgJKHJldmlzaW9uIDgxMjk2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAKICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5j
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopOwogCisgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Bs
dWdpbjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmpl
Y3Q7IH0KICAgICAKIHByaXZhdGU6CkBAIC03MCw3ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgUGx1
Z2luKiBtX3BsdWdpbjsKICAgICB1aW50NjRfdCBtX25wT2JqZWN0SUQ7CiAgICAgTlBPYmplY3Qq
IG1fbnBPYmplY3Q7Ci0gICAgYm9vbCBtX3Nob3VsZFJlbGVhc2VPYmplY3RXaGVuSW52YWxpZGF0
aW5nOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAkocmV2aXNpb24gODEyOTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TlBPYmplY3RQcm94eSo+KG5wT2JqZWN0KTsKICAgICB9CiAKKyAgICBQbHVnaW4qIHBsdWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luOyB9CiAgICAgdWludDY0X3QgbnBPYmplY3RJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3RJRDsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVP
YmplY3RNYXAuY3BwCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAs
NiBAQCBQYXNzUmVmUHRyPE5QUmVtb3RlT2JqZWN0TWFwPiBOUFJlbW90ZU9iCiAKIE5QUmVtb3Rl
T2JqZWN0TWFwOjpOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2lzSW52YWxpZGF0
aW5nKGZhbHNlKQogewogfQogCkBAIC03MSwxMCArNzAsMTAgQEAgTlBPYmplY3QqIE5QUmVtb3Rl
T2JqZWN0TWFwOjpjcmVhdGVOUE9iagogCiB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpucE9iamVj
dFByb3h5RGVzdHJveWVkKE5QT2JqZWN0KiBucE9iamVjdCkKIHsKLSAgICBBU1NFUlQoTlBPYmpl
Y3RQcm94eTo6aXNOUE9iamVjdFByb3h5KG5wT2JqZWN0KSk7Ci0gICAgQVNTRVJUKG1fbnBPYmpl
Y3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0KSk7CisgICAgTlBPYmplY3RQcm94eSogbnBPYmpl
Y3RQcm94eSA9IE5QT2JqZWN0UHJveHk6OnRvTlBPYmplY3RQcm94eShucE9iamVjdCk7CisgICAg
QVNTRVJUKG1fbnBPYmplY3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKIAotICAg
IG1fbnBPYmplY3RQcm94aWVzLnJlbW92ZShucE9iamVjdCk7CisgICAgbV9ucE9iamVjdFByb3hp
ZXMucmVtb3ZlKG5wT2JqZWN0UHJveHkpOwogfQogCiB1aW50NjRfdCBOUFJlbW90ZU9iamVjdE1h
cDo6cmVnaXN0ZXJOUE9iamVjdChOUE9iamVjdCogbnBPYmplY3QsIFBsdWdpbiogcGx1Z2luKQpA
QCAtMTg3LDI1ICsxODYsMzcgQEAgTlBWYXJpYW50IE5QUmVtb3RlT2JqZWN0TWFwOjpucFZhcmlh
bnREYQogICAgIHJldHVybiBucFZhcmlhbnQ7CiB9CiAKLXZvaWQgTlBSZW1vdGVPYmplY3RNYXA6
OmludmFsaWRhdGUoKQordm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVkKFBs
dWdpbiogcGx1Z2luKQogewotICAgIEFTU0VSVCghbV9pc0ludmFsaWRhdGluZyk7Ci0KLSAgICBt
X2lzSW52YWxpZGF0aW5nID0gdHJ1ZTsKLQogICAgIFZlY3RvcjxOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcio+IG1lc3NhZ2VSZWNlaXZlcnM7Ci0gICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcmVnaXN0
ZXJlZE5QT2JqZWN0cywgbWVzc2FnZVJlY2VpdmVycyk7CisKKyAgICAvLyBHYXRoZXIgdGhlIHJl
Y2VpdmVycyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwbHVnLWluLgorICAgIGZvciAoSGFzaE1hcDx1
aW50NjRfdCwgTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuYmVnaW4oKSwgZW5kID0gbV9yZWdpc3RlcmVkTlBPYmplY3Rz
LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIqIG5wT2JqZWN0TWVzc2FnZVJlY2VpdmVyID0gaXQtPnNlY29uZDsKKyAgICAgICAgaWYgKG5w
T2JqZWN0TWVzc2FnZVJlY2VpdmVyLT5wbHVnaW4oKSA9PSBwbHVnaW4pCisgICAgICAgICAgICBt
ZXNzYWdlUmVjZWl2ZXJzLmFwcGVuZChucE9iamVjdE1lc3NhZ2VSZWNlaXZlcik7CisgICAgfQog
CiAgICAgLy8gTm93IGRlbGV0ZSBhbGwgdGhlIHJlY2VpdmVycy4KICAgICBkZWxldGVBbGxWYWx1
ZXMobWVzc2FnZVJlY2VpdmVycyk7CiAKLSAgICBBU1NFUlQobV9yZWdpc3RlcmVkTlBPYmplY3Rz
LmlzRW1wdHkoKSk7CisgICAgVmVjdG9yPE5QT2JqZWN0UHJveHkqPiBvYmplY3RQcm94aWVzOwor
ICAgIGZvciAoSGFzaFNldDxOUE9iamVjdFByb3h5Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9u
cE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBOUE9iamVjdFByb3h5KiBucE9iamVjdFByb3h5ID0g
Kml0OwogCi0gICAgZm9yIChIYXNoU2V0PE5QT2JqZWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9ucE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgTlBPYmplY3RQcm94eTo6dG9OUE9iamVjdFByb3h5
KCppdCktPmludmFsaWRhdGUoKTsKLSAgICBtX25wT2JqZWN0UHJveGllcy5jbGVhcigpOworICAg
ICAgICBpZiAobnBPYmplY3RQcm94eS0+cGx1Z2luKCkgPT0gcGx1Z2luKQorICAgICAgICAgICAg
b2JqZWN0UHJveGllcy5hcHBlbmQobnBPYmplY3RQcm94eSk7CisgICAgfQorCisgICAgLy8gSW52
YWxpZGF0ZSBhbmQgcmVtb3ZlIGFsbCBwcm94aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBsdWct
aW4uCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RQcm94aWVzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIE5QT2JqZWN0UHJveHkqIG5wT2JqZWN0UHJveHkgPSBvYmplY3RQcm94aWVz
W2ldOwogCi0gICAgbV9pc0ludmFsaWRhdGluZyA9IGZhbHNlOworICAgICAgICBucE9iamVjdFBy
b3h5LT5pbnZhbGlkYXRlKCk7CisKKyAgICAgICAgQVNTRVJUKG1fbnBPYmplY3RQcm94aWVzLmNv
bnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKKyAgICAgICAgbV9ucE9iamVjdFByb3hpZXMucmVtb3Zl
KG5wT2JqZWN0UHJveHkpOworICAgIH0KIH0KIAogQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBOUFJl
bW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVj
dE1hcC5oCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QUmVtb3RlT2JqZWN0TWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDkgKzYxLDggQEAgcHVi
bGljOgogICAgIE5QVmFyaWFudCBucFZhcmlhbnREYXRhVG9OUFZhcmlhbnQoY29uc3QgTlBWYXJp
YW50RGF0YSYsIFBsdWdpbiopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQotICAgIGJvb2wgaXNJbnZhbGlkYXRp
bmcoKSBjb25zdCB7IHJldHVybiBtX2lzSW52YWxpZGF0aW5nOyB9CiAKLSAgICB2b2lkIGludmFs
aWRhdGUoKTsKKyAgICB2b2lkIHBsdWdpbkRlc3Ryb3llZChQbHVnaW4qKTsKIAogICAgIENvcmVJ
UEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5
KTsKIApAQCAtNzEsMTQgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTlBSZW1vdGVP
YmplY3RNYXAoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24q
IG1fY29ubmVjdGlvbjsKIAotICAgIGJvb2wgbV9pc0ludmFsaWRhdGluZzsKLQogICAgIC8vIEEg
bWFwIG9mIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIGNsYXNzZXMsIHdyYXBwaW5nIG9iamVjdHMg
dGhhdCB3ZSBleHBvcnQgdG8gdGhlCiAgICAgLy8gb3RoZXIgZW5kIG9mIHRoZSBjb25uZWN0aW9u
LgogICAgIEhhc2hNYXA8dWludDY0X3QsIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKj4gbV9yZWdp
c3RlcmVkTlBPYmplY3RzOwogCiAgICAgLy8gQSBzZXQgb2YgTlBPYmplY3RQcm94eSBvYmplY3Rz
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcC4KLSAgICBIYXNoU2V0PE5QT2JqZWN0Kj4gbV9ucE9i
amVjdFByb3hpZXM7CisgICAgSGFzaFNldDxOUE9iamVjdFByb3h5Kj4gbV9ucE9iamVjdFByb3hp
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcAkocmV2aXNpb24gODEyODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miwx
MyArNjIsMTQgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlUGx1ZwogICAg
IEFTU0VSVChtX3BsdWdpbnMuY29udGFpbnMocGx1Z2luLT5wbHVnaW5JbnN0YW5jZUlEKCkpKTsK
ICAgICBtX3BsdWdpbnMucmVtb3ZlKHBsdWdpbi0+cGx1Z2luSW5zdGFuY2VJRCgpKTsKIAorICAg
IC8vIEludmFsaWRhdGUgYWxsIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIHBsdWctaW4uCisgICAg
bV9ucFJlbW90ZU9iamVjdE1hcC0+cGx1Z2luRGVzdHJveWVkKHBsdWdpbik7CisKICAgICBpZiAo
IW1fcGx1Z2lucy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEludmFsaWRh
dGUgb3VyIHJlbW90ZSBvYmplY3QgbWFwLgotICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmludmFs
aWRhdGUoKTsKLSAgICBtX25wUmVtb3RlT2JqZWN0TWFwID0gMDsKLSAgICAKKyAgICBtX25wUmVt
b3RlT2JqZWN0TWFwID0gbnVsbHB0cjsKKwogICAgIC8vIFdlIGhhdmUgbm8gbW9yZSBwbHVnLWlu
cywgaW52YWxpZGF0ZSB0aGUgY29ubmVjdGlvbiB0byB0aGUgcGx1Zy1pbiBwcm9jZXNzLgogICAg
IEFTU0VSVChtX2Nvbm5lY3Rpb24pOwogICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86019</attachid>
            <date>2011-03-16 19:00:24 -0700</date>
            <delta_ts>2011-03-16 19:49:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56511-20110316190022.patch</filename>
            <type>text/plain</type>
            <size>15104</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMzA2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDMtMTYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIGFsbCBOUE9iamVjdHMgZm9yIGEgcGx1
Zy1pbiB3aGVuIHRoYXQgcGx1Zy1pbiBpcyBkZXN0cm95ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84OTkzNDkxPgorCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgd2Ugd291bGQgaW52YWxp
ZGF0ZSBOUE9iamVjdFByb3h5IG9iamVjdHMgYW5kIGRlbGV0ZSBOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcgorICAgICAgICBvYmplY3RzIHdoZW4gdGhlIGxhc3QgcGx1Zy1pbiBvZiBhIGNlcnRhaW4g
dHlwZSB3YXMgZGVzdHJveWVkLiBEb2luZyBzbyBjYXVzZWQgdXMgdG8gaG9sZCBvbiB0byBtZW1v
cnkKKyAgICAgICAgd2hpY2ggd2UgZG9uJ3QgbmVlZCwgYW5kIGNvdWxkIGFsc28gbGVhZCB0byBj
cmFzaGVzIGlmIHRoZSBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciB3b3VsZCBnZXQgYSBtZXNzYWdl
IGFuZAorICAgICAgICB0cmllZCB0byBpbnZva2UgaXQgb24gYSBhbHJlYWR5IGRlYWxsb2NhdGVk
IE5QT2JqZWN0LgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OmluaXRpYWxp
emUpOgorICAgICAgICBJZiB3ZSBmYWlsIHRvIGluaXRpYWxpemUsIGNhbGwgcmVtb3ZlUGx1Z2lu
Q29udHJvbGxlclByb3h5IGluc3RlYWQgb2YgaGF2aW5nIFdlYlByb2Nlc3NDb25uZWN0aW9uIGRv
IHNvLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6ZGVzdHJveSk6
CisgICAgICAgIFBhc3MgdGhlIHBsdWctaW4gdG8gcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5
LgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Db250cm9s
bGVyUHJveHkpOgorICAgICAgICBDYWxsIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95
ZWQgd2hlbiB0aGUgcGx1Zy1pbiBoYXMgYmVlbiBkZXN0cm95ZWQuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIERvbid0IGNh
bGwgcmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5IGlmIHRoZSBwbHVnLWluIGZhaWxzIHRvIGlu
aXRpYWxpemUuIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6aW5pdGlhbGl6ZSBub3cKKyAgICAgICAg
dGFrZXMgY2FyZSBvZiBkb2luZyB0aGlzLgorCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcjo6TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoV2ViS2l0OjpO
UE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6fk5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oOgorICAgICAgICBS
ZW1vdmUgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZywgd2Ugbm93IGtub3cg
dGhhdCBubyBOUE9iamVjdHMgd2lsbCBoYXZlIGJlZW4gZGVhbGxvY2F0ZWQKKyAgICAgICAgYnkg
dGhlIHRpbWUgdGhlIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIGlzIGRlc3Ryb3llZC4KKworICAg
ICAgICAoV2ViS2l0OjpOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6cGx1Z2luKToKKyAgICAgICAg
QWRkIGdldHRlci4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQ
cm94eS5oOgorICAgICAgICAoV2ViS2l0OjpOUE9iamVjdFByb3h5OjpwbHVnaW4pOgorICAgICAg
ICBBZGQgZ2V0dGVyLgorICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90
ZU9iamVjdE1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpOUFJl
bW90ZU9iamVjdE1hcCk6CisgICAgICAgIFJlbW92ZSBtX2lzSW52YWxpZGF0aW5nLgorCisgICAg
ICAgIChXZWJLaXQ6Ok5QUmVtb3RlT2JqZWN0TWFwOjpucE9iamVjdFByb3h5RGVzdHJveWVkKToK
KyAgICAgICAgU2ltcGxpZnkgY29kZS4KKworICAgICAgICAoV2ViS2l0OjpOUFJlbW90ZU9iamVj
dE1hcDo6cGx1Z2luRGVzdHJveWVkKToKKyAgICAgICAgUmVuYW1lIGludmFsaWRhdGUgdG8gcGx1
Z2luRGVzdHJveWVkLiBPbmx5IGludmFsaWRhdGUvZGVsZXRlIG9iamVjdHMgdGhhdCBiZWxvbmcg
dG8gdGhlIGdpdmVuIHBsdWctaW4uCisKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFJlbW90
ZU9iamVjdE1hcC5oOgorICAgICAgICBSZW1vdmUgbV9pc0ludmFsaWRhdGluZy4KKyAgICAgICAg
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdp
blByb3h5KToKKyAgICAgICAgQ2FsbCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVk
IHdoZW4gdGhlIHBsdWctaW4gaGFzIGJlZW4gZGVzdHJveWVkLgorCiAyMDExLTAzLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHJldmlzaW9uIDgxMjk2KQorKysgU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Miw3ICs4MiwxNCBAQCBib29sIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6
aW5pdGlhbGl6ZShjCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbV9wbHVnaW4t
PmluaXRpYWxpemUodGhpcywgcGFyYW1ldGVycykpIHsKKyAgICAgICAgLy8gR2V0IHRoZSBwbHVn
LWluIHNvIHdlIGNhbiBwYXNzIGl0IHRvIHJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQcm94eS4gVGhl
IHBvaW50ZXIgaXMgb25seQorICAgICAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQn
cyBPSyB0byBqdXN0IGdldCBhIHdlYWsgcmVmZXJlbmNlLgorICAgICAgICBQbHVnaW4qIHBsdWdp
biA9IG1fcGx1Z2luLmdldCgpOworICAgICAgICAKICAgICAgICAgbV9wbHVnaW4gPSAwOworCisg
ICAgICAgIC8vIFRoaXMgd2lsbCBkZWxldGUgdGhlIHBsdWctaW4gY29udHJvbGxlciBwcm94eSBv
YmplY3QuCisgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlUGx1Z2luQ29udHJvbGxlclByb3h5
KHRoaXMsIHBsdWdpbik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTEwMiwx
MyArMTA5LDE3IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5OjpkZXN0cm95KCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIEdldCB0aGUgcGx1Zy1pbiBzbyB3ZSBjYW4gcGFz
cyBpdCB0byByZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkuIFRoZSBwb2ludGVyIGlzIG9ubHkK
KyAgICAvLyB1c2VkIGFzIGFuIGlkZW50aWZpZXIgc28gaXQncyBPSyB0byBqdXN0IGdldCBhIHdl
YWsgcmVmZXJlbmNlLgorICAgIFBsdWdpbiogcGx1Z2luID0gbV9wbHVnaW4uZ2V0KCk7CisKICAg
ICBtX3BsdWdpbi0+ZGVzdHJveSgpOwogICAgIG1fcGx1Z2luID0gMDsKIAogICAgIHBsYXRmb3Jt
RGVzdHJveSgpOwogCiAgICAgLy8gVGhpcyB3aWxsIGRlbGV0ZSB0aGUgcGx1Zy1pbiBjb250cm9s
bGVyIHByb3h5IG9iamVjdC4KLSAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRyb2xs
ZXJQcm94eSh0aGlzKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZVBsdWdpbkNvbnRyb2xsZXJQ
cm94eSh0aGlzLCBwbHVnaW4pOwogfQogCiB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGFp
bnQoKQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDgxMjg3KQorKysgU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcwLDIwICs3MCwyMyBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkZXN0cm95UGx1Z2lu
CiAgICAgcGx1Z2luQ29udHJvbGxlci0+ZGVzdHJveSgpOwogfQogCi12b2lkIFdlYlByb2Nlc3ND
b25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2luQ29udHJvbGxlclBy
b3h5KiBwbHVnaW5Db250cm9sbGVyKQordm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3Zl
UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSogcGx1Z2luQ29udHJv
bGxlciwgUGx1Z2luKiBwbHVnaW4pCiB7CisgICAgQVNTRVJUKHBsdWdpbik7CisKICAgICB7CiAg
ICAgICAgIEFTU0VSVChtX3BsdWdpbkNvbnRyb2xsZXJzLmNvbnRhaW5zKHBsdWdpbkNvbnRyb2xs
ZXItPnBsdWdpbkluc3RhbmNlSUQoKSkpOwogCiAgICAgICAgIE93blB0cjxQbHVnaW5Db250cm9s
bGVyUHJveHk+IHBsdWdpbkNvbnRyb2xsZXJPd25QdHIgPSBhZG9wdFB0cihtX3BsdWdpbkNvbnRy
b2xsZXJzLnRha2UocGx1Z2luQ29udHJvbGxlci0+cGx1Z2luSW5zdGFuY2VJRCgpKSk7CiAgICAg
ICAgIEFTU0VSVChwbHVnaW5Db250cm9sbGVyT3duUHRyID09IHBsdWdpbkNvbnRyb2xsZXIpOwog
ICAgIH0KLSAgICAKKworICAgIC8vIEludmFsaWRhdGUgYWxsIG9iamVjdHMgcmVsYXRlZCB0byB0
aGlzIHBsdWctaW4uCisgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+cGx1Z2luRGVzdHJveWVkKHBs
dWdpbik7CisKICAgICBpZiAoIW1fcGx1Z2luQ29udHJvbGxlcnMuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBJbnZhbGlkYXRlIG91ciByZW1vdGUgb2JqZWN0IG1hcC4KLSAg
ICBtX25wUmVtb3RlT2JqZWN0TWFwLT5pbnZhbGlkYXRlKCk7CiAgICAgbV9ucFJlbW90ZU9iamVj
dE1hcCA9IG51bGxwdHI7CiAKICAgICAvLyBUaGUgbGFzdCBwbHVnLWluIHdlbnQgYXdheSwgY2xv
c2UgdGhpcyBjb25uZWN0aW9uLgpAQCAtMTY3LDEzICsxNzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6Y3JlYXRlUGx1Z2luKAogICAgIC8vIE5vdyB0cnkgdG8gaW5pdGlhbGl6ZSB0
aGUgcGx1Zy1pbi4KICAgICByZXN1bHQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPmluaXRp
YWxpemUocGFyYW1ldGVycyk7CiAKLSAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJlbW90ZUxh
eWVyQ2xpZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50
SUQoKTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIC8v
IFdlIGZhaWxlZCB0byBpbml0aWFsaXplLCByZW1vdmUgdGhlIHBsdWctaW4gY29udHJvbGxlci4g
VGhpcyBjb3VsZCBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIHJlbW92ZVBsdWdpbkNvbnRy
b2xsZXJQcm94eShwbHVnaW5Db250cm9sbGVyUHJveHlQdHIpOworICAgIHJlbW90ZUxheWVyQ2xp
ZW50SUQgPSBwbHVnaW5Db250cm9sbGVyUHJveHlQdHItPnJlbW90ZUxheWVyQ2xpZW50SUQoKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCShyZXZpc2lvbiA4MTI4NykK
KysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsg
fQogICAgIE5QUmVtb3RlT2JqZWN0TWFwKiBucFJlbW90ZU9iamVjdE1hcCgpIGNvbnN0IHsgcmV0
dXJuIG1fbnBSZW1vdGVPYmplY3RNYXAuZ2V0KCk7IH0KIAotICAgIHZvaWQgcmVtb3ZlUGx1Z2lu
Q29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSopOworICAgIHZvaWQgcmVtb3Zl
UGx1Z2luQ29udHJvbGxlclByb3h5KFBsdWdpbkNvbnRyb2xsZXJQcm94eSosIFBsdWdpbiopOwog
CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9uKENvcmVJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmpl
Y3RNZXNzYWdlUmVjZWl2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAkocmV2aXNpb24gODEyOTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDYgQEAKICNpbmNsdWRlICJOUFJ1bnRpbWVV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJOUFZhcmlhbnREYXRhLmgiCiAKLS8vIEZJWE1FOiBUaGlz
IGNvZGUgc2hvdWxkbid0IGtub3cgYWJvdXQgTlBKU09iamVjdC4KLSNpbmNsdWRlICJOUEpTT2Jq
ZWN0LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6Y3JlYXRlKE5QUmVtb3RlT2JqZWN0
TWFwKiBucFJlbW90ZU9iamVjdE1hcCwgUGx1Z2luKiBwbHVnaW4sIHVpbnQ2NF90IG5wT2JqZWN0
SUQsIE5QT2JqZWN0KiBucE9iamVjdCkKQEAgLTQ4LDcgKzQ1LDYgQEAgTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXI6Ok5QT2JqZWN0TWVzc2FnZQogICAgICwgbV9wbHVnaW4ocGx1Z2luKQogICAgICwg
bV9ucE9iamVjdElEKG5wT2JqZWN0SUQpCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQotICAg
ICwgbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZyghTlBKU09iamVjdDo6aXNO
UEpTT2JqZWN0KG5wT2JqZWN0KSkKIHsKICAgICByZXRhaW5OUE9iamVjdChtX25wT2JqZWN0KTsK
IH0KQEAgLTU3LDEzICs1Myw2IEBAIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyOjp+TlBPYmplY3RN
ZXNzYWcKIHsKICAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT51bnJlZ2lzdGVyTlBPYmplY3QobV9u
cE9iamVjdElEKTsKIAotICAgIC8vIElmIHdlJ3JlIGludmFsaWRhdGluZyB0aGUgcmVtb3RlIG9i
amVjdCBtYXAsIHdlIGRvbid0IGFsd2F5cyB3YW50IHRvIHJlbGVhc2UgdGhlIHVuZGVybHlpbmcg
TlBPYmplY3QuCi0gICAgLy8gT25lIGV4YW1wbGUgb2YgdGhpcyBpcyBOUEpTT2JqZWN0cyBpbiB0
aGUgV2ViIHByb2Nlc3MsIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVuIGRlYWxsb2NhdGVkIGJ5IHRo
ZSBwbHVnLWluIHZpZXcuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IHRoZSBpZGVhbCB3YXkg
dG8gaGFuZGxlIHRoaXMuIE1heWJlIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIHNob3VsZCBiZSBu
b3RpZmllZCBzb21laG93IHdoZW4gdGhlIHVuZGVybHlpbmcKLSAgICAvLyBOUE9iamVjdCBpcyBk
ZWFsbG9jYXRlZC4KLSAgICBpZiAobV9ucFJlbW90ZU9iamVjdE1hcC0+aXNJbnZhbGlkYXRpbmco
KSAmJiAhbV9zaG91bGRSZWxlYXNlT2JqZWN0V2hlbkludmFsaWRhdGluZykKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgcmVsZWFzZU5QT2JqZWN0KG1fbnBPYmplY3QpOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJl
Y2VpdmVyLmgJKHJldmlzaW9uIDgxMjk2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAKICAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5j
TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopOwogCisgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Bs
dWdpbjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmpl
Y3Q7IH0KICAgICAKIHByaXZhdGU6CkBAIC03MCw3ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgUGx1
Z2luKiBtX3BsdWdpbjsKICAgICB1aW50NjRfdCBtX25wT2JqZWN0SUQ7CiAgICAgTlBPYmplY3Qq
IG1fbnBPYmplY3Q7Ci0gICAgYm9vbCBtX3Nob3VsZFJlbGVhc2VPYmplY3RXaGVuSW52YWxpZGF0
aW5nOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAkocmV2aXNpb24gODEyOTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TlBPYmplY3RQcm94eSo+KG5wT2JqZWN0KTsKICAgICB9CiAKKyAgICBQbHVnaW4qIHBsdWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luOyB9CiAgICAgdWludDY0X3QgbnBPYmplY3RJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3RJRDsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVP
YmplY3RNYXAuY3BwCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAs
NiBAQCBQYXNzUmVmUHRyPE5QUmVtb3RlT2JqZWN0TWFwPiBOUFJlbW90ZU9iCiAKIE5QUmVtb3Rl
T2JqZWN0TWFwOjpOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2lzSW52YWxpZGF0
aW5nKGZhbHNlKQogewogfQogCkBAIC03MSwxMCArNzAsMTAgQEAgTlBPYmplY3QqIE5QUmVtb3Rl
T2JqZWN0TWFwOjpjcmVhdGVOUE9iagogCiB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpucE9iamVj
dFByb3h5RGVzdHJveWVkKE5QT2JqZWN0KiBucE9iamVjdCkKIHsKLSAgICBBU1NFUlQoTlBPYmpl
Y3RQcm94eTo6aXNOUE9iamVjdFByb3h5KG5wT2JqZWN0KSk7Ci0gICAgQVNTRVJUKG1fbnBPYmpl
Y3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0KSk7CisgICAgTlBPYmplY3RQcm94eSogbnBPYmpl
Y3RQcm94eSA9IE5QT2JqZWN0UHJveHk6OnRvTlBPYmplY3RQcm94eShucE9iamVjdCk7CisgICAg
QVNTRVJUKG1fbnBPYmplY3RQcm94aWVzLmNvbnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKIAotICAg
IG1fbnBPYmplY3RQcm94aWVzLnJlbW92ZShucE9iamVjdCk7CisgICAgbV9ucE9iamVjdFByb3hp
ZXMucmVtb3ZlKG5wT2JqZWN0UHJveHkpOwogfQogCiB1aW50NjRfdCBOUFJlbW90ZU9iamVjdE1h
cDo6cmVnaXN0ZXJOUE9iamVjdChOUE9iamVjdCogbnBPYmplY3QsIFBsdWdpbiogcGx1Z2luKQpA
QCAtMTg3LDI1ICsxODYsMzcgQEAgTlBWYXJpYW50IE5QUmVtb3RlT2JqZWN0TWFwOjpucFZhcmlh
bnREYQogICAgIHJldHVybiBucFZhcmlhbnQ7CiB9CiAKLXZvaWQgTlBSZW1vdGVPYmplY3RNYXA6
OmludmFsaWRhdGUoKQordm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6cGx1Z2luRGVzdHJveWVkKFBs
dWdpbiogcGx1Z2luKQogewotICAgIEFTU0VSVCghbV9pc0ludmFsaWRhdGluZyk7Ci0KLSAgICBt
X2lzSW52YWxpZGF0aW5nID0gdHJ1ZTsKLQogICAgIFZlY3RvcjxOUE9iamVjdE1lc3NhZ2VSZWNl
aXZlcio+IG1lc3NhZ2VSZWNlaXZlcnM7Ci0gICAgY29weVZhbHVlc1RvVmVjdG9yKG1fcmVnaXN0
ZXJlZE5QT2JqZWN0cywgbWVzc2FnZVJlY2VpdmVycyk7CisKKyAgICAvLyBHYXRoZXIgdGhlIHJl
Y2VpdmVycyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwbHVnLWluLgorICAgIGZvciAoSGFzaE1hcDx1
aW50NjRfdCwgTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuYmVnaW4oKSwgZW5kID0gbV9yZWdpc3RlcmVkTlBPYmplY3Rz
LmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIqIG5wT2JqZWN0TWVzc2FnZVJlY2VpdmVyID0gaXQtPnNlY29uZDsKKyAgICAgICAgaWYgKG5w
T2JqZWN0TWVzc2FnZVJlY2VpdmVyLT5wbHVnaW4oKSA9PSBwbHVnaW4pCisgICAgICAgICAgICBt
ZXNzYWdlUmVjZWl2ZXJzLmFwcGVuZChucE9iamVjdE1lc3NhZ2VSZWNlaXZlcik7CisgICAgfQog
CiAgICAgLy8gTm93IGRlbGV0ZSBhbGwgdGhlIHJlY2VpdmVycy4KICAgICBkZWxldGVBbGxWYWx1
ZXMobWVzc2FnZVJlY2VpdmVycyk7CiAKLSAgICBBU1NFUlQobV9yZWdpc3RlcmVkTlBPYmplY3Rz
LmlzRW1wdHkoKSk7CisgICAgVmVjdG9yPE5QT2JqZWN0UHJveHkqPiBvYmplY3RQcm94aWVzOwor
ICAgIGZvciAoSGFzaFNldDxOUE9iamVjdFByb3h5Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9u
cE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBOUE9iamVjdFByb3h5KiBucE9iamVjdFByb3h5ID0g
Kml0OwogCi0gICAgZm9yIChIYXNoU2V0PE5QT2JqZWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9ucE9iamVjdFByb3hpZXMuYmVnaW4oKSwgZW5kID0gbV9ucE9iamVjdFByb3hpZXMuZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgTlBPYmplY3RQcm94eTo6dG9OUE9iamVjdFByb3h5
KCppdCktPmludmFsaWRhdGUoKTsKLSAgICBtX25wT2JqZWN0UHJveGllcy5jbGVhcigpOworICAg
ICAgICBpZiAobnBPYmplY3RQcm94eS0+cGx1Z2luKCkgPT0gcGx1Z2luKQorICAgICAgICAgICAg
b2JqZWN0UHJveGllcy5hcHBlbmQobnBPYmplY3RQcm94eSk7CisgICAgfQorCisgICAgLy8gSW52
YWxpZGF0ZSBhbmQgcmVtb3ZlIGFsbCBwcm94aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBsdWct
aW4uCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvYmplY3RQcm94aWVzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIE5QT2JqZWN0UHJveHkqIG5wT2JqZWN0UHJveHkgPSBvYmplY3RQcm94aWVz
W2ldOwogCi0gICAgbV9pc0ludmFsaWRhdGluZyA9IGZhbHNlOworICAgICAgICBucE9iamVjdFBy
b3h5LT5pbnZhbGlkYXRlKCk7CisKKyAgICAgICAgQVNTRVJUKG1fbnBPYmplY3RQcm94aWVzLmNv
bnRhaW5zKG5wT2JqZWN0UHJveHkpKTsKKyAgICAgICAgbV9ucE9iamVjdFByb3hpZXMucmVtb3Zl
KG5wT2JqZWN0UHJveHkpOworICAgIH0KIH0KIAogQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBOUFJl
bW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVj
dE1hcC5oCShyZXZpc2lvbiA4MTI5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QUmVtb3RlT2JqZWN0TWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDkgKzYxLDggQEAgcHVi
bGljOgogICAgIE5QVmFyaWFudCBucFZhcmlhbnREYXRhVG9OUFZhcmlhbnQoY29uc3QgTlBWYXJp
YW50RGF0YSYsIFBsdWdpbiopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQotICAgIGJvb2wgaXNJbnZhbGlkYXRp
bmcoKSBjb25zdCB7IHJldHVybiBtX2lzSW52YWxpZGF0aW5nOyB9CiAKLSAgICB2b2lkIGludmFs
aWRhdGUoKTsKKyAgICB2b2lkIHBsdWdpbkRlc3Ryb3llZChQbHVnaW4qKTsKIAogICAgIENvcmVJ
UEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5
KTsKIApAQCAtNzEsMTQgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTlBSZW1vdGVP
YmplY3RNYXAoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24q
IG1fY29ubmVjdGlvbjsKIAotICAgIGJvb2wgbV9pc0ludmFsaWRhdGluZzsKLQogICAgIC8vIEEg
bWFwIG9mIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIGNsYXNzZXMsIHdyYXBwaW5nIG9iamVjdHMg
dGhhdCB3ZSBleHBvcnQgdG8gdGhlCiAgICAgLy8gb3RoZXIgZW5kIG9mIHRoZSBjb25uZWN0aW9u
LgogICAgIEhhc2hNYXA8dWludDY0X3QsIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKj4gbV9yZWdp
c3RlcmVkTlBPYmplY3RzOwogCiAgICAgLy8gQSBzZXQgb2YgTlBPYmplY3RQcm94eSBvYmplY3Rz
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcC4KLSAgICBIYXNoU2V0PE5QT2JqZWN0Kj4gbV9ucE9i
amVjdFByb3hpZXM7CisgICAgSGFzaFNldDxOUE9iamVjdFByb3h5Kj4gbV9ucE9iamVjdFByb3hp
ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0
aW9uLmNwcAkocmV2aXNpb24gODEyODcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miwx
MyArNjIsMTQgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlUGx1ZwogICAg
IEFTU0VSVChtX3BsdWdpbnMuY29udGFpbnMocGx1Z2luLT5wbHVnaW5JbnN0YW5jZUlEKCkpKTsK
ICAgICBtX3BsdWdpbnMucmVtb3ZlKHBsdWdpbi0+cGx1Z2luSW5zdGFuY2VJRCgpKTsKIAorICAg
IC8vIEludmFsaWRhdGUgYWxsIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIHBsdWctaW4uCisgICAg
bV9ucFJlbW90ZU9iamVjdE1hcC0+cGx1Z2luRGVzdHJveWVkKHBsdWdpbik7CisKICAgICBpZiAo
IW1fcGx1Z2lucy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEludmFsaWRh
dGUgb3VyIHJlbW90ZSBvYmplY3QgbWFwLgotICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmludmFs
aWRhdGUoKTsKLSAgICBtX25wUmVtb3RlT2JqZWN0TWFwID0gMDsKLSAgICAKKyAgICBtX25wUmVt
b3RlT2JqZWN0TWFwID0gbnVsbHB0cjsKKwogICAgIC8vIFdlIGhhdmUgbm8gbW9yZSBwbHVnLWlu
cywgaW52YWxpZGF0ZSB0aGUgY29ubmVjdGlvbiB0byB0aGUgcGx1Zy1pbiBwcm9jZXNzLgogICAg
IEFTU0VSVChtX2Nvbm5lY3Rpb24pOwogICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwo=
</data>
<flag name="review"
          id="78230"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>