<?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>40201</bug_id>
          
          <creation_ts>2010-06-04 21:57:23 -0700</creation_ts>
          <short_desc>Unify fileSystemRepresentation and filenameFromString</short_desc>
          <delta_ts>2010-06-12 21:29:26 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>joybro201</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>234512</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-06-04 21:57:23 -0700</bug_when>
    <thetext>fileSystemRepresentation and filenameFromString do the same thing. Unify them into filenameFromString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234520</commentid>
    <comment_count>1</comment_count>
      <attachid>57960</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-06-04 22:06:39 -0700</bug_when>
    <thetext>Created attachment 57960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234619</commentid>
    <comment_count>2</comment_count>
      <attachid>57960</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-05 09:52:39 -0700</bug_when>
    <thetext>Comment on attachment 57960
Patch

filenameFromString() is poorly named and unused/unimplemented on many platforms. It doesn&apos;t even return a file name.

I suggest removing this function instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234707</commentid>
    <comment_count>3</comment_count>
      <attachid>57989</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-06-06 19:38:03 -0700</bug_when>
    <thetext>Created attachment 57989
Revised patch

Okay. Remove filenameFromString instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234708</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-06 19:50:28 -0700</bug_when>
    <thetext>Attachment 57989 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3124176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234712</commentid>
    <comment_count>5</comment_count>
      <attachid>57991</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-06-06 20:04:12 -0700</bug_when>
    <thetext>Created attachment 57991
Revised patch (GTK build fix)

GTK build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234901</commentid>
    <comment_count>6</comment_count>
      <attachid>57991</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-07 10:00:34 -0700</bug_when>
    <thetext>Comment on attachment 57991
Revised patch (GTK build fix)

Looks good to me as far as most ports are concerned, but I don&apos;t understand what Gtk/Efl were doing here. Maybe someone working on Gtk should take a look, too.

-    char* filename = g_uri_unescape_string(string.utf8().data(), 0);
+    char* filename = g_uri_unescape_string(path.utf8().data(), 0);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235082</commentid>
    <comment_count>7</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-06-07 18:43:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 57991 [details])
&gt; Looks good to me as far as most ports are concerned, but I don&apos;t understand what Gtk/Efl were doing here. Maybe someone working on Gtk should take a look, too.
&gt; 
&gt; -    char* filename = g_uri_unescape_string(string.utf8().data(), 0);
&gt; +    char* filename = g_uri_unescape_string(path.utf8().data(), 0);

We can see the reason from the following ChangeLog.

2008-10-15  Marco Barisione  &lt;marco.barisione@collabora.co.uk&gt;

        Reviewed by Holger Freyther.

        http://bugs.webkit.org/show_bug.cgi?id=20664
        [GTK] File names are not always encodable in UTF-8

        On Linux file names are just raw data and cannot always be directly
        encoded in UTF-8 or in any other encodings, so we escape them before
        storing the file name in a String and unescape them before passing
        them to native functions handling files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237472</commentid>
    <comment_count>8</comment_count>
      <attachid>57991</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-12 21:29:17 -0700</bug_when>
    <thetext>Comment on attachment 57991
Revised patch (GTK build fix)

Clearing flags on attachment: 57991

Committed r61077: &lt;http://trac.webkit.org/changeset/61077&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237473</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-12 21:29:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57960</attachid>
            <date>2010-06-04 22:06:39 -0700</date>
            <delta_ts>2010-06-06 19:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>filenameFromString.patch</filename>
            <type>text/plain</type>
            <size>9039</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDczMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDYtMDQgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVbmlmeSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24gYW5kIGZpbGVuYW1lRnJvbVN0cmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMDEKKwor
ICAgICAgICBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24gYW5kIGZpbGVuYW1lRnJvbVN0cmluZyBk
byB0aGUgc2FtZSB0aGluZy4gVW5pZnkKKyAgICAgICAgdGhlbSBpbnRvIGZpbGVuYW1lRnJvbVN0
cmluZy4KKworICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jZi9GaWxlU3lzdGVtQ0Yu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGcm9tU3RyaW5nKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3Uv
RmlsZVN5c3RlbUhhaWt1LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVt
UE9TSVguY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpkZWxldGVGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5GaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZp
bGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpk
aXJlY3RvcnlOYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbmNlLmNwcDoKKwogMjAxMC0w
Ni0wNCAgQW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAko
cmV2aXNpb24gNjA3MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYg
IVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKENGKQogQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgcmV0dXJuIHN0cmluZy51dGY4KCk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAkocmV2aXNpb24gNjA3MjgpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL0ZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDggKzE0Niw2IEBAIFN0cmlu
ZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYpOwogCiBWZWN0b3I8U3RyaW5nPiBsaXN0RGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIgPSBTdHJpbmco
KSk7CiAKLVdURjo6Q1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5n
Jik7Ci0KIGlubGluZSBib29sIGlzSGFuZGxlVmFsaWQoY29uc3QgUGxhdGZvcm1GaWxlSGFuZGxl
JiBoYW5kbGUpIHsgcmV0dXJuIGhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOyB9
CiAKIC8vIFByZWZpeCBpcyB3aGF0IHRoZSBmaWxlbmFtZSBzaG91bGQgYmUgcHJlZml4ZWQgd2l0
aCwgbm90IHRoZSBmdWxsIHBhdGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2NmL0ZpbGVTeXN0
ZW1DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jZi9GaWxlU3lzdGVtQ0Yu
Y3BwCShyZXZpc2lvbiA2MDcyOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2YvRmlsZVN5c3RlbUNG
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgcGF0
aCkKK0NTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNmU3RyaW5nKEFkb3B0Q0YsIHBhdGguY3JlYXRlQ0ZT
dHJpbmcoKSk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCShy
ZXZpc2lvbiA2MDcyOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMSArNTEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUNTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgcGF0aCkK
LXsKLSAgICByZXR1cm4gcGF0aC51dGY4KCk7Ci19Ci0KIENTdHJpbmcgZmlsZW5hbWVGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogLy8gV0FSTklORzogdGhpcyBpcyBqdXN0IHVz
ZWQgYnkgcGxhdGZvcm0vbmV0d29yay9zb3VwLCB0aHVzIG11c3QgYmUgR0xJQiEhIQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9GaWxlU3lzdGVtSGFpa3UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvRmlsZVN5c3RlbUhhaWt1LmNwcAkocmV2aXNpb24gNjA3
MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0ZpbGVTeXN0ZW1IYWlrdS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDExICs0Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ1N0
cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0g
ICAgcmV0dXJuIHN0cmluZy51dGY4KCk7Ci19Ci0KIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgp
CiB7CiAgICAgQlBhdGggcGF0aDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVT
eXN0ZW1QT1NJWC5jcHAJKHJldmlzaW9uIDYwNzI4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9wb3Np
eC9GaWxlU3lzdGVtUE9TSVguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwzMyArNDUsMzMgQEAg
Ym9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICBpZiAocGF0aC5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBDU3RyaW5nIGNwYXRoID0gZmlsZW5hbWVGcm9t
U3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKCFmc1JlcC5kYXRhKCkgfHwgZnNSZXAuZGF0YSgpWzBd
ID09ICdcMCcpCisgICAgaWYgKCFjcGF0aC5kYXRhKCkgfHwgY3BhdGguZGF0YSgpWzBdID09ICdc
MCcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0cnVjdCBzdGF0IGZpbGVJbmZvOwog
CiAgICAgLy8gc3RhdCguLi4pIHJldHVybnMgMCBvbiBzdWNjZXNzZnVsIHN0YXQnaW5nIG9mIHRo
ZSBmaWxlLCBhbmQgbm9uLXplcm8gaW4gYW55IGNhc2Ugd2hlcmUgdGhlIGZpbGUgZG9lc24ndCBl
eGlzdCBvciBjYW5ub3QgYmUgYWNjZXNzZWQKLSAgICByZXR1cm4gIXN0YXQoZnNSZXAuZGF0YSgp
LCAmZmlsZUluZm8pOworICAgIHJldHVybiAhc3RhdChjcGF0aC5kYXRhKCksICZmaWxlSW5mbyk7
CiB9CiAKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgQ1N0cmlu
ZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBDU3RyaW5nIGNw
YXRoID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKCFmc1JlcC5kYXRhKCkg
fHwgZnNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgaWYgKCFjcGF0aC5kYXRhKCkgfHwgY3Bh
dGguZGF0YSgpWzBdID09ICdcMCcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIHVu
bGluayguLi4pIHJldHVybnMgMCBvbiBzdWNjZXNzZnVsIGRlbGV0aW9uIG9mIHRoZSBwYXRoIGFu
ZCBub24temVybyBpbiBhbnkgb3RoZXIgY2FzZSAoaW5jbHVkaW5nIGludmFsaWQgcGVybWlzc2lv
bnMgb3Igbm9uLWV4aXN0ZW50IGZpbGUpCi0gICAgcmV0dXJuICF1bmxpbmsoZnNSZXAuZGF0YSgp
KTsKKyAgICByZXR1cm4gIXVubGluayhjcGF0aC5kYXRhKCkpOwogfQogCiBQbGF0Zm9ybUZpbGVI
YW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKIHsK
LSAgICBDU3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAg
IENTdHJpbmcgY3BhdGggPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CiAKLSAgICBpZiAoZnNS
ZXAuaXNOdWxsKCkpCisgICAgaWYgKGNwYXRoLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gaW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKIAogICAgIGludCBwbGF0Zm9ybUZsYWcgPSAwOwpAQCAt
NzksNyArNzksNyBAQCBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nCiAg
ICAgICAgIHBsYXRmb3JtRmxhZyB8PSBPX1JET05MWTsKICAgICBlbHNlIGlmIChtb2RlID09IE9w
ZW5Gb3JXcml0ZSkKICAgICAgICAgcGxhdGZvcm1GbGFnIHw9IChPX1dST05MWSB8IE9fQ1JFQVQg
fCBPX1RSVU5DKTsKLSAgICByZXR1cm4gb3Blbihmc1JlcC5kYXRhKCksIHBsYXRmb3JtRmxhZywg
MDY2Nik7CisgICAgcmV0dXJuIG9wZW4oY3BhdGguZGF0YSgpLCBwbGF0Zm9ybUZsYWcsIDA2NjYp
OwogfQogCiB2b2lkIGNsb3NlRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUmIGhhbmRsZSkKQEAgLTEz
NywyNSArMTM3LDI1IEBAIGludCByZWFkRnJvbUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmQK
IAogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAg
Q1N0cmluZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBDU3Ry
aW5nIGNwYXRoID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKCFmc1JlcC5k
YXRhKCkgfHwgZnNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgaWYgKCFjcGF0aC5kYXRhKCkg
fHwgY3BhdGguZGF0YSgpWzBdID09ICdcMCcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIHJtZGlyKC4uLikgcmV0dXJucyAwIG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24gb2YgdGhlIHBh
dGggYW5kIG5vbi16ZXJvIGluIGFueSBvdGhlciBjYXNlIChpbmNsdWRpbmcgaW52YWxpZCBwZXJt
aXNzaW9ucyBvciBub24tZXhpc3RlbnQgZmlsZSkKLSAgICByZXR1cm4gIXJtZGlyKGZzUmVwLmRh
dGEoKSk7CisgICAgcmV0dXJuICFybWRpcihjcGF0aC5kYXRhKCkpOwogfQogCiBib29sIGdldEZp
bGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHQpCiB7Ci0gICAgQ1N0
cmluZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBDU3RyaW5n
IGNwYXRoID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKCFmc1JlcC5kYXRh
KCkgfHwgZnNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgaWYgKCFjcGF0aC5kYXRhKCkgfHwg
Y3BhdGguZGF0YSgpWzBdID09ICdcMCcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0
cnVjdCBzdGF0IGZpbGVJbmZvOwogCi0gICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUlu
Zm8pKQorICAgIGlmIChzdGF0KGNwYXRoLmRhdGEoKSwgJmZpbGVJbmZvKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgcmVzdWx0ID0gZmlsZUluZm8uc3Rfc2l6ZTsKQEAgLTE2NCwxNCAr
MTY0LDE0IEBAIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb24KIAogYm9v
bCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgcmVz
dWx0KQogewotICAgIENTdHJpbmcgZnNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0
aCk7CisgICAgQ1N0cmluZyBjcGF0aCA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKIAotICAg
IGlmICghZnNSZXAuZGF0YSgpIHx8IGZzUmVwLmRhdGEoKVswXSA9PSAnXDAnKQorICAgIGlmICgh
Y3BhdGguZGF0YSgpIHx8IGNwYXRoLmRhdGEoKVswXSA9PSAnXDAnKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBzdHJ1Y3Qgc3RhdCBmaWxlSW5mbzsKIAotICAgIGlmIChzdGF0KGZzUmVw
LmRhdGEoKSwgJmZpbGVJbmZvKSkKKyAgICBpZiAoc3RhdChjcGF0aC5kYXRhKCksICZmaWxlSW5m
bykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJlc3VsdCA9IGZpbGVJbmZvLnN0X210
aW1lOwpAQCAtMTg4LDcgKzE4OCw3IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
Y29uc3QgU3QKIAogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQog
ewotICAgIENTdHJpbmcgZnVsbFBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7
CisgICAgQ1N0cmluZyBmdWxsUGF0aCA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKICAgICBp
ZiAoIWFjY2VzcyhmdWxsUGF0aC5kYXRhKCksIEZfT0spKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IApAQCAtMjE5LDEyICsyMTksMTIgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJp
bmcmIHBhdAogCiBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0g
ICAgQ1N0cmluZyBmc1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKKyAgICBD
U3RyaW5nIGNwYXRoID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKCFmc1Jl
cC5kYXRhKCkgfHwgZnNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgaWYgKCFjcGF0aC5kYXRh
KCkgfHwgY3BhdGguZGF0YSgpWzBdID09ICdcMCcpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAotICAgIHJldHVybiBkaXJuYW1lKGZzUmVwLm11dGFibGVEYXRhKCkpOworICAgIHJldHVybiBk
aXJuYW1lKGNwYXRoLm11dGFibGVEYXRhKCkpOwogfQogCiAvLyBPSyB0byBub3QgaW1wbGVtZW50
IGxpc3REaXJlY3RvcnkgYXQgdGhlIG1vbWVudCwgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZCBmb3Ig
cGx1Zy1pbnMsIGFuZApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAJ
KHJldmlzaW9uIDYwNzI4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMywxMSArMTAzLDYgQEAgU3RyaW5nIHBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChjb25zdCBTdAogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7
CiB9CiAKLUNTdHJpbmcgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYpCi17
Ci0gICAgcmV0dXJuICIiOwotfQotCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJp
bmcmIHBhdGgpCiB7CiAgICAgU3RyaW5nIGZ1bGxQYXRoID0gcGF0aDsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vd2luY2UvRmlsZVN5c3RlbVdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3dpbmNlL0ZpbGVTeXN0ZW1XaW5jZS5jcHAJKHJldmlzaW9uIDYwNzI4KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9GaWxlU3lzdGVtV2luY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjYsMTEgKzEyNiw2IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29u
c3QgU3QKICAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOwog
fQogCi1DU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmKQotewot
ICAgIHJldHVybiAiIjsKLX0KLQogYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5n
JiBwYXRoKQogewogICAgIGludCBsYXN0RGl2UG9zID0gc3RkOjptYXgocGF0aC5yZXZlcnNlRmlu
ZCgnLycpLCBwYXRoLnJldmVyc2VGaW5kKCdcXCcpKTsK
</data>
<flag name="review"
          id="42716"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="42717"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57989</attachid>
            <date>2010-06-06 19:38:03 -0700</date>
            <delta_ts>2010-06-06 20:04:12 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>filenameFromString.patch</filename>
            <type>text/plain</type>
            <size>10825</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDc2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTAtMDYtMDYgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVbmlmeSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24gYW5kIGZpbGVuYW1lRnJvbVN0cmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMDEKKwor
ICAgICAgICBSZW1vdmUgZmlsZW5hbWVGcm9tU3RyaW5nIGFuZCB1c2UgZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uIGluc3RlYWQKKyAgICAgICAgYXMgdGhleSBkbyB0aGUgc2FtZSBqb2IuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9G
aWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVGaWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJD
b3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2hhcmVkQnVmZmVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SHR0cCk6
CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvU2hhcmVkQnVmZmVyUE9TSVguY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUpOgorCiAy
MDEwLTA2LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKFF0IGJ1aWxkIGZpeCBwdCAyKS4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcAkocmV2aXNpb24gNjA3NjYpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQotQ1N0cmluZyBmaWxlbmFtZUZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgcmV0dXJuIHN0cmluZy51dGY4KCk7
Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmgJKHJldmlzaW9uIDYwNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3Miw4ICsxNzIsNiBAQCBTdHJpbmcgcm9hbWluZ1VzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvCiBib29sIHNhZmVDcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYsIENG
RGF0YVJlZik7CiAjZW5kaWYKIAotQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJik7Ci0KICNpZiBQTEFURk9STShHVEspCiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25z
dCBjaGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAJKHJldmlzaW9uIDYwNzY2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDExICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ1N0cmluZyBmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiBwYXRo
LnV0ZjgoKTsKLX0KLQotQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCi17CiAvLyBXQVJOSU5HOiB0aGlzIGlzIGp1c3QgdXNlZCBieSBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAsIHRodXMgbXVzdCBiZSBHTElCISEhCiAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gQ1N0
cmluZyBhbmQgdXNlIGl0IGluc3RlYWQgaW4gYm90aCwgYmVpbmcgbW9yZSBzdGFuZGFyZAogI2lm
IFBMQVRGT1JNKFdJTl9PUykKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVDaG9vc2Vy
R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0
ay5jcHAJKHJldmlzaW9uIDYwNzI4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29z
ZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIFN0cmluZyBGaWxlQ2hv
b3Nlcjo6YmFzZW5hbWVGb3JXaWR0aChjb24KICAgICBTdHJpbmcgc3RyaW5nID0gZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKTsKIAogICAgIGlmIChtX2ZpbGVuYW1lcy5zaXplKCkgPT0g
MSkgewotICAgICAgICBDU3RyaW5nIHN5c3RlbUZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5n
KG1fZmlsZW5hbWVzWzBdKTsKKyAgICAgICAgQ1N0cmluZyBzeXN0ZW1GaWxlbmFtZSA9IGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihtX2ZpbGVuYW1lc1swXSk7CiAgICAgICAgIGdjaGFyKiBzeXN0
ZW1CYXNlbmFtZSA9IGdfcGF0aF9nZXRfYmFzZW5hbWUoc3lzdGVtRmlsZW5hbWUuZGF0YSgpKTsK
ICAgICAgICAgc3RyaW5nQnlBZG9wdGluZ0ZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzeXN0ZW1C
YXNlbmFtZSwgc3RyaW5nKTsKICAgICB9IGVsc2UgaWYgKG1fZmlsZW5hbWVzLnNpemUoKSA+IDEp
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAkocmV2aXNpb24gNjA3
MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTIsNyArNTIsNyBAQCBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFy
KiBmaWxlCiAjZW5kaWYKIH0KIAotQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCitDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJp
bmcmIHBhdGgpCiB7CiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4gc3RyaW5nLnV0ZjgoKTsK
QEAgLTcwLDcgKzcwLDcgQEAgU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcm
IAogI2lmIE9TKFdJTkRPV1MpCiAgICAgcmV0dXJuIHN0cmluZzsKICNlbHNlCi0gICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhzdHJpbmcpOworICAgIENTdHJpbmcgZmls
ZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RyaW5nKTsKICAgICBnY2hhciogZGlz
cGxheSA9IGdfZmlsZW5hbWVfdG9fdXRmOChmaWxlbmFtZS5kYXRhKCksIDAsIDAsIDAsIDApOwog
ICAgIGlmICghZGlzcGxheSkKICAgICAgICAgcmV0dXJuIHN0cmluZzsKQEAgLTg1LDcgKzg1LDcg
QEAgU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcmIAogYm9vbCBmaWxlRXhp
c3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAg
IENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKIAogICAgIGlmICgh
ZmlsZW5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJlc3VsdCA9IGdfZmlsZV90ZXN0KGZpbGVuYW1l
LmRhdGEoKSwgR19GSUxFX1RFU1RfRVhJU1RTKTsKQEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBmaWxl
RXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBDU3RyaW5nIGZpbGVuYW1l
ID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CiAKICAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgp
KQogICAgICAgICByZXN1bHQgPSBnX3JlbW92ZShmaWxlbmFtZS5kYXRhKCkpID09IDA7CkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIGJvb2wg
ZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhw
YXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBh
dGgpOwogCiAgICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgcmVzdWx0ID0gZ19y
bWRpcihmaWxlbmFtZS5kYXRhKCkpID09IDA7CkBAIC0xMTcsNyArMTE3LDcgQEAgYm9vbCBkZWxl
dGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIAogCiBib29sIGdldEZpbGVTaXplKGNvbnN0
IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQogewotICAgIENTdHJpbmcgZmls
ZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKICAgICBpZiAoZmlsZW5hbWUuaXNOdWxs
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgZ2V0
RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb24KIAogYm9vbCBnZXRGaWxlTW9kaWZpY2F0
aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgbW9kaWZpZWRUaW1lKQogewotICAg
IENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKICAgICBpZiAoZmls
ZW5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTU2LDcgKzE1Niw3
IEBAIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3QKIAogYm9vbCBtYWtl
QWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIENTdHJpbmcgZmlsZW5h
bWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKICAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTc1LDcgKzE3NSw3IEBAIFN0cmluZyBwYXRo
R2V0RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXQKICAgICBpZiAocGF0aE5hbWUuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gcGF0aE5hbWU7CiAKLSAgICBDU3RyaW5nIHRtcEZpbGVuYW1lID0g
ZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGhOYW1lKTsKKyAgICBDU3RyaW5nIHRtcEZpbGVuYW1lID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGhOYW1lKTsKICAgICBjaGFyKiBiYXNlTmFtZSA9
IGdfcGF0aF9nZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUuZGF0YSgpKTsKICAgICBTdHJpbmcgZmls
ZU5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KGJhc2VOYW1lKTsKICAgICBnX2ZyZWUoYmFzZU5hbWUp
OwpAQCAtMTg2LDcgKzE4Niw3IEBAIFN0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29uc3QgU3RyaW5n
JiBwYXQKIFN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAv
KiBObyBudWxsIGNoZWNraW5nIG5lZWRlZCAqLwotICAgIEdPd25QdHI8Y2hhcj4gdG1wRmlsZW5h
bWUoY29uc3RfY2FzdDxjaGFyKj4oZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpLmRhdGEoKSkpOwor
ICAgIEdPd25QdHI8Y2hhcj4gdG1wRmlsZW5hbWUoY29uc3RfY2FzdDxjaGFyKj4oZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSkpOwogICAgIEdPd25QdHI8Y2hhcj4gZGlybmFt
ZShnX3BhdGhfZ2V0X2Rpcm5hbWUodG1wRmlsZW5hbWUuZ2V0KCkpKTsKICAgICByZXR1cm4gU3Ry
aW5nOjpmcm9tVVRGOChkaXJuYW1lLmdldCgpKTsKIH0KQEAgLTE5NSw3ICsxOTUsNyBAQCBWZWN0
b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluCiB7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gZW50cmllczsKIAotICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmco
cGF0aCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihw
YXRoKTsKICAgICBHRGlyKiBkaXIgPSBnX2Rpcl9vcGVuKGZpbGVuYW1lLmRhdGEoKSwgMCwgMCk7
CiAgICAgaWYgKCFkaXIpCiAgICAgICAgIHJldHVybiBlbnRyaWVzOwpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwCShyZXZpc2lvbiA2MDcyOCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDcgKzMyLDcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6YwogICAg
IGlmIChmaWxlUGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhmaWxlUGF0aCk7CisgICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihmaWxlUGF0aCk7CiAgICAgZ2NoYXIq
IGNvbnRlbnRzOwogICAgIGdzaXplIHNpemU7CiAgICAgR0Vycm9yKiBlcnJvciA9IDA7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAJKHJldmlzaW9uIDYwNzI4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMzLDcgKzUzMyw3
IEBAIHN0YXRpYyBib29sIHN0YXJ0SHR0cChSZXNvdXJjZUhhbmRsZSogaGEKICAgICAgICAgICAg
ICAgICAgICAgICogbGlic291cCdzIHNpbXBsZS1odHRwZCB0ZXN0CiAgICAgICAgICAgICAgICAg
ICAgICAqLwogICAgICAgICAgICAgICAgICAgICBHRXJyb3IqIGVycm9yID0gMDsKLSAgICAgICAg
ICAgICAgICAgICAgQ1N0cmluZyBmaWxlTmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhlbGVtZW50
Lm1fZmlsZW5hbWUpOworICAgICAgICAgICAgICAgICAgICBDU3RyaW5nIGZpbGVOYW1lID0gZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKGVsZW1lbnQubV9maWxlbmFtZSk7CiAgICAgICAgICAgICAg
ICAgICAgIEdNYXBwZWRGaWxlKiBmaWxlTWFwcGluZyA9IGdfbWFwcGVkX2ZpbGVfbmV3KGZpbGVO
YW1lLmRhdGEoKSwgZmFsc2UsICZlcnJvcik7CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1NoYXJlZEJ1ZmZlclBPU0lYLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1NoYXJlZEJ1ZmZlclBPU0lY
LmNwcAkocmV2aXNpb24gNjA3MjgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1NoYXJlZEJ1
ZmZlclBPU0lYLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjCiAgICAgaWYgKGZpbGVQYXRoLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVG
cm9tU3RyaW5nKGZpbGVQYXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGZpbGVQYXRoKTsKICAgICBpbnQgZmQgPSBvcGVuKGZpbGVuYW1lLmRhdGEo
KSwgT19SRE9OTFkpOwogICAgIGlmIChmZCA9PSAtMSkKICAgICAgICAgcmV0dXJuIDA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57991</attachid>
            <date>2010-06-06 20:04:12 -0700</date>
            <delta_ts>2010-06-12 21:29:16 -0700</delta_ts>
            <desc>Revised patch (GTK build fix)</desc>
            <filename>filenameFromString.patch</filename>
            <type>text/plain</type>
            <size>11355</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDc2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTAtMDYtMDYgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVbmlmeSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24gYW5kIGZpbGVuYW1lRnJvbVN0cmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyMDEKKwor
ICAgICAgICBSZW1vdmUgZmlsZW5hbWVGcm9tU3RyaW5nIGFuZCB1c2UgZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uIGluc3RlYWQKKyAgICAgICAgYXMgdGhleSBkbyB0aGUgc2FtZSBqb2IuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9G
aWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVGaWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJD
b3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2hhcmVkQnVmZmVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SHR0cCk6
CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvU2hhcmVkQnVmZmVyUE9TSVguY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUpOgorCiAy
MDEwLTA2LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKFF0IGJ1aWxkIGZpeCBwdCAyKS4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcAkocmV2aXNpb24gNjA3NjYpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQotQ1N0cmluZyBmaWxlbmFtZUZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgcmV0dXJuIHN0cmluZy51dGY4KCk7
Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmgJKHJldmlzaW9uIDYwNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3Miw4ICsxNzIsNiBAQCBTdHJpbmcgcm9hbWluZ1VzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvCiBib29sIHNhZmVDcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYsIENG
RGF0YVJlZik7CiAjZW5kaWYKIAotQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3QgU3Ry
aW5nJik7Ci0KICNpZiBQTEFURk9STShHVEspCiBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25z
dCBjaGFyKik7CiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYpOwpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAJKHJldmlzaW9uIDYwNzY2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDE3ICs1MywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENTdHJpbmcgZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gcGF0
aC51dGY4KCk7Ci19Ci0KLUNTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQotewogLy8gV0FSTklORzogdGhpcyBpcyBqdXN0IHVzZWQgYnkgcGxhdGZvcm0vbmV0
d29yay9zb3VwLCB0aHVzIG11c3QgYmUgR0xJQiEhIQogLy8gVE9ETzogbW92ZSB0aGlzIHRvIENT
dHJpbmcgYW5kIHVzZSBpdCBpbnN0ZWFkIGluIGJvdGgsIGJlaW5nIG1vcmUgc3RhbmRhcmQKICNp
ZiBQTEFURk9STShXSU5fT1MpCi0gICAgcmV0dXJuIHN0cmluZy51dGY4KCk7CisgICAgcmV0dXJu
IHBhdGgudXRmOCgpOwogI2Vsc2UKLSAgICBjaGFyKiBmaWxlbmFtZSA9IGdfdXJpX3VuZXNjYXBl
X3N0cmluZyhzdHJpbmcudXRmOCgpLmRhdGEoKSwgMCk7CisgICAgY2hhciogZmlsZW5hbWUgPSBn
X3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKTsKICAgICBDU3RyaW5n
IGNmaWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZ19mcmVlKGZpbGVuYW1lKTsKICAgICByZXR1cm4g
Y2ZpbGVuYW1lOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVDaG9vc2VyR3RrLmNwcAko
cmV2aXNpb24gNjA3NjYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgU3RyaW5nIEZpbGVDaG9vc2VyOjpi
YXNlbmFtZUZvcldpZHRoKGNvbgogICAgIFN0cmluZyBzdHJpbmcgPSBmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCgpOwogCiAgICAgaWYgKG1fZmlsZW5hbWVzLnNpemUoKSA9PSAxKSB7Ci0g
ICAgICAgIENTdHJpbmcgc3lzdGVtRmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcobV9maWxl
bmFtZXNbMF0pOworICAgICAgICBDU3RyaW5nIHN5c3RlbUZpbGVuYW1lID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKG1fZmlsZW5hbWVzWzBdKTsKICAgICAgICAgZ2NoYXIqIHN5c3RlbUJhc2Vu
YW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZShzeXN0ZW1GaWxlbmFtZS5kYXRhKCkpOwogICAgICAg
ICBzdHJpbmdCeUFkb3B0aW5nRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5c3RlbUJhc2VuYW1l
LCBzdHJpbmcpOwogICAgIH0gZWxzZSBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID4gMSkKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCShyZXZpc2lvbiA2MDc2NikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MiwxMiArNTIsMTIgQEAgU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmcoY29uc3QgY2hhciogZmls
ZQogI2VuZGlmCiB9CiAKLUNTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorQ1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBw
YXRoKQogewogI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHN0cmluZy51dGY4KCk7CisgICAg
cmV0dXJuIHBhdGgudXRmOCgpOwogI2Vsc2UKLSAgICBjaGFyKiBmaWxlbmFtZSA9IGdfdXJpX3Vu
ZXNjYXBlX3N0cmluZyhzdHJpbmcudXRmOCgpLmRhdGEoKSwgMCk7CisgICAgY2hhciogZmlsZW5h
bWUgPSBnX3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKTsKICAgICBD
U3RyaW5nIGNmaWxlbmFtZShmaWxlbmFtZSk7CiAgICAgZ19mcmVlKGZpbGVuYW1lKTsKICAgICBy
ZXR1cm4gY2ZpbGVuYW1lOwpAQCAtNzAsNyArNzAsNyBAQCBTdHJpbmcgZmlsZW5hbWVGb3JEaXNw
bGF5KGNvbnN0IFN0cmluZyYgCiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4gc3RyaW5nOwog
I2Vsc2UKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHN0cmluZyk7
CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdHJpbmcp
OwogICAgIGdjaGFyKiBkaXNwbGF5ID0gZ19maWxlbmFtZV90b191dGY4KGZpbGVuYW1lLmRhdGEo
KSwgMCwgMCwgMCwgMCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm4gc3RyaW5n
OwpAQCAtODUsNyArODUsNyBAQCBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmlu
ZyYgCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhw
YXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBh
dGgpOwogCiAgICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgcmVzdWx0ID0gZ19m
aWxlX3Rlc3QoZmlsZW5hbWUuZGF0YSgpLCBHX0ZJTEVfVEVTVF9FWElTVFMpOwpAQCAtOTYsNyAr
OTYsNyBAQCBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBkZWxldGVG
aWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAg
IENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmlu
ZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKIAogICAgIGlmICgh
ZmlsZW5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJlc3VsdCA9IGdfcmVtb3ZlKGZpbGVuYW1lLmRh
dGEoKSkgPT0gMDsKQEAgLTEwNyw3ICsxMDcsNyBAQCBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3Ry
aW5nJiBwYXRoKQogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgp
CiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZW5hbWVGcm9tU3RyaW5nKHBhdGgpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24ocGF0aCk7CiAKICAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgpKQogICAg
ICAgICByZXN1bHQgPSBnX3JtZGlyKGZpbGVuYW1lLmRhdGEoKSkgPT0gMDsKQEAgLTExNyw3ICsx
MTcsNyBAQCBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgCiAKIGJvb2wg
Z2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdFNpemUpCiB7
Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAgICBD
U3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwogICAgIGlm
IChmaWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMzIsNyAr
MTMyLDcgQEAgYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbgogCiBib29s
IGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2Rp
ZmllZFRpbWUpCiB7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhw
YXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBh
dGgpOwogICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CkBAIC0xNTYsNyArMTU2LDcgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25z
dCBTdAogCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0g
ICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAgICBDU3Ry
aW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwogICAgIGlmIChm
aWxlbmFtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNzUsNyArMTc1
LDcgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdAogICAgIGlmIChw
YXRoTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBwYXRoTmFtZTsKIAotICAgIENTdHJp
bmcgdG1wRmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aE5hbWUpOworICAgIENTdHJp
bmcgdG1wRmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aE5hbWUpOwogICAg
IGNoYXIqIGJhc2VOYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSh0bXBGaWxlbmFtZS5kYXRhKCkp
OwogICAgIFN0cmluZyBmaWxlTmFtZSA9IFN0cmluZzo6ZnJvbVVURjgoYmFzZU5hbWUpOwogICAg
IGdfZnJlZShiYXNlTmFtZSk7CkBAIC0xODYsNyArMTg2LDcgQEAgU3RyaW5nIHBhdGhHZXRGaWxl
TmFtZShjb25zdCBTdHJpbmcmIHBhdAogU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5n
JiBwYXRoKQogewogICAgIC8qIE5vIG51bGwgY2hlY2tpbmcgbmVlZGVkICovCi0gICAgR093blB0
cjxjaGFyPiB0bXBGaWxlbmFtZShjb25zdF9jYXN0PGNoYXIqPihmaWxlbmFtZUZyb21TdHJpbmco
cGF0aCkuZGF0YSgpKSk7CisgICAgR093blB0cjxjaGFyPiB0bXBGaWxlbmFtZShjb25zdF9jYXN0
PGNoYXIqPihmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0YSgpKSk7CiAgICAgR093
blB0cjxjaGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFtZSh0bXBGaWxlbmFtZS5nZXQoKSkp
OwogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpcm5hbWUuZ2V0KCkpOwogfQpAQCAtMTk1
LDcgKzE5NSw3IEBAIFZlY3RvcjxTdHJpbmc+IGxpc3REaXJlY3RvcnkoY29uc3QgU3RyaW4KIHsK
ICAgICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzOwogCi0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZp
bGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHBhdGgpOwogICAgIEdEaXIqIGRpciA9IGdfZGlyX29wZW4oZmlsZW5h
bWUuZGF0YSgpLCAwLCAwKTsKICAgICBpZiAoIWRpcikKICAgICAgICAgcmV0dXJuIGVudHJpZXM7
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAJKHJldmlzaW9u
IDYwNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hh
cmVkQnVmZmVyOjpjCiAgICAgaWYgKGZpbGVQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKGZpbGVQYXRo
KTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGZpbGVQ
YXRoKTsKICAgICBnY2hhciogY29udGVudHM7CiAgICAgZ3NpemUgc2l6ZTsKICAgICBHRXJyb3Iq
IGVycm9yID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gNjA3NjYpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MzMsNyArNTMzLDcgQEAgc3RhdGljIGJvb2wgc3RhcnRIdHRwKFJlc291cmNlSGFuZGxl
KiBoYQogICAgICAgICAgICAgICAgICAgICAgKiBsaWJzb3VwJ3Mgc2ltcGxlLWh0dHBkIHRlc3QK
ICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgIEdFcnJvciogZXJy
b3IgPSAwOwotICAgICAgICAgICAgICAgICAgICBDU3RyaW5nIGZpbGVOYW1lID0gZmlsZW5hbWVG
cm9tU3RyaW5nKGVsZW1lbnQubV9maWxlbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIENTdHJp
bmcgZmlsZU5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZWxlbWVudC5tX2ZpbGVuYW1l
KTsKICAgICAgICAgICAgICAgICAgICAgR01hcHBlZEZpbGUqIGZpbGVNYXBwaW5nID0gZ19tYXBw
ZWRfZmlsZV9uZXcoZmlsZU5hbWUuZGF0YSgpLCBmYWxzZSwgJmVycm9yKTsKIAogICAgICAgICAg
ICAgICAgICAgICBpZiAoZXJyb3IpIHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcG9zaXgvU2hh
cmVkQnVmZmVyUE9TSVguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcG9zaXgv
U2hhcmVkQnVmZmVyUE9TSVguY3BwCShyZXZpc2lvbiA2MDc2NikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vcG9zaXgvU2hhcmVkQnVmZmVyUE9TSVguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0
MCw3IEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmMKICAgICBpZiAo
ZmlsZVBhdGguaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIENTdHJpbmcgZmls
ZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcoZmlsZVBhdGgpOworICAgIENTdHJpbmcgZmlsZW5h
bWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZmlsZVBhdGgpOwogICAgIGludCBmZCA9IG9w
ZW4oZmlsZW5hbWUuZGF0YSgpLCBPX1JET05MWSk7CiAgICAgaWYgKGZkID09IC0xKQogICAgICAg
ICByZXR1cm4gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>