<?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>69677</bug_id>
          
          <creation_ts>2011-10-07 16:50:32 -0700</creation_ts>
          <short_desc>De-virtualize JSCell::toString</short_desc>
          <delta_ts>2011-10-12 13:22:21 -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>
          <dependson>69156</dependson>
          <blocked>67690</blocked>
          <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>480390</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 16:50:32 -0700</bug_when>
    <thetext>Now that the JSC C API does something more sensible for toString (see bug 69156), we can eliminate JSCallbackObject::toString in favor of simply using JSObject::toString to cover the case for JSCallbackObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481124</commentid>
    <comment_count>1</comment_count>
      <attachid>110398</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 13:48:07 -0700</bug_when>
    <thetext>Created attachment 110398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481142</commentid>
    <comment_count>2</comment_count>
      <attachid>110398</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-10 14:10:28 -0700</bug_when>
    <thetext>Comment on attachment 110398
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Removed toString from JSCallbackObject, since it is no 
&gt; +        longer necessary.

Why is it no longer necessary? Because conversion to string is handled in defaultValue? Some other reason?

&gt; Source/JavaScriptCore/runtime/ExceptionHelpers.cpp:50
&gt; +    return JSValue(std::numeric_limits&lt;double&gt;::quiet_NaN());

Should not need &quot;std::&quot; here since it’s in a cpp file and we normally use “using namespace std” in those.

&gt; Source/JavaScriptCore/runtime/ExceptionHelpers.cpp:75
&gt; +    return JSValue(std::numeric_limits&lt;double&gt;::quiet_NaN());

Ditto.

&gt; Source/JavaScriptGlue/ChangeLog:8
&gt; +        Removed UserObjectImp::toString since it&apos;s no longer necessary.

Again, why is it no longer necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481370</commentid>
    <comment_count>3</comment_count>
      <attachid>110453</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-10 18:14:18 -0700</bug_when>
    <thetext>Created attachment 110453
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481742</commentid>
    <comment_count>4</comment_count>
      <attachid>110541</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-11 11:06:32 -0700</bug_when>
    <thetext>Created attachment 110541
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482656</commentid>
    <comment_count>5</comment_count>
      <attachid>110541</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-12 13:22:17 -0700</bug_when>
    <thetext>Comment on attachment 110541
Fix windows

Clearing flags on attachment: 110541

Committed r97292: &lt;http://trac.webkit.org/changeset/97292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482657</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-12 13:22:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110398</attachid>
            <date>2011-10-10 13:48:07 -0700</date>
            <delta_ts>2011-10-12 11:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69677-20111010134811.patch</filename>
            <type>text/plain</type>
            <size>15305</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNTcxMzM3YWViNjg5MzA5ODJhNzMxNThjNDJiNmNiMmU0
ODYxODhmNi4uMTQ2M2Q1MzA2NmZmMzhjNGI3ZDFlZDI0MDliNjNlYTIwZTc2ZWI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NCw3ICsx
OTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4
ZWNTdGF0ZSopIGNvbnN0OwotICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmKTsKICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggMjNkMWE4YzI4ODJmOGRh
ZGU2YWE2ZGViM2I3YjZmMTUzODRkZWM5MC4uY2VkN2I4ZjE2MmM2NzdhOGY5OWU5YWNhODYwODY3
NDJmMjlkNWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTUyMCwzMSArNTIwLDYgQEAgZG91YmxlIEpTQ2Fs
bGJhY2tPYmplY3Q8UGFyZW50Pjo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogfQog
CiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBKU0NvbnRleHRSZWYg
Y3R4ID0gdG9SZWYoZXhlYyk7Ci0gICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXMp
OwotICAgIAotICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gY2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKQotICAgICAgICBpZiAoSlNPYmplY3RD
b252ZXJ0VG9UeXBlQ2FsbGJhY2sgY29udmVydFRvVHlwZSA9IGpzQ2xhc3MtPmNvbnZlcnRUb1R5
cGUpIHsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgICAg
IEpTVmFsdWVSZWYgdmFsdWU7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVBJQ2Fs
bGJhY2tTaGltIGNhbGxiYWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGNv
bnZlcnRUb1R5cGUoY3R4LCB0aGlzUmVmLCBrSlNUeXBlU3RyaW5nLCAmZXhjZXB0aW9uKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIHRvSlMoZXhlYywgZXhjZXB0aW9uKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICIiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHZhbHVlKQotICAg
ICAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5nZXRTdHJpbmcoZXhlYyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgIHJldHVybiBQYXJlbnQ6OnRvU3RyaW5nKGV4ZWMp
OwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgogdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OnNldFByaXZhdGUodm9pZCogZGF0YSkKIHsKICAgICBtX2NhbGxiYWNrT2JqZWN0RGF0
YS0+cHJpdmF0ZURhdGEgPSBkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzY2ZTVm
ZWQwYTgzM2ZjODA3YTBjYjhiZDg0MTM5MDY3NTJjYTMyNy4uOWY1MjQyOTk0YjcyYjk2YmRhMTAw
MzZkOTE5ZGQ4NTZjZDRiZmE1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTQ2VsbDo6dG9TdHJpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0b1N0cmluZyBmcm9t
IEpTQ2FsbGJhY2tPYmplY3QsIHNpbmNlIGl0IGlzIG5vIAorICAgICAgICBsb25nZXIgbmVjZXNz
YXJ5LgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKworICAgICAgICBSZW1vdmVkIHRvU3RyaW5nIGZy
b20gSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciBhbmQgCisgICAgICAgIFRlcm1pbmF0ZWRFeGVj
dXRpb25FcnJvciBhbmQgcmVwbGFjZWQgaXQgd2l0aCBkZWZhdWx0VmFsdWUsCisgICAgICAgIHdo
aWNoIEpTT2JqZWN0Ojp0b1N0cmluZyBjYWxscy4KKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOjpk
ZWZhdWx0VmFsdWUpOgorICAgICAgICAoSlNDOjpUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OmRl
ZmF1bHRWYWx1ZSk6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisKKyAg
ICAgICAgUmVtb3ZlZCB0b1N0cmluZyBmcm9tIEpTTm90QW5PYmplY3QsIHNpbmNlIGl0cyByZXR1
cm4gdmFsdWUgZG9lc24ndAorICAgICAgICBhY3R1YWxseSBtYXR0ZXIgYW5kIEpTT2JqZWN0Ojp0
b1N0cmluZyBjYW4gY292ZXIgaXQuCisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0LmNw
cDoKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoKKworICAgICAgICBEZS12aXJ0
dWFsaXplZCBKU0NlbGw6OnRvU3RyaW5nLCBKU09iamVjdDo6dG9TdHJpbmcgYW5kIEpTU3RyaW5n
Ojp0b1N0cmluZy4KKyAgICAgICAgQWRkZWQgaGFuZGxpbmcgb2YgYWxsIGNhc2VzIGZvciBKU0Nl
bGwgdG8gSlNDZWxsOjp0b1N0cmluZy4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjp0b1N0cmluZyk6CisgICAgICAgICogcnVudGltZS9K
U0NlbGwuaDoKKwogMjAxMS0xMC0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk3MDQ1LgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApp
bmRleCAxMTA2NGQxMjhkMzU1OGY3ZGM2OTgxZjI0YTg5MjY5ZmRlZmFmM2U2Li4xNjQ4MWJhNmE0
MGJjOWE2MWUzNTNlNDYxOGZlMDAxYzc5YzQ5MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtNDMsOSArNDMsMTEgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVy
cm9yOjpzX2luZm8gPSB7ICJJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yIiwgJkJhc2U6OnNfaW5m
bywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKSB9
OwogCi1VU3RyaW5nIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OnRvU3RyaW5nKEV4ZWNTdGF0
ZSopIGNvbnN0CitKU1ZhbHVlIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmRlZmF1bHRWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgaGludCkgY29uc3QKIHsK
LSAgICByZXR1cm4gIkphdmFTY3JpcHQgZXhlY3V0aW9uIGV4Y2VlZGVkIHRpbWVvdXQuIjsKKyAg
ICBpZiAoaGludCA9PSBQcmVmZXJTdHJpbmcpCisgICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgIkphdmFTY3JpcHQgZXhlY3V0aW9uIGV4Y2VlZGVkIHRpbWVvdXQuIik7Cisg
ICAgcmV0dXJuIEpTVmFsdWUoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCkBAIC02Niw5ICs2OCwxMSBAQCBib29sIGlzSW50ZXJy
dXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oSlNWYWx1ZSB2YWx1ZSkKIAogY29uc3QgQ2xhc3NJbmZv
IFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6c19pbmZvID0geyAiVGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZXJtaW5h
dGVkRXhlY3V0aW9uRXJyb3IpIH07CiAKLVVTdHJpbmcgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9y
Ojp0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdAorSlNWYWx1ZSBUZXJtaW5hdGVkRXhlY3V0aW9u
RXJyb3I6OmRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUgaGludCkgY29uc3QKIHsKLSAgICByZXR1cm4gIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRlcm1p
bmF0ZWQuIjsKKyAgICBpZiAoaGludCA9PSBQcmVmZXJTdHJpbmcpCisgICAgICAgIHJldHVybiBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRlcm1pbmF0ZWQu
Iik7CisgICAgcmV0dXJuIEpTVmFsdWUoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0
aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAppbmRleCA4MjJkOWFiOWI5OTM2ODlmMDA0YmIz
MjNiNjJlYTZjNTYzNWU2OTMxLi42MmEwMDFlZjZkMmFkOTE3OTViNGQzNGZkODA5YzA3ZDkxNDBi
MTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZp
cnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEpT
VmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNv
bnN0OwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CkBAIC04
OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgVVN0cmlu
ZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVs
dFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogCiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCAzZDYyN2UxZmVkZjQ1MDU5ZTJiZGI0YjFmM2Ri
ZTdiNjY3N2I0OWY3Li5lYmE2OGE3ZjMzODNmNjYzYzhiYTU5NWVjNTcxMTNmNjUzZTZlZmIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTE3MywxMCArMTcz
LDExIEBAIGRvdWJsZSBKU0NlbGw6OnRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0CiAgICAgcmV0
dXJuIDA7CiB9CiAKLVVTdHJpbmcgSlNDZWxsOjp0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdAor
VVN0cmluZyBKU0NlbGw6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gVVN0cmluZygpOworICAgIGlmIChpc1N0
cmluZygpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcqPih0aGlz
KS0+dG9TdHJpbmcoZXhlYyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEpTT2JqZWN0
Kj4odGhpcyktPnRvU3RyaW5nKGV4ZWMpOwogfQogCiBKU09iamVjdCogSlNDZWxsOjp0b09iamVj
dChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDcyZjU1YTFiMWYwODNiNGI1
NGQzNDhhYjRmNTAzNzAyOWJmMzM0YWYuLjk2NTJlMDU5NTMyNzE1NTM2ZmU1YWYzYjcxMTcwZGU0
M2Y1YzlmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC04Myw3
ICs4Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGdldFByaW1pdGl2ZU51bWJl
cihFeGVjU3RhdGUqLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYpIGNvbnN0OwogICAgICAgICBi
b29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBkb3VibGUg
dG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0
cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3Rh
dGUqKSBjb25zdDsKICAgICAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0NlbGwqLCBTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCBlMTRhNjhiZDk0ZmExNGVlMGNkNjRkMGYzNDI3YWEy
Y2M0NmRiOWQ5Li4wOGY1ZjEwZDAxOGEzMWFlNmE0NGI5Y2I5YmNhMjQ4YzMzNWFmNTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAt
NTEsMTIgKzUxLDYgQEAgZG91YmxlIEpTTm90QW5PYmplY3Q6OnRvTnVtYmVyKEV4ZWNTdGF0ZSog
ZXhlYykgY29uc3QKICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKIH0KIAotVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhFeGVjU3RhdGUq
IGV4ZWMpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRp
b24oKSk7Ci0gICAgcmV0dXJuICIiOwotfQotCiBib29sIEpTTm90QW5PYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IGI4ZjBmYWE4NTYyMjYyM2MyMDc5YzljOWM3MTM3
ZDdkN2IyODUxZjcuLjhlNGYwOWNiZTZjODVkMWM2MjNiZTM4MDgyNzQzYWI0MmRjNzhmYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTY3
LDcgKzY3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIEpTVmFsdWUgbWV0aG9kcwog
ICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJl
ZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihF
eGVjU3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNT
dGF0ZSopIGNvbnN0OwogCiAgICAgICAgIC8vIEpTT2JqZWN0IG1ldGhvZHMKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKaW5kZXggYzhmM2RlOTdhNzI0OWE2ZGY3MDM5MzIyMzFlOGQxODExOWQ5
MjJkZi4uNGEyNzkxZmQwZjBlZmU5OWEwNTAwNmU3YTA0Mzk2NjUyZjdmNmNhNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNDEsNyArMTQxLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0Owog
ICAgICAgICBib29sIGdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqLCBkb3VibGUmIG51bWJl
ciwgSlNWYWx1ZSYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihFeGVj
U3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0
ZSopIGNvbnN0OworICAgICAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0Owog
CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdW53cmFwcGVkT2JqZWN0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCA3MjBkNjJiZDZjZjMyNzMxMTVm
NjJmMmUzODE0MDE5NGRiY2I4OGVmLi4wYzAxNjMzMzgwMWRjMGNmNjU4ZjE1ZmNhODQwMzIxODhj
MjMxOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTQz
MCw2ICs0MzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCB0b0Jvb2xlYW4oRXhl
Y1N0YXRlKikgY29uc3Q7CiAgICAgICAgIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0
ZSosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJikgY29uc3Q7CiAgICAgICAgIEpTT2JqZWN0KiB0
b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgICAgICBVU3Ry
aW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICAKICAgICAgICAgYm9vbCBn
ZXRTdHJpbmdQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRTdHJpbmdQcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAg
LTUwMiw3ICs1MDMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0dWFs
IFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBK
U09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0No
YW5nZUxvZwppbmRleCAwYjFiNDU2NTEzMTRmMjQ0ZmU0ZWNiZjUyMWY2ZWI3MmVhYzIyZjEwLi4x
ZWRlMTY4NjcwN2Y2NmRiMmUzM2IyZjQ0MTZjMTgxNDc3OWQxYTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIERlLXZpcnR1YWxpemUgSlNDZWxsOjp0
b1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Njk2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmVkIFVzZXJPYmplY3RJbXA6OnRvU3RyaW5nIHNpbmNlIGl0J3Mgbm8gbG9uZ2VyIG5lY2Vz
c2FyeS4KKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAgKiBVc2VyT2JqZWN0
SW1wLmg6CisKIDIwMTEtMTAtMDggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCA3YjYw
ODkzYTg2ODMyZTc3NDhkOWQxNmMzNjA3NTQ3ZjRiMzljYWRjLi41NTQyM2RjY2Y3NzY1OGNjOTlh
ODhmZTE5OWEzNGVkY2ZhOTgxYjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
VXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCkBAIC0zMzMsOTUgKzMzMyw2IEBAIGRvdWJsZSBVc2VyT2JqZWN0SW1wOjp0b051bWJl
cihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotVVN0cmlu
ZyBVc2VyT2JqZWN0SW1wOjp0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0Ci17Ci0gICAg
VVN0cmluZyByZXN1bHQ7Ci0gICAgSlNVc2VyT2JqZWN0KiBqc09ialB0ciA9IEtKU1ZhbHVlVG9K
U09iamVjdCh0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBleGVj
KTsKLSAgICBDRlR5cGVSZWYgY2ZWYWx1ZSA9IGpzT2JqUHRyID8ganNPYmpQdHItPkNvcHlDRlZh
bHVlKCkgOiAwOwotICAgIGlmIChjZlZhbHVlKQotICAgIHsKLSAgICAgICAgQ0ZUeXBlSUQgY2ZU
eXBlID0gQ0ZHZXRUeXBlSUQoY2ZWYWx1ZSk7Ci0gICAgICAgIGlmIChjZlZhbHVlID09IEdldENG
TnVsbCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLwotICAgICAgICB9Ci0gICAgICAgIGVs
c2UgaWYgKGNmVHlwZSA9PSBDRkJvb2xlYW5HZXRUeXBlSUQoKSkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKGNmVmFsdWUgPT0ga0NGQm9vbGVhblRydWUpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0ID0gInRydWUiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJmYWxzZSI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09IENGU3Ry
aW5nR2V0VHlwZUlEKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IENGU3RyaW5n
VG9VU3RyaW5nKChDRlN0cmluZ1JlZiljZlZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICBlbHNl
IGlmIChjZlR5cGUgPT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSkKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKGNmVmFsdWUgPT0ga0NGTnVtYmVyTmFOKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9ICJOYW4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBp
ZiAoQ0ZOdW1iZXJDb21wYXJlKGtDRk51bWJlclBvc2l0aXZlSW5maW5pdHksIChDRk51bWJlclJl
ZiljZlZhbHVlLCAwKSA9PSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9ICJJbmZpbml0eSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChDRk51
bWJlckNvbXBhcmUoa0NGTnVtYmVyTmVnYXRpdmVJbmZpbml0eSwgKENGTnVtYmVyUmVmKWNmVmFs
dWUsIDApID09IDApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gIi1J
bmZpbml0eSI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgY2ZOdW1TdHI7Ci0gICAgICAgICAgICAgICAg
ZG91YmxlIGQgPSAwOwotICAgICAgICAgICAgICAgIENGTnVtYmVyR2V0VmFsdWUoKENGTnVtYmVy
UmVmKWNmVmFsdWUsIGtDRk51bWJlckRvdWJsZVR5cGUsICZkKTsKLSAgICAgICAgICAgICAgICBp
ZiAoQ0ZOdW1iZXJJc0Zsb2F0VHlwZSgoQ0ZOdW1iZXJSZWYpY2ZWYWx1ZSkpCi0gICAgICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgICAgICBjZk51bVN0ciA9IENGU3RyaW5nQ3JlYXRlV2l0
aEZvcm1hdCgwLCAwLCBDRlNUUigiJWYiKSwgZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGNm
TnVtU3RyID0gQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIENGU1RSKCIlLjBmIiksIGQp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXN1bHQgPSBDRlN0cmluZ1Rv
VVN0cmluZyhjZk51bVN0cik7Ci0gICAgICAgICAgICAgICAgUmVsZWFzZUNGVHlwZShjZk51bVN0
cik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09
IENGQXJyYXlHZXRUeXBlSUQoKSkKLSAgICAgICAgewotICAgICAgICAgICAgLy8KLSAgICAgICAg
fQotICAgICAgICBlbHNlIGlmIChjZlR5cGUgPT0gQ0ZEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIC8vCi0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZU
eXBlID09IENGU2V0R2V0VHlwZUlEKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vCi0gICAg
ICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09IENGVVJMR2V0VHlwZUlEKCkpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIENGVVJMUmVmIGFic1VSTCA9IENGVVJMQ29weUFic29sdXRlVVJM
KChDRlVSTFJlZiljZlZhbHVlKTsKLSAgICAgICAgICAgIGlmIChhYnNVUkwpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgY2ZTdHIgPSBDRlVSTEdldFN0cmluZyhh
YnNVUkwpOwotICAgICAgICAgICAgICAgIGlmIChjZlN0cikKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IENGU3RyaW5nVG9VU3RyaW5nKGNmU3RyKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVsZWFzZUNGVHlwZShhYnNVUkwpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIFJlbGVhc2VDRlR5cGUoY2ZWYWx1
ZSk7Ci0gICAgaWYgKGpzT2JqUHRyKSBqc09ialB0ci0+UmVsZWFzZSgpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KIHZvaWQgVXNlck9iamVjdEltcDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFVzZXJPYmplY3RJbXAqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuaAppbmRleCA2ZGM1OTUxMDRmN2U5MmQwYzU0MjBiY2RlYjk1MTQzYTBl
M2FiMGIzLi5iNmFhMTgwYTAxZjllZWM4ZDliY2UzNGY1YjBlYjY5ODEwYzRhNTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTYzLDcgKzYzLDYgQEAgcHVibGljOgog
ICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlw
ZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
dG9Cb29sZWFuKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdG9O
dW1iZXIoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKLSAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJp
bmcoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110453</attachid>
            <date>2011-10-10 18:14:18 -0700</date>
            <delta_ts>2011-10-11 11:06:27 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69677-20111010181418.patch</filename>
            <type>text/plain</type>
            <size>16920</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNTcxMzM3YWViNjg5MzA5ODJhNzMxNThjNDJiNmNiMmU0
ODYxODhmNi4uMTQ2M2Q1MzA2NmZmMzhjNGI3ZDFlZDI0MDliNjNlYTIwZTc2ZWI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NCw3ICsx
OTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4
ZWNTdGF0ZSopIGNvbnN0OwotICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmKTsKICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggMjNkMWE4YzI4ODJmOGRh
ZGU2YWE2ZGViM2I3YjZmMTUzODRkZWM5MC4uY2VkN2I4ZjE2MmM2NzdhOGY5OWU5YWNhODYwODY3
NDJmMjlkNWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTUyMCwzMSArNTIwLDYgQEAgZG91YmxlIEpTQ2Fs
bGJhY2tPYmplY3Q8UGFyZW50Pjo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogfQog
CiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBKU0NvbnRleHRSZWYg
Y3R4ID0gdG9SZWYoZXhlYyk7Ci0gICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXMp
OwotICAgIAotICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gY2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKQotICAgICAgICBpZiAoSlNPYmplY3RD
b252ZXJ0VG9UeXBlQ2FsbGJhY2sgY29udmVydFRvVHlwZSA9IGpzQ2xhc3MtPmNvbnZlcnRUb1R5
cGUpIHsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgICAg
IEpTVmFsdWVSZWYgdmFsdWU7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVBJQ2Fs
bGJhY2tTaGltIGNhbGxiYWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGNv
bnZlcnRUb1R5cGUoY3R4LCB0aGlzUmVmLCBrSlNUeXBlU3RyaW5nLCAmZXhjZXB0aW9uKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIHRvSlMoZXhlYywgZXhjZXB0aW9uKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICIiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHZhbHVlKQotICAg
ICAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5nZXRTdHJpbmcoZXhlYyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgIHJldHVybiBQYXJlbnQ6OnRvU3RyaW5nKGV4ZWMp
OwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgogdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OnNldFByaXZhdGUodm9pZCogZGF0YSkKIHsKICAgICBtX2NhbGxiYWNrT2JqZWN0RGF0
YS0+cHJpdmF0ZURhdGEgPSBkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzY2ZTVm
ZWQwYTgzM2ZjODA3YTBjYjhiZDg0MTM5MDY3NTJjYTMyNy4uYWUxZmQwMjQxZTk3ZDAzOWZjMmM3
M2RmODFjOTE3YzljZjIzZmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDIgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTQ2VsbDo6dG9TdHJpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0b1N0cmluZyBmcm9t
IEpTQ2FsbGJhY2tPYmplY3QsIHNpbmNlIGl0IGlzIG5vIAorICAgICAgICBsb25nZXIgbmVjZXNz
YXJ5IHNpbmNlIHdlIG5vdyBpbXBsaWNpdGx5IGFkZCB0b1N0cmluZyBhbmQgdmFsdWVPZgorICAg
ICAgICBmdW5jdGlvbnMgdG8gb2JqZWN0IHByb3RvdHlwZXMgd2hlbiBhIGNvbnZlcnRUb1R5cGUg
Y2FsbGJhY2sgCisgICAgICAgIGlzIHByb3ZpZGVkLCB3aGljaCBpcyBub3cgdGhlIHN0YW5kYXJk
IHdheSB0byBvdmVycmlkZSB0b1N0cmluZyAKKyAgICAgICAgYW5kIHZhbHVlT2YgaW4gdGhlIEpT
QyBDIEFQSS4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKworICAgICAgICBSZW1v
dmVkIHRvU3RyaW5nIGZyb20gSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciBhbmQgCisgICAgICAg
IFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciBhbmQgcmVwbGFjZWQgaXQgd2l0aCBkZWZhdWx0VmFs
dWUsCisgICAgICAgIHdoaWNoIEpTT2JqZWN0Ojp0b1N0cmluZyBjYWxscy4gIFdlJ2xsIHByb2Jh
Ymx5IGhhdmUgdG8gZGUtdmlydHVhbGl6ZSAKKyAgICAgICAgZGVmYXVsdFZhbHVlIGV2ZW50dWFs
bHksIGJ1dCB3ZSdsbCBjcm9zcyB0aGF0IGJyaWRnZSB3aGVuIHdlIAorICAgICAgICBjb21lIHRv
IGl0LgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChK
U0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChK
U0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6ZGVmYXVsdFZhbHVlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaDoKKworICAgICAgICBSZW1vdmVkIHRvU3RyaW5nIGZy
b20gSlNOb3RBbk9iamVjdCwgc2luY2UgaXRzIHJldHVybiB2YWx1ZSBkb2Vzbid0CisgICAgICAg
IGFjdHVhbGx5IG1hdHRlciBhbmQgSlNPYmplY3Q6OnRvU3RyaW5nIGNhbiBjb3ZlciBpdC4KKyAg
ICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNO
b3RBbk9iamVjdC5oOgorCisgICAgICAgIERlLXZpcnR1YWxpemVkIEpTQ2VsbDo6dG9TdHJpbmcs
IEpTT2JqZWN0Ojp0b1N0cmluZyBhbmQgSlNTdHJpbmc6OnRvU3RyaW5nLgorICAgICAgICBBZGRl
ZCBoYW5kbGluZyBvZiBhbGwgY2FzZXMgZm9yIEpTQ2VsbCB0byBKU0NlbGw6OnRvU3RyaW5nLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5n
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6
OnRvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorCiAyMDExLTEwLTEwICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByOTcwNDUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGQ1NWNlYjM3MjI2OWQ0MTU3MmYwMGRj
N2Q5MjFlNzM0MDg4ODc2ZGQuLmQ1NDEzMmQ3N2ZlMjBhY2Y2OTI2Y2NkMGYyN2VhY2NiMGExZmVk
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCkBAIC0zNTMsOSArMzUzLDYgQEAgRVhQT1JUUwogICAgID90b051bWJlclNsb3dDYXNl
QEpTVmFsdWVASlNDQEBBQkVOUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dG9PYmplY3RASlNDZWxs
QEpTQ0BAUUJFUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAy
QEBaCiAgICAgP3RvT2JqZWN0U2xvd0Nhc2VASlNWYWx1ZUBKU0NAQEFCRVBBVkpTT2JqZWN0QDJA
UEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBAWgotICAgID90b1N0cmluZ0BKU0Nl
bGxASlNDQEBVQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/dG9TdHJpbmdA
SlNPYmplY3RASlNDQEBVQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/dG9T
dHJpbmdASlNTdHJpbmdASlNDQEBFQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKICAg
ICA/dG9TdHJpbmdEZWNpbWFsQERlY2ltYWxOdW1iZXJAV1RGQEBRQkVJUEFfV0lAWgogICAgID90
b1N0cmluZ0V4cG9uZW50aWFsQERlY2ltYWxOdW1iZXJAV1RGQEBRQkVJUEFfV0lAWgogICAgID90
b1RoaXNPYmplY3RASlNDZWxsQEpTQ0BAVUJFUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmNwcAppbmRleCAxMTA2NGQxMjhkMzU1OGY3ZGM2OTgxZjI0YTg5MjY5ZmRlZmFmM2U2Li4xNjQ4
MWJhNmE0MGJjOWE2MWUzNTNlNDYxOGZlMDAxYzc5YzQ5MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtNDMsOSArNDMs
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRlcnJ1cHRlZEV4ZWN1
dGlvbkVycm9yOjpzX2luZm8gPSB7ICJJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yIiwgJkJhc2U6
OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVy
cm9yKSB9OwogCi1VU3RyaW5nIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OnRvU3RyaW5nKEV4
ZWNTdGF0ZSopIGNvbnN0CitKU1ZhbHVlIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmRlZmF1
bHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgaGludCkgY29u
c3QKIHsKLSAgICByZXR1cm4gIkphdmFTY3JpcHQgZXhlY3V0aW9uIGV4Y2VlZGVkIHRpbWVvdXQu
IjsKKyAgICBpZiAoaGludCA9PSBQcmVmZXJTdHJpbmcpCisgICAgICAgIHJldHVybiBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgIkphdmFTY3JpcHQgZXhlY3V0aW9uIGV4Y2VlZGVkIHRpbWVvdXQu
Iik7CisgICAgcmV0dXJuIEpTVmFsdWUoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCkBAIC02Niw5ICs2OCwxMSBAQCBib29sIGlz
SW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb24oSlNWYWx1ZSB2YWx1ZSkKIAogY29uc3QgQ2xh
c3NJbmZvIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6c19pbmZvID0geyAiVGVybWluYXRlZEV4
ZWN1dGlvbkVycm9yIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShU
ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IpIH07CiAKLVVTdHJpbmcgVGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yOjp0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdAorSlNWYWx1ZSBUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3I6OmRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIFByZWZlcnJlZFByaW1p
dGl2ZVR5cGUgaGludCkgY29uc3QKIHsKLSAgICByZXR1cm4gIkphdmFTY3JpcHQgZXhlY3V0aW9u
IHRlcm1pbmF0ZWQuIjsKKyAgICBpZiAoaGludCA9PSBQcmVmZXJTdHJpbmcpCisgICAgICAgIHJl
dHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkphdmFTY3JpcHQgZXhlY3V0aW9uIHRlcm1p
bmF0ZWQuIik7CisgICAgcmV0dXJuIEpTVmFsdWUoc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUZXJtaW5hdGVkRXhlY3V0aW9u
RXhjZXB0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAppbmRleCA4MjJkOWFiOWI5OTM2ODlm
MDA0YmIzMjNiNjJlYTZjNTYzNWU2OTMxLi42MmEwMDFlZjZkMmFkOTE3OTViNGQzNGZkODA5YzA3
ZDkxNDBiMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAot
ICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpIGNvbnN0OwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7
CkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
VVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEpTVmFsdWUg
ZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0Owog
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCAzZDYyN2UxZmVkZjQ1MDU5ZTJiZGI0
YjFmM2RiZTdiNjY3N2I0OWY3Li5lYmE2OGE3ZjMzODNmNjYzYzhiYTU5NWVjNTcxMTNmNjUzZTZl
ZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTE3Mywx
MCArMTczLDExIEBAIGRvdWJsZSBKU0NlbGw6OnRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0CiAg
ICAgcmV0dXJuIDA7CiB9CiAKLVVTdHJpbmcgSlNDZWxsOjp0b1N0cmluZyhFeGVjU3RhdGUqKSBj
b25zdAorVVN0cmluZyBKU0NlbGw6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gVVN0cmluZygpOworICAgIGlm
IChpc1N0cmluZygpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNTdHJpbmcq
Pih0aGlzKS0+dG9TdHJpbmcoZXhlYyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEpT
T2JqZWN0Kj4odGhpcyktPnRvU3RyaW5nKGV4ZWMpOwogfQogCiBKU09iamVjdCogSlNDZWxsOjp0
b09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDcyZjU1YTFiMWYw
ODNiNGI1NGQzNDhhYjRmNTAzNzAyOWJmMzM0YWYuLjk2NTJlMDU5NTMyNzE1NTM2ZmU1YWYzYjcx
MTcwZGU0M2Y1YzlmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBA
IC04Myw3ICs4Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGdldFByaW1pdGl2
ZU51bWJlcihFeGVjU3RhdGUqLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYpIGNvbnN0OwogICAg
ICAgICBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBk
b3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgVVN0cmlu
ZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgVVN0cmluZyB0b1N0cmluZyhF
eGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCBlMTRhNjhiZDk0ZmExNGVlMGNkNjRkMGYz
NDI3YWEyY2M0NmRiOWQ5Li4wOGY1ZjEwZDAxOGEzMWFlNmE0NGI5Y2I5YmNhMjQ4YzMzNWFmNTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNw
cApAQCAtNTEsMTIgKzUxLDYgQEAgZG91YmxlIEpTTm90QW5PYmplY3Q6OnRvTnVtYmVyKEV4ZWNT
dGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKIH0KIAotVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRF
eGNlcHRpb24oKSk7Ci0gICAgcmV0dXJuICIiOwotfQotCiBib29sIEpTTm90QW5PYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50
aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IGI4ZjBmYWE4NTYyMjYyM2MyMDc5Yzlj
OWM3MTM3ZDdkN2IyODUxZjcuLjhlNGYwOWNiZTZjODVkMWM2MjNiZTM4MDgyNzQzYWI0MmRjNzhm
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgK
QEAgLTY3LDcgKzY3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIEpTVmFsdWUgbWV0
aG9kcwogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFBy
ZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051
bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5n
KEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgICAgIC8vIEpTT2JqZWN0IG1ldGhvZHMKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYzhmM2RlOTdhNzI0OWE2ZGY3MDM5MzIyMzFlOGQx
ODExOWQ5MjJkZi4uNGEyNzkxZmQwZjBlZmU5OWEwNTAwNmU3YTA0Mzk2NjUyZjdmNmNhNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNDEsNyArMTQxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNv
bnN0OwogICAgICAgICBib29sIGdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqLCBkb3VibGUm
IG51bWJlciwgSlNWYWx1ZSYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJl
cihFeGVjU3RhdGUqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4
ZWNTdGF0ZSopIGNvbnN0OworICAgICAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNv
bnN0OwogCiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdW53cmFwcGVkT2JqZWN0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCA3MjBkNjJiZDZjZjMy
NzMxMTVmNjJmMmUzODE0MDE5NGRiY2I4OGVmLi4wYzAxNjMzMzgwMWRjMGNmNjU4ZjE1ZmNhODQw
MzIxODhjMjMxOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
QEAgLTQzMCw2ICs0MzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCB0b0Jvb2xl
YW4oRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4
ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJikgY29uc3Q7CiAgICAgICAgIEpTT2Jq
ZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgICAg
ICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICAKICAgICAgICAg
Ym9vbCBnZXRTdHJpbmdQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRTdHJpbmdQcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKQEAgLTUwMiw3ICs1MDMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2
aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICAgICAgdmly
dHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZwppbmRleCAwYjFiNDU2NTEzMTRmMjQ0ZmU0ZWNiZjUyMWY2ZWI3MmVhYzIy
ZjEwLi5iMGQ1ZmRmYzZiZGE5OGFjZDJiMWQ0M2NjYjdjZmFlNDljOWYxY2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMC0xMCAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIERlLXZpcnR1YWxpemUgSlND
ZWxsOjp0b1N0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njk2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmVkIFVzZXJPYmplY3RJbXA6OnRvU3RyaW5nIGJlY2F1c2UgaXQncyBubyBsb25n
ZXIgbmVjZXNzYXJ5IHNpbmNlIAorICAgICAgICBjbGllbnRzIGNhbiBwcm92aWRlIHRoZWlyIG93
biB0b1N0cmluZyBjYWxsYmFjayB3aGljaCB3aWxsIGluIHR1cm4gYmUgCisgICAgICAgIGNhbGxl
ZCBieSBKU09iamVjdDo6dG9TdHJpbmcuCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6Cisg
ICAgICAgICogVXNlck9iamVjdEltcC5oOgorCiAyMDExLTEwLTA4ICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0YXRpYyB2ZXJzaW9uIG9m
IEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5jcHAKaW5kZXggN2I2MDg5M2E4NjgzMmU3NzQ4ZDlkMTZjMzYwNzU0N2Y0YjM5Y2FkYy4u
NTU0MjNkY2NmNzc2NThjYzk5YTg4ZmUxOTlhMzRlZGNmYTk4MWIwNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMzMzLDk1ICszMzMsNiBAQCBkb3VibGUgVXNl
ck9iamVjdEltcDo6dG9OdW1iZXIoRXhlY1N0YXRlICpleGVjKSBjb25zdAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLVVTdHJpbmcgVXNlck9iamVjdEltcDo6dG9TdHJpbmcoRXhlY1N0YXRlICpl
eGVjKSBjb25zdAotewotICAgIFVTdHJpbmcgcmVzdWx0OwotICAgIEpTVXNlck9iamVjdCoganNP
YmpQdHIgPSBLSlNWYWx1ZVRvSlNPYmplY3QodG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKSwgZXhlYyk7Ci0gICAgQ0ZUeXBlUmVmIGNmVmFsdWUgPSBqc09ialB0ciA/
IGpzT2JqUHRyLT5Db3B5Q0ZWYWx1ZSgpIDogMDsKLSAgICBpZiAoY2ZWYWx1ZSkKLSAgICB7Ci0g
ICAgICAgIENGVHlwZUlEIGNmVHlwZSA9IENGR2V0VHlwZUlEKGNmVmFsdWUpOwotICAgICAgICBp
ZiAoY2ZWYWx1ZSA9PSBHZXRDRk51bGwoKSkKLSAgICAgICAgewotICAgICAgICAgICAgLy8KLSAg
ICAgICAgfQotICAgICAgICBlbHNlIGlmIChjZlR5cGUgPT0gQ0ZCb29sZWFuR2V0VHlwZUlEKCkp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjZlZhbHVlID09IGtDRkJvb2xlYW5UcnVlKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJ0cnVlIjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSAiZmFsc2UiOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2Ug
aWYgKGNmVHlwZSA9PSBDRlN0cmluZ0dldFR5cGVJRCgpKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXN1bHQgPSBDRlN0cmluZ1RvVVN0cmluZygoQ0ZTdHJpbmdSZWYpY2ZWYWx1ZSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09IENGTnVtYmVyR2V0VHlwZUlEKCkpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjZlZhbHVlID09IGtDRk51bWJlck5hTikKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAiTmFuIjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGVsc2UgaWYgKENGTnVtYmVyQ29tcGFyZShrQ0ZOdW1iZXJQb3NpdGl2ZUlu
ZmluaXR5LCAoQ0ZOdW1iZXJSZWYpY2ZWYWx1ZSwgMCkgPT0gMCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSAiSW5maW5pdHkiOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgZWxzZSBpZiAoQ0ZOdW1iZXJDb21wYXJlKGtDRk51bWJlck5lZ2F0aXZlSW5maW5pdHks
IChDRk51bWJlclJlZiljZlZhbHVlLCAwKSA9PSAwKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9ICItSW5maW5pdHkiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGU3RyaW5nUmVmIGNmTnVtU3Ry
OwotICAgICAgICAgICAgICAgIGRvdWJsZSBkID0gMDsKLSAgICAgICAgICAgICAgICBDRk51bWJl
ckdldFZhbHVlKChDRk51bWJlclJlZiljZlZhbHVlLCBrQ0ZOdW1iZXJEb3VibGVUeXBlLCAmZCk7
Ci0gICAgICAgICAgICAgICAgaWYgKENGTnVtYmVySXNGbG9hdFR5cGUoKENGTnVtYmVyUmVmKWNm
VmFsdWUpKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgY2ZOdW1TdHIg
PSBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgQ0ZTVFIoIiVmIiksIGQpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICBjZk51bVN0ciA9IENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAw
LCBDRlNUUigiJS4wZiIpLCBkKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gQ0ZTdHJpbmdUb1VTdHJpbmcoY2ZOdW1TdHIpOwotICAgICAgICAgICAgICAgIFJl
bGVhc2VDRlR5cGUoY2ZOdW1TdHIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGVsc2UgaWYgKGNmVHlwZSA9PSBDRkFycmF5R2V0VHlwZUlEKCkpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIC8vCi0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09IENGRGljdGlv
bmFyeUdldFR5cGVJRCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UgaWYgKGNmVHlwZSA9PSBDRlNldEdldFR5cGVJRCgpKQotICAgICAgICB7Ci0g
ICAgICAgICAgICAvLwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNmVHlwZSA9PSBDRlVS
TEdldFR5cGVJRCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBDRlVSTFJlZiBhYnNVUkwgPSBD
RlVSTENvcHlBYnNvbHV0ZVVSTCgoQ0ZVUkxSZWYpY2ZWYWx1ZSk7Ci0gICAgICAgICAgICBpZiAo
YWJzVVJMKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGU3RyaW5nUmVmIGNmU3Ry
ID0gQ0ZVUkxHZXRTdHJpbmcoYWJzVVJMKTsKLSAgICAgICAgICAgICAgICBpZiAoY2ZTdHIpCi0g
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBDRlN0cmluZ1Rv
VVN0cmluZyhjZlN0cik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFJlbGVh
c2VDRlR5cGUoYWJzVVJMKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBS
ZWxlYXNlQ0ZUeXBlKGNmVmFsdWUpOwotICAgIGlmIChqc09ialB0cikganNPYmpQdHItPlJlbGVh
c2UoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB2b2lkIFVzZXJPYmplY3RJbXA6OnZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBVc2Vy
T2JqZWN0SW1wKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8VXNlck9iamVjdEltcCo+KGNlbGwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggNmRjNTk1MTA0ZjdlOTJk
MGM1NDIwYmNkZWI5NTE0M2EwZTNhYjBiMy4uYjZhYTE4MGEwMWY5ZWVjOGQ5YmNlMzRmNWIwZWI2
OTgxMGM0YTUyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC02Myw3
ICs2Myw2IEBAIHB1YmxpYzoKICAgICBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIFBy
ZWZlcnJlZFByaW1pdGl2ZVR5cGUgcHJlZmVycmVkVHlwZSA9IE5vUHJlZmVyZW5jZSkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OwogICAg
IHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7Ci0gICAgdmly
dHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CiAKICAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110541</attachid>
            <date>2011-10-11 11:06:32 -0700</date>
            <delta_ts>2011-10-12 13:22:17 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69677-20111011110634.patch</filename>
            <type>text/plain</type>
            <size>17044</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNTcxMzM3YWViNjg5MzA5ODJhNzMxNThjNDJiNmNiMmU0
ODYxODhmNi4uMTQ2M2Q1MzA2NmZmMzhjNGI3ZDFlZDI0MDliNjNlYTIwZTc2ZWI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NCw3ICsx
OTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAogICAgIHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4
ZWNTdGF0ZSopIGNvbnN0OwotICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUq
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmKTsKICAgICBzdGF0aWMgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRh
KEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggMjNkMWE4YzI4ODJmOGRh
ZGU2YWE2ZGViM2I3YjZmMTUzODRkZWM5MC4uY2VkN2I4ZjE2MmM2NzdhOGY5OWU5YWNhODYwODY3
NDJmMjlkNWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTUyMCwzMSArNTIwLDYgQEAgZG91YmxlIEpTQ2Fs
bGJhY2tPYmplY3Q8UGFyZW50Pjo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogfQog
CiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotVVN0cmluZyBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OnRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKLXsKLSAgICBKU0NvbnRleHRSZWYg
Y3R4ID0gdG9SZWYoZXhlYyk7Ci0gICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXMp
OwotICAgIAotICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gY2xhc3NSZWYoKTsganNDbGFz
czsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKQotICAgICAgICBpZiAoSlNPYmplY3RD
b252ZXJ0VG9UeXBlQ2FsbGJhY2sgY29udmVydFRvVHlwZSA9IGpzQ2xhc3MtPmNvbnZlcnRUb1R5
cGUpIHsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgICAg
IEpTVmFsdWVSZWYgdmFsdWU7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVBJQ2Fs
bGJhY2tTaGltIGNhbGxiYWNrU2hpbShleGVjKTsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGNv
bnZlcnRUb1R5cGUoY3R4LCB0aGlzUmVmLCBrSlNUeXBlU3RyaW5nLCAmZXhjZXB0aW9uKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIHRvSlMoZXhlYywgZXhjZXB0aW9uKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICIiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHZhbHVlKQotICAg
ICAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHZhbHVlKS5nZXRTdHJpbmcoZXhlYyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgIHJldHVybiBQYXJlbnQ6OnRvU3RyaW5nKGV4ZWMp
OwotfQotCi10ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50Pgogdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBh
cmVudD46OnNldFByaXZhdGUodm9pZCogZGF0YSkKIHsKICAgICBtX2NhbGxiYWNrT2JqZWN0RGF0
YS0+cHJpdmF0ZURhdGEgPSBkYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzY2ZTVm
ZWQwYTgzM2ZjODA3YTBjYjhiZDg0MTM5MDY3NTJjYTMyNy4uYWUxZmQwMjQxZTk3ZDAzOWZjMmM3
M2RmODFjOTE3YzljZjIzZmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDIgQEAKKzIwMTEtMTAtMTAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTQ2VsbDo6dG9TdHJpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5Njc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0b1N0cmluZyBmcm9t
IEpTQ2FsbGJhY2tPYmplY3QsIHNpbmNlIGl0IGlzIG5vIAorICAgICAgICBsb25nZXIgbmVjZXNz
YXJ5IHNpbmNlIHdlIG5vdyBpbXBsaWNpdGx5IGFkZCB0b1N0cmluZyBhbmQgdmFsdWVPZgorICAg
ICAgICBmdW5jdGlvbnMgdG8gb2JqZWN0IHByb3RvdHlwZXMgd2hlbiBhIGNvbnZlcnRUb1R5cGUg
Y2FsbGJhY2sgCisgICAgICAgIGlzIHByb3ZpZGVkLCB3aGljaCBpcyBub3cgdGhlIHN0YW5kYXJk
IHdheSB0byBvdmVycmlkZSB0b1N0cmluZyAKKyAgICAgICAgYW5kIHZhbHVlT2YgaW4gdGhlIEpT
QyBDIEFQSS4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKworICAgICAgICBSZW1v
dmVkIHRvU3RyaW5nIGZyb20gSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciBhbmQgCisgICAgICAg
IFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciBhbmQgcmVwbGFjZWQgaXQgd2l0aCBkZWZhdWx0VmFs
dWUsCisgICAgICAgIHdoaWNoIEpTT2JqZWN0Ojp0b1N0cmluZyBjYWxscy4gIFdlJ2xsIHByb2Jh
Ymx5IGhhdmUgdG8gZGUtdmlydHVhbGl6ZSAKKyAgICAgICAgZGVmYXVsdFZhbHVlIGV2ZW50dWFs
bHksIGJ1dCB3ZSdsbCBjcm9zcyB0aGF0IGJyaWRnZSB3aGVuIHdlIAorICAgICAgICBjb21lIHRv
IGl0LgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChK
U0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChK
U0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6ZGVmYXVsdFZhbHVlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaDoKKworICAgICAgICBSZW1vdmVkIHRvU3RyaW5nIGZy
b20gSlNOb3RBbk9iamVjdCwgc2luY2UgaXRzIHJldHVybiB2YWx1ZSBkb2Vzbid0CisgICAgICAg
IGFjdHVhbGx5IG1hdHRlciBhbmQgSlNPYmplY3Q6OnRvU3RyaW5nIGNhbiBjb3ZlciBpdC4KKyAg
ICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNO
b3RBbk9iamVjdC5oOgorCisgICAgICAgIERlLXZpcnR1YWxpemVkIEpTQ2VsbDo6dG9TdHJpbmcs
IEpTT2JqZWN0Ojp0b1N0cmluZyBhbmQgSlNTdHJpbmc6OnRvU3RyaW5nLgorICAgICAgICBBZGRl
ZCBoYW5kbGluZyBvZiBhbGwgY2FzZXMgZm9yIEpTQ2VsbCB0byBKU0NlbGw6OnRvU3RyaW5nLgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5n
Lmg6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6
OnRvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorCiAyMDExLTEwLTEwICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByOTcwNDUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGQ1NWNlYjM3MjI2OWQ0MTU3MmYwMGRj
N2Q5MjFlNzM0MDg4ODc2ZGQuLjc4MDViMTQzMzJkMzFjOTJjNzJkMTI2NGJkNzNiOGMyNmIyMmEz
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCkBAIC0zNTMsOSArMzUzLDggQEAgRVhQT1JUUwogICAgID90b051bWJlclNsb3dDYXNl
QEpTVmFsdWVASlNDQEBBQkVOUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/dG9PYmplY3RASlNDZWxs
QEpTQ0BAUUJFUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAy
QEBaCiAgICAgP3RvT2JqZWN0U2xvd0Nhc2VASlNWYWx1ZUBKU0NAQEFCRVBBVkpTT2JqZWN0QDJA
UEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBAWgotICAgID90b1N0cmluZ0BKU0Nl
bGxASlNDQEBVQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/dG9TdHJpbmdA
SlNPYmplY3RASlNDQEBVQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKLSAgICA/dG9T
dHJpbmdASlNTdHJpbmdASlNDQEBFQkU/QVZVU3RyaW5nQDJAUEFWRXhlY1N0YXRlQDJAQFoKKyAg
ICA/dG9TdHJpbmdASlNDZWxsQEpTQ0BAUUJFP0FWVVN0cmluZ0AyQFBBVkV4ZWNTdGF0ZUAyQEBa
CisgICAgP3RvU3RyaW5nQEpTT2JqZWN0QEpTQ0BAUUJFP0FWVVN0cmluZ0AyQFBBVkV4ZWNTdGF0
ZUAyQEBaCiAgICAgP3RvU3RyaW5nRGVjaW1hbEBEZWNpbWFsTnVtYmVyQFdURkBAUUJFSVBBX1dJ
QFoKICAgICA/dG9TdHJpbmdFeHBvbmVudGlhbEBEZWNpbWFsTnVtYmVyQFdURkBAUUJFSVBBX1dJ
QFoKICAgICA/dG9UaGlzT2JqZWN0QEpTQ2VsbEBKU0NAQFVCRVBBVkpTT2JqZWN0QDJAUEFWRXhl
Y1N0YXRlQDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAKaW5kZXggMTEwNjRkMTI4ZDM1NThmN2RjNjk4MWYyNGE4OTI2OWZkZWZh
ZjNlNi4uMTY0ODFiYTZhNDBiYzlhNjFlMzUzZTQ2MThmZTAwMWM3OWM0OTFmYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAg
LTQzLDkgKzQzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSW50ZXJy
dXB0ZWRFeGVjdXRpb25FcnJvcjo6c19pbmZvID0geyAiSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJv
ciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSW50ZXJydXB0ZWRF
eGVjdXRpb25FcnJvcikgfTsKIAotVVN0cmluZyBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOjp0
b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdAorSlNWYWx1ZSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVy
cm9yOjpkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
IGhpbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiBleGNlZWRl
ZCB0aW1lb3V0LiI7CisgICAgaWYgKGhpbnQgPT0gUHJlZmVyU3RyaW5nKQorICAgICAgICByZXR1
cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJKYXZhU2NyaXB0IGV4ZWN1dGlvbiBleGNlZWRl
ZCB0aW1lb3V0LiIpOworICAgIHJldHVybiBKU1ZhbHVlKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCiBKU09iamVjdCogY3JlYXRlSW50ZXJydXB0ZWRFeGVj
dXRpb25FeGNlcHRpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKQpAQCAtNjYsOSArNjgsMTEg
QEAgYm9vbCBpc0ludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uKEpTVmFsdWUgdmFsdWUpCiAK
IGNvbnN0IENsYXNzSW5mbyBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I6OnNfaW5mbyA9IHsgIlRl
cm1pbmF0ZWRFeGVjdXRpb25FcnJvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRI
T0RfVEFCTEUoVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKSB9OwogCi1VU3RyaW5nIFRlcm1pbmF0
ZWRFeGVjdXRpb25FcnJvcjo6dG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3QKK0pTVmFsdWUgVGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yOjpkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQcmVm
ZXJyZWRQcmltaXRpdmVUeXBlIGhpbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICJKYXZhU2NyaXB0
IGV4ZWN1dGlvbiB0ZXJtaW5hdGVkLiI7CisgICAgaWYgKGhpbnQgPT0gUHJlZmVyU3RyaW5nKQor
ICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJKYXZhU2NyaXB0IGV4ZWN1
dGlvbiB0ZXJtaW5hdGVkLiIpOworICAgIHJldHVybiBKU1ZhbHVlKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwogfQogCiBKU09iamVjdCogY3JlYXRlVGVybWluYXRl
ZEV4ZWN1dGlvbkV4Y2VwdGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5kZXggODIyZDlh
YjliOTkzNjg5ZjAwNGJiMzIzYjYyZWE2YzU2MzVlNjkzMS4uNjJhMDAxZWY2ZDJhZDkxNzk1YjRk
MzRmZDgwOWMwN2Q5MTQwYjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIHsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7
CisgICAgdmlydHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQ
cmltaXRpdmVUeXBlKSBjb25zdDsKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwpAQCAtODksNyArODksNyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgdmlydHVh
bCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBl
KSBjb25zdDsKIAogcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggM2Q2MjdlMWZlZGY0
NTA1OWUyYmRiNGIxZjNkYmU3YjY2NzdiNDlmNy4uZWJhNjhhN2YzMzgzZjY2M2M4YmE1OTVlYzU3
MTEzZjY1M2U2ZWZiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3Bw
CkBAIC0xNzMsMTAgKzE3MywxMSBAQCBkb3VibGUgSlNDZWxsOjp0b051bWJlcihFeGVjU3RhdGUq
KSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1VU3RyaW5nIEpTQ2VsbDo6dG9TdHJpbmcoRXhl
Y1N0YXRlKikgY29uc3QKK1VTdHJpbmcgSlNDZWxsOjp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFVTdHJpbmco
KTsKKyAgICBpZiAoaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IEpTU3RyaW5nKj4odGhpcyktPnRvU3RyaW5nKGV4ZWMpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBKU09iamVjdCo+KHRoaXMpLT50b1N0cmluZyhleGVjKTsKIH0KIAogSlNPYmplY3Qq
IEpTQ2VsbDo6dG9PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCA3
MmY1NWExYjFmMDgzYjRiNTRkMzQ4YWI0ZjUwMzcwMjliZjMzNGFmLi45NjUyZTA1OTUzMjcxNTUz
NmZlNWFmM2I3MTE3MGRlNDNmNWM5ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaApAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBn
ZXRQcmltaXRpdmVOdW1iZXIoRXhlY1N0YXRlKiwgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmKSBj
b25zdDsKICAgICAgICAgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2aXJ0
dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgICAgIFVTdHJpbmcg
dG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIEpTT2JqZWN0KiB0b09iamVjdChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyB2b2lk
IHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggZTE0YTY4YmQ5NGZhMTRl
ZTBjZDY0ZDBmMzQyN2FhMmNjNDZkYjlkOS4uMDhmNWYxMGQwMThhMzFhZTZhNDRiOWNiOWJjYTI0
OGMzMzVhZjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5jcHAKQEAgLTUxLDEyICs1MSw2IEBAIGRvdWJsZSBKU05vdEFuT2JqZWN0Ojp0b051
bWJlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiB9CiAKLVVTdHJpbmcgSlNOb3RBbk9iamVjdDo6dG9T
dHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAotewotICAgIEFTU0VSVF9VTlVTRUQoZXhlYywg
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwotICAgIHJldHVybiAiIjsKLX0KLQogYm9vbCBKU05vdEFu
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBiOGYwZmFhODU2MjI2
MjNjMjA3OWM5YzljNzEzN2Q3ZDdiMjg1MWY3Li44ZTRmMDljYmU2Yzg1ZDFjNjIzYmUzODA4Mjc0
M2FiNDJkYzc4ZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RB
bk9iamVjdC5oCkBAIC02Nyw3ICs2Nyw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAvLyBK
U1ZhbHVlIG1ldGhvZHMKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVj
U3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBk
b3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgVVN0cmlu
ZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBKU09iamVjdCBtZXRo
b2RzCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGM4ZjNkZTk3YTcyNDlhNmRmNzAz
OTMyMjMxZThkMTgxMTlkOTIyZGYuLjRhMjc5MWZkMGYwZWZlOTlhMDUwMDZlN2EwNDM5NjY1MmY3
ZjZjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTQx
LDcgKzE0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIHRvQm9vbGVhbihFeGVj
U3RhdGUqKSBjb25zdDsKICAgICAgICAgYm9vbCBnZXRQcmltaXRpdmVOdW1iZXIoRXhlY1N0YXRl
KiwgZG91YmxlJiBudW1iZXIsIEpTVmFsdWUmKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBkb3Vi
bGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgVVN0cmluZyB0
b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVj
U3RhdGUqKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3Qo
RXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHVud3JhcHBlZE9i
amVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggNzIw
ZDYyYmQ2Y2YzMjczMTE1ZjYyZjJlMzgxNDAxOTRkYmNiODhlZi4uMGMwMTYzMzM4MDFkYzBjZjY1
OGYxNWZjYTg0MDMyMTg4YzIzMTlmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZy5oCkBAIC00MzAsNiArNDMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJv
b2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICBib29sIGdldFByaW1pdGl2
ZU51bWJlcihFeGVjU3RhdGUqLCBkb3VibGUmIG51bWJlciwgSlNWYWx1ZSYpIGNvbnN0OwogICAg
ICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKKyAgICAgICAgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAg
CiAgICAgICAgIGJvb2wgZ2V0U3RyaW5nUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIGJvb2wgZ2V0
U3RyaW5nUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7CkBAIC01MDIsNyArNTAzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IH0KIAogICAgICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsK
LSAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogCiAg
ICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMGIxYjQ1NjUxMzE0ZjI0NGZlNGVjYmY1MjFm
NmViNzJlYWMyMmYxMC4uYjBkNWZkZmM2YmRhOThhY2QyYjFkNDNjY2I3Y2ZhZTQ5YzlmMWNlZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMTAgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0
dWFsaXplIEpTQ2VsbDo6dG9TdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5Njc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCBVc2VyT2JqZWN0SW1wOjp0b1N0cmluZyBiZWNhdXNlIGl0
J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBzaW5jZSAKKyAgICAgICAgY2xpZW50cyBjYW4gcHJvdmlk
ZSB0aGVpciBvd24gdG9TdHJpbmcgY2FsbGJhY2sgd2hpY2ggd2lsbCBpbiB0dXJuIGJlIAorICAg
ICAgICBjYWxsZWQgYnkgSlNPYmplY3Q6OnRvU3RyaW5nLgorICAgICAgICAqIFVzZXJPYmplY3RJ
bXAuY3BwOgorICAgICAgICAqIFVzZXJPYmplY3RJbXAuaDoKKwogMjAxMS0xMC0wOCAgTWFyayBI
YWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdGF0aWMg
dmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDdiNjA4OTNhODY4MzJlNzc0OGQ5ZDE2YzM2MDc1NDdm
NGIzOWNhZGMuLjU1NDIzZGNjZjc3NjU4Y2M5OWE4OGZlMTk5YTM0ZWRjZmE5ODFiMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTMzMyw5NSArMzMzLDYgQEAg
ZG91YmxlIFVzZXJPYmplY3RJbXA6OnRvTnVtYmVyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3QKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1VU3RyaW5nIFVzZXJPYmplY3RJbXA6OnRvU3RyaW5nKEV4
ZWNTdGF0ZSAqZXhlYykgY29uc3QKLXsKLSAgICBVU3RyaW5nIHJlc3VsdDsKLSAgICBKU1VzZXJP
YmplY3QqIGpzT2JqUHRyID0gS0pTVmFsdWVUb0pTT2JqZWN0KHRvT2JqZWN0KGV4ZWMsIGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSksIGV4ZWMpOwotICAgIENGVHlwZVJlZiBjZlZhbHVlID0g
anNPYmpQdHIgPyBqc09ialB0ci0+Q29weUNGVmFsdWUoKSA6IDA7Ci0gICAgaWYgKGNmVmFsdWUp
Ci0gICAgewotICAgICAgICBDRlR5cGVJRCBjZlR5cGUgPSBDRkdldFR5cGVJRChjZlZhbHVlKTsK
LSAgICAgICAgaWYgKGNmVmFsdWUgPT0gR2V0Q0ZOdWxsKCkpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIC8vCi0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY2ZUeXBlID09IENGQm9vbGVhbkdl
dFR5cGVJRCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoY2ZWYWx1ZSA9PSBrQ0ZCb29s
ZWFuVHJ1ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAidHJ1ZSI7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0ID0gImZhbHNlIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICBlbHNlIGlmIChjZlR5cGUgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmVzdWx0ID0gQ0ZTdHJpbmdUb1VTdHJpbmcoKENGU3RyaW5nUmVmKWNmVmFs
dWUpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNmVHlwZSA9PSBDRk51bWJlckdldFR5
cGVJRCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoY2ZWYWx1ZSA9PSBrQ0ZOdW1iZXJO
YU4pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gIk5hbiI7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChDRk51bWJlckNvbXBhcmUoa0NGTnVtYmVy
UG9zaXRpdmVJbmZpbml0eSwgKENGTnVtYmVyUmVmKWNmVmFsdWUsIDApID09IDApCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gIkluZmluaXR5IjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGVsc2UgaWYgKENGTnVtYmVyQ29tcGFyZShrQ0ZOdW1iZXJOZWdhdGl2
ZUluZmluaXR5LCAoQ0ZOdW1iZXJSZWYpY2ZWYWx1ZSwgMCkgPT0gMCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSAiLUluZmluaXR5IjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBDRlN0cmluZ1Jl
ZiBjZk51bVN0cjsKLSAgICAgICAgICAgICAgICBkb3VibGUgZCA9IDA7Ci0gICAgICAgICAgICAg
ICAgQ0ZOdW1iZXJHZXRWYWx1ZSgoQ0ZOdW1iZXJSZWYpY2ZWYWx1ZSwga0NGTnVtYmVyRG91Ymxl
VHlwZSwgJmQpOwotICAgICAgICAgICAgICAgIGlmIChDRk51bWJlcklzRmxvYXRUeXBlKChDRk51
bWJlclJlZiljZlZhbHVlKSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IGNmTnVtU3RyID0gQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIENGU1RSKCIlZiIpLCBk
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgY2ZOdW1TdHIgPSBDRlN0cmluZ0NyZWF0ZVdpdGhG
b3JtYXQoMCwgMCwgQ0ZTVFIoIiUuMGYiKSwgZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IENGU3RyaW5nVG9VU3RyaW5nKGNmTnVtU3RyKTsKLSAgICAgICAg
ICAgICAgICBSZWxlYXNlQ0ZUeXBlKGNmTnVtU3RyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBlbHNlIGlmIChjZlR5cGUgPT0gQ0ZBcnJheUdldFR5cGVJRCgpKQotICAgICAg
ICB7Ci0gICAgICAgICAgICAvLwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNmVHlwZSA9
PSBDRkRpY3Rpb25hcnlHZXRUeXBlSUQoKSkKLSAgICAgICAgewotICAgICAgICAgICAgLy8KLSAg
ICAgICAgfQotICAgICAgICBlbHNlIGlmIChjZlR5cGUgPT0gQ0ZTZXRHZXRUeXBlSUQoKSkKLSAg
ICAgICAgewotICAgICAgICAgICAgLy8KLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChjZlR5
cGUgPT0gQ0ZVUkxHZXRUeXBlSUQoKSkKLSAgICAgICAgewotICAgICAgICAgICAgQ0ZVUkxSZWYg
YWJzVVJMID0gQ0ZVUkxDb3B5QWJzb2x1dGVVUkwoKENGVVJMUmVmKWNmVmFsdWUpOwotICAgICAg
ICAgICAgaWYgKGFic1VSTCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBDRlN0cmlu
Z1JlZiBjZlN0ciA9IENGVVJMR2V0U3RyaW5nKGFic1VSTCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGNmU3RyKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
Q0ZTdHJpbmdUb1VTdHJpbmcoY2ZTdHIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBSZWxlYXNlQ0ZUeXBlKGFic1VSTCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgUmVsZWFzZUNGVHlwZShjZlZhbHVlKTsKLSAgICBpZiAoanNPYmpQdHIpIGpzT2Jq
UHRyLT5SZWxlYXNlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogdm9pZCBVc2VyT2JqZWN0
SW1wOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CiAgICAgVXNlck9iamVjdEltcCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJ
bXAqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDZkYzU5
NTEwNGY3ZTkyZDBjNTQyMGJjZGViOTUxNDNhMGUzYWIwYjMuLmI2YWExODBhMDFmOWVlYzhkOWJj
ZTM0ZjViMGViNjk4MTBjNGE1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9V
c2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aApAQCAtNjMsNyArNjMsNiBAQCBwdWJsaWM6CiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVj
U3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVu
Y2UpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlICpleGVjKSBj
b25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0
OwotICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0Owog
CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>