<?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>75246</bug_id>
          
          <creation_ts>2011-12-27 04:39:55 -0800</creation_ts>
          <short_desc>[WK2][EFL] creating dummy functions for Download class on Efl port.</short_desc>
          <delta_ts>2012-01-05 00:51:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Keunsoon Lee">keunsoon.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ibchang</cc>
    
    <cc>japhet</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527330</commentid>
    <comment_count>0</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-12-27 04:39:55 -0800</bug_when>
    <thetext>Added download module for Efl port on WebKit2/WebProcess/Downloads/efl.

Codes will be uploaded soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527603</commentid>
    <comment_count>1</comment_count>
      <attachid>120648</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-12-28 03:33:59 -0800</bug_when>
    <thetext>Created attachment 120648
initial implementation for download module specific to Efl port

This is initial version.
I&apos;ll try to make a test code if necessary.

EflDownloader is not dependent on Efl or soup port indeed, but uses only common classes on WebCore and WebKit2.
Efl port is using soup port for Network/HTTP stack, though.

PS, there is a known issue; EflDownloader::start() cannot obtain UserAgent when it is called from WKContextDownloadURLRequest() because it does not pass WebPage.
I&apos;ll create another bug thread for it.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527604</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-28 03:37:14 -0800</bug_when>
    <thetext>Attachment 120648 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.h:34:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.h:85:  The parameter name &quot;download&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527609</commentid>
    <comment_count>3</comment_count>
      <attachid>120650</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-12-28 04:02:47 -0800</bug_when>
    <thetext>Created attachment 120650
fix style error

I leaved the style errors because it is a kind of style from another files on Source/WebKit2/WebProcess/Downloads.
But, I fixed them according to check-webkit-style script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527622</commentid>
    <comment_count>4</comment_count>
      <attachid>120650</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-28 05:20:02 -0800</bug_when>
    <thetext>Comment on attachment 120650
fix style error

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

I think this patch is too huge to review. I think you need to make a patch which has dummy functions. Then, you submit concrete patches step by step. In addition, this patch doesn&apos;t include any test cases. Informal r- on my side.

&gt; Source/WebKit2/ChangeLog:6
&gt; +        newly implemented download module for Efl port

This description is not sufficient. I think you need to add more detail description ?

&gt; Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.cpp:44
&gt; +    , m_bufferCapacity(64*1024) // FIXME: find proper value or give a chance to adjust it for client

Do place spaces around binary and ternary operators.

&gt; Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.cpp:66
&gt; +            userAgent = &quot;Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/534.16+ (KHTML, like Gecko) Version/5.0 Safari/534.16+&quot;;

Why do you add armv7 as default ? In WebKit1, we make user agent string according to platform information and os version information. See ewk_settings.cpp files.

&gt; Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.cpp:71
&gt; +    NetworkingContext* context = m_initiatingPage?m_initiatingPage-&gt;mainWebFrame()-&gt;coreFrame()-&gt;loader()-&gt;networkingContext():0;

ditto. Add space between ? : and so on.

&gt; Source/WebKit2/WebProcess/Downloads/efl/EflDownloader.cpp:109
&gt; +            || !destination.contains(PlatformFilePathSeparator)) {

Coding style violation.

 if (destination.isEmpty()
     || !destination.contains(PlatformFilePathSeparator)) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528699</commentid>
    <comment_count>5</comment_count>
      <attachid>120920</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-01-03 02:18:07 -0800</bug_when>
    <thetext>Created attachment 120920
dummy functions for Download class for Efl port

This patch has only dummy functions for Download class because previous patch was too big to review.
I&apos;ll upload working patches in another bug threads.

Thank you in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528700</commentid>
    <comment_count>6</comment_count>
      <attachid>120920</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-03 02:21:18 -0800</bug_when>
    <thetext>Comment on attachment 120920
dummy functions for Download class for Efl port

LGTM. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528701</commentid>
    <comment_count>7</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-03 02:23:30 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 120920 [details])
&gt; LGTM. :-)

Would you change this Bug title according to your new patch ? If you change bug title, you have to change it in ChangeLog as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528707</commentid>
    <comment_count>8</comment_count>
      <attachid>120924</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-01-03 02:59:21 -0800</bug_when>
    <thetext>Created attachment 120924
modified ChangeLog according to changed bug title

Modified this bug&apos;s title and depending ChangeLog to emphasize dummy functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528712</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-03 03:25:38 -0800</bug_when>
    <thetext>LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530004</commentid>
    <comment_count>10</comment_count>
      <attachid>120924</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-04 22:12:37 -0800</bug_when>
    <thetext>Comment on attachment 120924
modified ChangeLog according to changed bug title

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530068</commentid>
    <comment_count>11</comment_count>
      <attachid>120924</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 00:51:17 -0800</bug_when>
    <thetext>Comment on attachment 120924
modified ChangeLog according to changed bug title

Clearing flags on attachment: 120924

Committed r104122: &lt;http://trac.webkit.org/changeset/104122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530069</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 00:51:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120648</attachid>
            <date>2011-12-28 03:33:59 -0800</date>
            <delta_ts>2011-12-28 04:02:47 -0800</delta_ts>
            <desc>initial implementation for download module specific to Efl port</desc>
            <filename>bug75246.patch</filename>
            <type>text/plain</type>
            <size>24152</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDExLTEyLTI4ICBLZXVuc29v
biBMZWUgIDxrZXVuc29vbi5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl1bRUZMXSBp
bXBsZW1lbnRlZCBEb3dubG9hZCBtb2R1bGUgZm9yIEVmbCBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0NgorCisgICAgICAgIG5ld2x5IGlt
cGxlbWVudGVkIGRvd25sb2FkIG1vZHVsZSBmb3IgRWZsIHBvcnQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9lZmwvRG93bmxvYWRFZmwuY3BwOiBBZGRlZC4gaW1wbGVtZW50ZWQgc2V2ZXJhbCBwbGF0Zm9y
bSBzcGVjaWZpYyBmdW5jdGlvbnMgb24gRG93bmxvYWQgY2xhc3MKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnN0YXJ0KTogY2FsbCB0byBzYW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25s
b2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZSk6IGNhbGwg
dG8gc2FtZSBuYW1lZCBmdW5jdGlvbiBvbiBFZmxEb3dubG9hZGVyCisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpjYW5jZWwpOiBjYWxsIHRvIHNhbWUgbmFtZWQgZnVuY3Rpb24gb24gRWZsRG93
bmxvYWRlcgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cGxhdGZvcm1JbnZhbGlkYXRlKTog
Y2FsbCB0byBzYW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKTogY2FsbCB0byBzYW1lIG5hbWVk
IGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnBs
YXRmb3JtRGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVkQ3Jl
ZGVudGlhbCk6IGNhbGwgdG8gc2FtZSBuYW1lZCBmdW5jdGlvbiByZWdpc3RlcmVkIG9uIHJlY2Vp
dmVkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpy
ZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOiBjYWxsIHRvIHNhbWUg
bmFtZWQgZnVuY3Rpb24gcmVnaXN0ZXJlZCBvbiByZWNlaXZlZCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZQorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOiBj
YWxsIHRvIHNhbWUgbmFtZWQgZnVuY3Rpb24gcmVnaXN0ZXJlZCBvbiByZWNlaXZlZCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6dXNlQ3JlZGVudGlh
bCk6IGNhbGwgdG8gc2FtZSBuYW1lZCBmdW5jdGlvbiBvbiBFZmxEb3dubG9hZGVyCisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsKTogY2FsbCB0byBz
YW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWQ6OmNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogY2FsbCB0byBzYW1lIG5hbWVk
IGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9lZmwvRWZsRG93bmxvYWRlci5jcHA6IEFkZGVkLiBkbyBkb3dubG9hZCBhbmQgZmlsZSB3cml0
aW5nLiBkZXJpdmVkIGZyb20gUmVzb3VyY2VIYW5kbGVDbGllbnQKKyAgICAgICAgKFdlYktpdDo6
RWZsRG93bmxvYWRlcjo6Y3JlYXRlKTogCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6
OkVmbERvd25sb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjp+RWZsRG93
bmxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnN0YXJ0KTogc3RhcnQg
dG8gZG93bmxvYWQgd2l0aCByZWNlaXZpbmcgUmVzb3VyY2VSZXF1ZXN0CisgICAgICAgIChXZWJL
aXQ6OkVmbERvd25sb2FkZXI6OnN0YXJ0V2l0aEhhbmRsZSk6IHJlZGlyZWN0IGRhdGEgZmxvdyBm
b3IgcmVjZWl2aW5nIFJlc291cmNlSGFuZGxlIGFuZCBzdGFydCB0byBkb3dubG9hZCB3aXRoIGl0
CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNhbmNlbCk6IGNhY2VsIHRvIGRvd25s
b2FkCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnBsYXRmb3JtSW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZERlY2lkZURlc3RpbmF0aW9uKTog
Y2hlY2sgcmVjZWl2ZWQgZmlsZSBwYXRoIGlzIHZhbGlkIGFuZCBzZW5kIGRlY2lkZWQgZGVzdGlu
YXRpb24gdG8gY2xpZW50CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnNlbmRGYWls
V2l0aEVycm9yKTogY3JlYXRlIFJlc291cmNlRXJyb3Igd2l0aCBwYXNzZWQgZXJyb3IgY29kZSBh
bmQgc2VuZCBpdAorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkZWNpZGVGaWxlUGF0
aCk6IGNyZWF0ZSBzdWdnZXN0ZWQgZmlsZSBuYW1lIGFuZCBzZW5kIGl0IHRvIGNsaWVudAorICAg
ICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiByZWNlaXZp
bmcgUmVzb3VyY2VSZXNwb25zZS4gZGVjaWRlIGZpbGUgcGF0aCB0byBzdG9yZQorICAgICAgICAo
V2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6IHJlY2VpdmluZyBjaHVuayBk
YXRhLiB3cml0ZSB0aGUgY2h1bmsgZGF0YSB0byBmaWxlIGFuZCBzZW5kIGhvdyBtdWNoIGRvd25s
b2FkZWQgdG8gY2xpZW50CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcpOiBub3RpZmllZCBubyBtb3JlIGNodW5rIGRhdGEuIGNsb3NlIG9wZW5lZCBmaWxl
IGFuZCBub3RpZnkgZG93bmxvYWQgaXMgZmluaXNoZWQgdG8gY2xpZW50CisgICAgICAgIChXZWJL
aXQ6OkVmbERvd25sb2FkZXI6OmRpZEZhaWwpOiBub3RpZmllZCBmYWlsLiBjbG9zZSBvcGVuZWQg
ZmlsZSBhbmQgbm90aWZ5IGRvd25sb2FkIGlzIGZhaWxlZCB0byBjbGllbnQKKyAgICAgICAgKFdl
YktpdDo6RWZsRG93bmxvYWRlcjo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOiBjcmVhdGUgYW5kIHJlZ2lzdGVyIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQgdG8g
cmVjZWl2ZWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuIHNlbmQgaXQgdG8gY2xpZW50CisgICAg
ICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYktpdDo6RWZsRG93bmxvYWRlcjo6cmVjZWl2ZWRDYW5jZWxsYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjp1c2VDcmVkZW50aWFsKTogc3Rh
cnQgbmV3IEhUVFAgdHJhbnNhY3Rpb24gd2l0aCByZWNlaXZpbmcgaWQgYW5kIHBhc3N3b3JkCisg
ICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwp
OiBzdGFydCBuZXcgSFRUUCB0cmFuc2FjdGlvbiB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIGluZm9y
bWF0aW9uCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6RWZsRG93bmxvYWRlcjo6b3BlbkRvd25s
b2FkRmlsZSk6IG9wZW4gYSBmaWxlIHRvIHdyaXRlCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25s
b2FkZXI6OndyaXRlVG9Eb3dubG9hZEZpbGUpOiBidWZmZXJpbmcgZGF0YSBhbmQgd3JpdGluZyBp
dCB0byBmaWxlIGlmIHJlYWNoZWQgYnVmZmVyaW5nIHRocmVzaG9sZAorICAgICAgICAoV2ViS2l0
OjpFZmxEb3dubG9hZGVyOjpjbG9zZURvd25sb2FkRmlsZSk6IGNsb3NlIGEgZmlsZQorICAgICAg
ICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9FZmxEb3dubG9hZGVyLmg6IEFkZGVkLgorCiAy
MDExLTEyLTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21h
Y10gU3RvcCB1c2luZyBib290c3RyYXBfbG9va191cDIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCShyZXZpc2lvbiAxMDM3NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOSBAQCBMSVNUKEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9lZmwvUGx1Z2luSW5mb1N0b3JlRWZsLmNw
cAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL2VmbC9QbHVnaW5Qcm9jZXNzUHJveHlFZmwuY3BwCiAK
KyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCisgICAgV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZs
LmNwcAogCkBAIC02Myw2ICs2Niw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9lZmwvIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9l
ZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvZWZsIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbCIKICAgICAke0NhaXJvX0lOQ0xVREVf
RElSU30KQEAgLTExNiw3ICsxMjAsNiBAQCBJRiAoV1RGX1VTRV9TT1VQKQogICAgIExJU1QoQVBQ
RU5EIFdlYktpdDJfTElCUkFSSUVTICR7TElCU09VUDI0X0xJQlJBUklFU30pCiAgICAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcAotICAgICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHAKICAgICApCiAKICAgICBBRERfQ1VTVE9NX1RBUkdFVChmb3J3YXJk
aW5nLWhlYWRlclNvdXAKQEAgLTEzMyw3ICsxMzYsNiBAQCBJRiAoV1RGX1VTRV9DVVJMKQogICAg
IExJU1QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTICR7Q1VSTF9MSUJSQVJJRVN9KQogICAgIExJ
U1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvY3Vy
bC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKLSAgICAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
Y3VybC9Eb3dubG9hZEN1cmwuY3BwCiAgICAgKQogRU5ESUYgKCkKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZpc2lvbiAxMDM3
NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxMCBAQCBPQkpDX0NMQVNTIFdLRG93bmxvYWRBc0Rl
bGVnYXRlOwogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTERvd25sb2FkUHJpdi5oPgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWZsRG93bmxvYWRlci5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBDb3JlSVBDIHsKICAgICBjbGFzcyBEYXRhUmVmZXJlbmNlOwogfQpAQCAt
NjksNiArNzMsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFF0RmlsZURvd25sb2FkZXI7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKEVGTCkKK2NsYXNzIEVmbERvd25sb2FkZXI7CisjZW5kaWYK
KwogY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjxEb3dubG9h
ZD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsKIHB1YmxpYzoKQEAgLTE0
Niw2ICsxNTQsOSBAQCBwcml2YXRlOgogICAgIE93blB0cjxXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNsaWVudD4gbV9kb3dubG9hZENsaWVudDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU+IG1fcmVzb3VyY2VIYW5kbGU7CiAjZW5kaWYKKyNpZiBQTEFURk9STShFRkwpCisgICAg
T3duUHRyPEVmbERvd25sb2FkZXI+IG1fZWZsRG93bmxvYWRlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25s
b2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZQorICog
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJFZmxEb3dubG9hZGVy
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBEb3dubG9hZDo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCit7CisgICAg
bV9lZmxEb3dubG9hZGVyID0gRWZsRG93bmxvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAgIG1fZWZs
RG93bmxvYWRlci0+c3RhcnQoaW5pdGlhdGluZ1dlYlBhZ2UsIG1fcmVxdWVzdCk7Cit9CisKK3Zv
aWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgbV9lZmxEb3dubG9hZGVyID0gRWZsRG93bmxvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAg
IG1fZWZsRG93bmxvYWRlci0+c3RhcnRXaXRoSGFuZGxlKGluaXRpYXRpbmdQYWdlLCBoYW5kbGUs
IHJlc3BvbnNlKTsKK30KKwordm9pZCBEb3dubG9hZDo6Y2FuY2VsKCkKK3sKKyAgICBBU1NFUlQo
bV9lZmxEb3dubG9hZGVyKTsKKyAgICBtX2VmbERvd25sb2FkZXItPmNhbmNlbCgpOworfQorCit2
b2lkIERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworICAgIEFTU0VSVChtX2VmbERv
d25sb2FkZXIpOworICAgIG1fZWZsRG93bmxvYWRlci0+cGxhdGZvcm1JbnZhbGlkYXRlKCk7Cit9
CisKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb24sIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit7CisgICAgQVNTRVJUKG1fZWZsRG93bmxv
YWRlcik7CisgICAgbV9lZmxEb3dubG9hZGVyLT5kaWREZWNpZGVEZXN0aW5hdGlvbihkZXN0aW5h
dGlvbiwgYWxsb3dPdmVyd3JpdGUpOworfQorCit2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURpZEZp
bmlzaCgpCit7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IENy
ZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7CisgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRDcmVkZW50aWFsKGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLCBjcmVkZW50aWFsKTsKK30KKwordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0
VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91
dENyZWRlbnRpYWwoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2Fk
OjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRDYW5jZWxsYXRpb24oYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2FkOjp1c2VDcmVkZW50aWFsKGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY29u
c3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3sKKyAgICBBU1NFUlQobV9lZmxE
b3dubG9hZGVyKTsKKyAgICBtX2VmbERvd25sb2FkZXItPnVzZUNyZWRlbnRpYWwoYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UsIGNyZWRlbnRpYWwpOworfQorCit2b2lkIERvd25sb2FkOjpjb250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBBU1NFUlQobV9lZmxEb3dubG9hZGVy
KTsKKyAgICBtX2VmbERvd25sb2FkZXItPmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2FkOjpjYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgQVNTRVJUKG1fZWZsRG93bmxvYWRlcik7Cisg
ICAgbV9lZmxEb3dubG9hZGVyLT5jYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25s
b2FkRWZsLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZs
L0VmbERvd25sb2FkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFZmxEb3dubG9hZGVyLmgiCisKKyNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2lu
Z0NvbnRleHQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitQYXNzT3duUHRyPEVmbERvd25sb2FkZXI+IEVmbERvd25sb2FkZXI6OmNyZWF0ZShE
b3dubG9hZCogZG93bmxvYWQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFZmxEb3dubG9h
ZGVyKGRvd25sb2FkKSk7Cit9CisKK0VmbERvd25sb2FkZXI6OkVmbERvd25sb2FkZXIoRG93bmxv
YWQqIGRvd25sb2FkKQorICAgIDogbV9kb3dubG9hZChkb3dubG9hZCkKKyAgICAsIG1fcmVjZWl2
ZWREYXRhTGVuZ3RoKDApCisgICAgLCBtX2J1ZmZlckNhcGFjaXR5KDY0KjEwMjQpIC8vIEZJWE1F
OiBmaW5kIHByb3BlciB2YWx1ZSBvciBnaXZlIGEgY2hhbmNlIHRvIGFkanVzdCBpdCBmb3IgY2xp
ZW50CisgICAgLCBtX2ZpbGVIYW5kbGUoaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKK3sKKyAg
ICBBU1NFUlQoZG93bmxvYWQpOworfQorCitFZmxEb3dubG9hZGVyOjp+RWZsRG93bmxvYWRlcigp
Cit7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1Bh
Z2UsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX2luaXRpYXRpbmdQYWdlID0g
aW5pdGlhdGluZ1BhZ2U7CisgICAgbV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdDsK
KworICAgIGlmIChtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpLmlzRW1w
dHkoKSkgeworICAgICAgICBTdHJpbmcgdXNlckFnZW50OworICAgICAgICBpZiAobV9pbml0aWF0
aW5nUGFnZSkKKyAgICAgICAgICAgIHVzZXJBZ2VudCA9IG1faW5pdGlhdGluZ1BhZ2UtPnVzZXJB
Z2VudCgpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgZ2V0IHJlYWwgVXNlciBBZ2VudAor
ICAgICAgICBpZiAodXNlckFnZW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHVzZXJBZ2VudCA9
ICJNb3ppbGxhLzUuMCAoVW5rbm93bjsgTGludXggYXJtdjdsKSBBcHBsZVdlYktpdC81MzQuMTYr
IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLzUzNC4xNisiOworCisgICAg
ICAgIG1faW5pdGlhbFJlc291cmNlUmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHVzZXJBZ2VudCk7
CisgICAgfQorCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBtX2luaXRpYXRpbmdQ
YWdlP21faW5pdGlhdGluZ1BhZ2UtPm1haW5XZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCk6MDsKKyAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QsIHRoaXMs
IGZhbHNlLCB0cnVlKTsKKworICAgIG1fZG93bmxvYWQtPmRpZFN0YXJ0KCk7Cit9CisKK3ZvaWQg
RWZsRG93bmxvYWRlcjo6c3RhcnRXaXRoSGFuZGxlKFdlYlBhZ2UqIGluaXRpYXRpbmdQYWdlLCBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
K3sKKyAgICBBU1NFUlQobV9kb3dubG9hZCk7CisgICAgQVNTRVJUKGhhbmRsZSk7CisKKyAgICBt
X2luaXRpYXRpbmdQYWdlID0gaW5pdGlhdGluZ1BhZ2U7CisgICAgbV9kb3dubG9hZC0+ZGlkU3Rh
cnQoKTsKKworICAgIC8vIHJlZmVyZW5jZSBjb3VudCBmb3IgaGFuZGxlIGlzIGluY3JlYXNlZCBo
ZXJlCisgICAgbV9yZXNvdXJjZUhhbmRsZSA9IGhhbmRsZTsKKworICAgIG1fcmVzb3VyY2VIYW5k
bGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QgPSBoYW5k
bGUtPmZpcnN0UmVxdWVzdCgpOworICAgIGRpZFJlY2VpdmVSZXNwb25zZShtX3Jlc291cmNlSGFu
ZGxlLmdldCgpLCByZXNwb25zZSk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6Y2FuY2VsKCkK
K3sKKyAgICBBU1NFUlQobV9kb3dubG9hZCk7CisgICAgQVNTRVJUKG1fcmVzb3VyY2VIYW5kbGUp
OworCisgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7CisgICAgbV9kb3dubG9hZC0+ZGlk
Q2FuY2VsKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoKSk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRl
cjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKwordm9pZCBFZmxEb3dubG9hZGVyOjpkaWRE
ZWNpZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3Zl
cndyaXRlKQoreworICAgIGlmIChkZXN0aW5hdGlvbi5pc0VtcHR5KCkKKyAgICAgICAgICAgIHx8
ICFkZXN0aW5hdGlvbi5jb250YWlucyhQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKSkgeworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgc2VuZEZhaWxXaXRoRXJy
b3Ioa1dLRXJyb3JDb2RlRG93bmxvYWRDYW5ub3RPcGVuRmlsZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBTdHJpbmcgZGlyZWN0b3J5ID0gZGVzdGluYXRpb24ubGVmdChkZXN0aW5h
dGlvbi5yZXZlcnNlRmluZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKSk7CisgICAgaWYgKCFk
aXJlY3RvcnkuaXNFbXB0eSgpICYmICFmaWxlRXhpc3RzKGRpcmVjdG9yeSkpICB7CisgICAgICAg
IG1fcmVzb3VyY2VIYW5kbGUtPmNhbmNlbCgpOworICAgICAgICBzZW5kRmFpbFdpdGhFcnJvcihr
V0tFcnJvckNvZGVEb3dubG9hZENhbm5vdE9wZW5GaWxlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmICghYWxsb3dPdmVyd3JpdGUgJiYgZmlsZUV4aXN0cyhkZXN0aW5hdGlvbikp
IHsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7CisgICAgICAgIHNlbmRGYWls
V2l0aEVycm9yKGtXS0Vycm9yQ29kZURvd25sb2FkRmlsZUFscmVhZHlFeGlzdHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9maWxlUGF0aCA9IGRlc3RpbmF0aW9uOworICAgIG1f
ZG93bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKG1fZmlsZVBhdGgpOworfQorCit2b2lkIEVm
bERvd25sb2FkZXI6OnNlbmRGYWlsV2l0aEVycm9yKGludCBlcnJvckNvZGUpCit7CisgICAgU3Ry
aW5nIGxvY2FsaXplZERlc2NyaXB0aW9uOworCisgICAgc3dpdGNoIChlcnJvckNvZGUpIHsKKyAg
ICBjYXNlIGtXS0Vycm9yQ29kZURvd25sb2FkQ2Fubm90T3BlbkZpbGU6CisgICAgICAgIGxvY2Fs
aXplZERlc2NyaXB0aW9uID0gIkNhbm5vdCBvcGVuIGZpbGUiOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2Uga1dLRXJyb3JDb2RlRG93bmxvYWRGaWxlQWxyZWFkeUV4aXN0czoKKyAgICAgICAg
bG9jYWxpemVkRGVzY3JpcHRpb24gPSAiIEZpbGUgYWxyZWFkeSBleGlzdHMiOworICAgICAgICBi
cmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIFJlc291
cmNlRXJyb3IgcmVzb3VyY2VFcnJvcigiRG93bmxvYWQiLCBlcnJvckNvZGUsIG1faW5pdGlhbFJl
c291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworICAg
IGRpZEZhaWwobV9yZXNvdXJjZUhhbmRsZS5nZXQoKSwgcmVzb3VyY2VFcnJvcik7Cit9CisKK3Zv
aWQgRWZsRG93bmxvYWRlcjo6ZGVjaWRlRmlsZVBhdGgoKQoreworICAgIFN0cmluZyBzdWdnZXN0
ZWRGaWxlTmFtZSA9IG1fcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOworCisg
ICAgaWYgKHN1Z2dlc3RlZEZpbGVOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgc3VnZ2VzdGVkRmls
ZU5hbWUgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMobV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0
LnVybCgpLmxhc3RQYXRoQ29tcG9uZW50KCkpOworCisgICAgaWYgKHN1Z2dlc3RlZEZpbGVOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgc3VnZ2VzdGVkRmlsZU5hbWUgPSBtX2luaXRpYWxSZXNvdXJj
ZVJlcXVlc3QudXJsKCkuaG9zdCgpOworCisgICAgYm9vbCBhbGxvd092ZXJ3cml0ZTsKKyAgICBt
X2Rvd25sb2FkLT5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0
ZWRGaWxlTmFtZSwgYWxsb3dPdmVyd3JpdGUpOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCit7CisgICAgbV9yZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CisgICAg
bV9kb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKworICAgIGlmIChtX2Zp
bGVQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgZGVjaWRlRmlsZVBhdGgoKTsKK30KKwordm9pZCBF
ZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBzaXplLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgaWYgKG1fZmls
ZUhhbmRsZSA9PSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICBvcGVuRG93bmxv
YWRGaWxlKCk7CisKKyAgICBpbnQgd3JpdHRlbkxlbmd0aCA9IHdyaXRlVG9Eb3dubG9hZEZpbGUo
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHdyaXR0ZW5MZW5ndGgpIHsKKyAgICAgICAgbV9yZWNlaXZl
ZERhdGFMZW5ndGggKz0gd3JpdHRlbkxlbmd0aDsKKyAgICAgICAgbV9kb3dubG9hZC0+ZGlkUmVj
ZWl2ZURhdGEobV9yZWNlaXZlZERhdGFMZW5ndGgpOworICAgIH0KK30KKwordm9pZCBFZmxEb3du
bG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQoreworICAg
IEFTU0VSVChtX2Rvd25sb2FkKTsKKworICAgIGNsb3NlRG93bmxvYWRGaWxlKCk7CisgICAgbV9k
b3dubG9hZC0+ZGlkRmluaXNoKCk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6ZGlkRmFpbChS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VS
VChtX2Rvd25sb2FkKTsKKworICAgIGNsb3NlRG93bmxvYWRGaWxlKCk7CisgICAgbV9kb3dubG9h
ZC0+ZGlkRmFpbChlcnJvciwgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSgpKTsKK30KKworYm9vbCBF
ZmxEb3dubG9hZGVyOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSop
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBBU1NFUlQo
bV9kb3dubG9hZCk7CisKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBhdXRoQ2hhbGxlbmdl
ID0gYXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CisKKyAgICBpZiAoIWF1dGhDaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKSkKKyAgICAgICAgYXV0aENoYWxsZW5nZS5tX2F1dGhlbnRpY2F0
aW9uQ2xpZW50ID0gRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudDo6Y3JlYXRlKG1fZG93bmxv
YWQpOworCisgICAgbV9kb3dubG9hZC0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGF1dGhDaGFsbGVuZ2UpOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRpZENhbmNlbEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKQoreworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OnJlY2VpdmVkQ2FuY2VsbGF0
aW9uKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQorewor
fQorCit2b2lkIEVmbERvd25sb2FkZXI6OnVzZUNyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIC8vIEZJ
WE1FOiBzdXBwb3J0IGFub3RoZXIgc2NoZW1lCisgICAgU3RyaW5nIGF1dGhlbnRpY2F0aW9uSGVh
ZGVyID0gIkJhc2ljICIgKyBiYXNlNjRFbmNvZGUoU3RyaW5nKGNyZWRlbnRpYWwudXNlcigpICsg
IjoiICsgY3JlZGVudGlhbC5wYXNzd29yZCgpKS51dGY4KCkpOworICAgIG1faW5pdGlhbFJlc291
cmNlUmVxdWVzdC5jbGVhckhUVFBBdXRob3JpemF0aW9uKCk7CisgICAgbV9pbml0aWFsUmVzb3Vy
Y2VSZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZCgiQXV0aG9yaXphdGlvbiIsIGF1dGhlbnRpY2F0
aW9uSGVhZGVyKTsKKworICAgIHN0YXJ0KG1faW5pdGlhdGluZ1BhZ2UsIG1faW5pdGlhbFJlc291
cmNlUmVxdWVzdCk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6Y29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgc3RhcnQobV9p
bml0aWF0aW5nUGFnZSwgbV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0KTsKK30KKwordm9pZCBFZmxE
b3dubG9hZGVyOjpjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpCit7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6b3BlbkRvd25sb2Fk
RmlsZSgpCit7CisgICAgaWYgKG1fZmlsZVBhdGguaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2ZpbGVIYW5kbGUgPSBvcGVuRmlsZShtX2ZpbGVQYXRoLCBPcGVuRm9yV3JpdGUp
OworICAgIGlmICghaXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpKSB7CisgICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUtPmNhbmNlbCgpOworICAgICAgICBzZW5kRmFpbFdpdGhFcnJvcihrV0tFcnJv
ckNvZGVEb3dubG9hZENhbm5vdE9wZW5GaWxlKTsKKyAgICB9Cit9CisKK2ludCBFZmxEb3dubG9h
ZGVyOjp3cml0ZVRvRG93bmxvYWRGaWxlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorewor
ICAgIGlmICghaXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGlmICghbV9idWZmZXIpCisgICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoKTsKKworICAgIG1fYnVmZmVyLT5hcHBlbmQoZGF0YSwgc2l6ZSk7CisKKyAgICBpZiAo
bV9idWZmZXItPnNpemUoKSA+PSBtX2J1ZmZlckNhcGFjaXR5KSB7CisgICAgICAgIGludCB3cml0
dGVuTGVuZ3RoID0gd3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBtX2J1ZmZlci0+ZGF0YSgpLCBt
X2J1ZmZlci0+c2l6ZSgpKTsKKyAgICAgICAgbV9idWZmZXItPmNsZWFyKCk7CisgICAgICAgIHJl
dHVybiB3cml0dGVuTGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit2b2lkIEVm
bERvd25sb2FkZXI6OmNsb3NlRG93bmxvYWRGaWxlKCkKK3sKKyAgICBpZiAoIWlzSGFuZGxlVmFs
aWQobV9maWxlSGFuZGxlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYnVmZmVyICYm
IG1fYnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgd3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBt
X2J1ZmZlci0+ZGF0YSgpLCBtX2J1ZmZlci0+c2l6ZSgpKTsKKyAgICAgICAgbV9idWZmZXItPmNs
ZWFyKCk7CisgICAgfQorCisgICAgY2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7CisgICAgbV9maWxl
SGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rv
d25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1
dGFibGUKICAgKyAqCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
ZWZsL0VmbERvd25sb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Rvd25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEVmbERvd25s
b2FkZXJfaAorI2RlZmluZSBFZmxEb3dubG9hZGVyX2gKKworI2luY2x1ZGUgIkRvd25sb2FkQXV0
aGVudGljYXRpb25DbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xh
c3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CisgICAgY2xhc3MgQ3JlZGVudGlhbDsKKyAgICBj
bGFzcyBQcm90ZWN0aW9uU3BhY2U7CisgICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKKyAgICBjbGFz
cyBSZXNvdXJjZUhhbmRsZTsKKyAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVudDsKKyAgICBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CisgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKyAgICBj
bGFzcyBTaGFyZWRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEb3du
bG9hZDsKK2NsYXNzIFdlYlBhZ2U7CisKK2VudW0geworICAgIGtXS0Vycm9yQ29kZURvd25sb2Fk
Q2Fubm90T3BlbkZpbGUgPSAzMDAsCisgICAga1dLRXJyb3JDb2RlRG93bmxvYWRGaWxlQWxyZWFk
eUV4aXN0cyA9IDMwMQorfTsKKworY2xhc3MgRWZsRG93bmxvYWRlciA6IHB1YmxpYyBXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZUNsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
RWZsRG93bmxvYWRlcj4gY3JlYXRlKERvd25sb2FkKik7CisgICAgfkVmbERvd25sb2FkZXIoKTsK
KworICAgIHZvaWQgc3RhcnQoV2ViUGFnZSosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwor
ICAgIHZvaWQgc3RhcnRXaXRoSGFuZGxlKFdlYlBhZ2UqLCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGNhbmNlbCgp
OworCisgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKKworICAgIC8vIGZ1bmN0aW9ucyB3
aGljaCBjYWxscyB0byBEb3dubG9hZAorICAgIHZvaWQgZGlkRGVjaWRlRGVzdGluYXRpb24oY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisKKyAgICAvLyBm
dW5jdGlvbnMgd2hpY2ggYXJlIGNhbGxlZCBieSBEb3dubG9hZAorICAgIHZvaWQgdXNlQ3JlZGVu
dGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFdlYkNv
cmU6OkNyZWRlbnRpYWwmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2b2lkIGNhbmNlbEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJik7CisKKyAgICAvLyAgY2FsbGJhY2tzIGZvciBSZXNvdXJjZUhhbmRsZUNsaWVudCwgd2hp
Y2ggYXJlIGNhbGxlZCBieSBSZXNvdXJjZUhhbmRsZQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qZW5jb2RlZERhdGFMZW5n
dGgqLyk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOworICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVk
Q2FuY2VsbGF0aW9uKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKworcHJpdmF0ZToKKyAgICBFZmxEb3dubG9hZGVyKERv
d25sb2FkKiBkb3dubG9hZCk7CisKKyAgICB2b2lkIHNlbmRGYWlsV2l0aEVycm9yKGludCk7CisK
KyAgICB2b2lkIGRlY2lkZUZpbGVQYXRoKCk7CisgICAgdm9pZCBvcGVuRG93bmxvYWRGaWxlKCk7
CisgICAgaW50IHdyaXRlVG9Eb3dubG9hZEZpbGUoY29uc3QgY2hhciosIGludCk7CisgICAgdm9p
ZCBjbG9zZURvd25sb2FkRmlsZSgpOworCisgICAgV2ViUGFnZSogbV9pbml0aWF0aW5nUGFnZTsK
KyAgICBEb3dubG9hZCogbV9kb3dubG9hZDsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZT4gbV9yZXNvdXJjZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
bV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0OworICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
bV9yZXNvdXJjZVJlc3BvbnNlOworCisgICAgU3RyaW5nIG1fZmlsZVBhdGg7CisgICAgdWludDY0
X3QgbV9yZWNlaXZlZERhdGFMZW5ndGg7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4gbV9idWZmZXI7CisgICAgdW5zaWduZWQgbV9idWZmZXJDYXBhY2l0eTsKKyAgICBXZWJDb3Jl
OjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlSGFuZGxlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFZmxEb3dubG9hZGVyX2gKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9FZmxEb3dubG9hZGVyLmgK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120650</attachid>
            <date>2011-12-28 04:02:47 -0800</date>
            <delta_ts>2012-01-03 02:18:07 -0800</delta_ts>
            <desc>fix style error</desc>
            <filename>bug75246_1.patch</filename>
            <type>text/plain</type>
            <size>24107</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDExLTEyLTI4ICBLZXVuc29v
biBMZWUgIDxrZXVuc29vbi5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl1bRUZMXSBp
bXBsZW1lbnRlZCBEb3dubG9hZCBtb2R1bGUgZm9yIEVmbCBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0NgorCisgICAgICAgIG5ld2x5IGlt
cGxlbWVudGVkIGRvd25sb2FkIG1vZHVsZSBmb3IgRWZsIHBvcnQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9lZmwvRG93bmxvYWRFZmwuY3BwOiBBZGRlZC4gaW1wbGVtZW50ZWQgc2V2ZXJhbCBwbGF0Zm9y
bSBzcGVjaWZpYyBmdW5jdGlvbnMgb24gRG93bmxvYWQgY2xhc3MKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnN0YXJ0KTogY2FsbCB0byBzYW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25s
b2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZSk6IGNhbGwg
dG8gc2FtZSBuYW1lZCBmdW5jdGlvbiBvbiBFZmxEb3dubG9hZGVyCisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkOjpjYW5jZWwpOiBjYWxsIHRvIHNhbWUgbmFtZWQgZnVuY3Rpb24gb24gRWZsRG93
bmxvYWRlcgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cGxhdGZvcm1JbnZhbGlkYXRlKTog
Y2FsbCB0byBzYW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKTogY2FsbCB0byBzYW1lIG5hbWVk
IGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnBs
YXRmb3JtRGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVkQ3Jl
ZGVudGlhbCk6IGNhbGwgdG8gc2FtZSBuYW1lZCBmdW5jdGlvbiByZWdpc3RlcmVkIG9uIHJlY2Vp
dmVkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpy
ZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOiBjYWxsIHRvIHNhbWUg
bmFtZWQgZnVuY3Rpb24gcmVnaXN0ZXJlZCBvbiByZWNlaXZlZCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZQorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24pOiBj
YWxsIHRvIHNhbWUgbmFtZWQgZnVuY3Rpb24gcmVnaXN0ZXJlZCBvbiByZWNlaXZlZCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZQorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6dXNlQ3JlZGVudGlh
bCk6IGNhbGwgdG8gc2FtZSBuYW1lZCBmdW5jdGlvbiBvbiBFZmxEb3dubG9hZGVyCisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkOjpjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsKTogY2FsbCB0byBz
YW1lIG5hbWVkIGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWQ6OmNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogY2FsbCB0byBzYW1lIG5hbWVk
IGZ1bmN0aW9uIG9uIEVmbERvd25sb2FkZXIKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9lZmwvRWZsRG93bmxvYWRlci5jcHA6IEFkZGVkLiBkbyBkb3dubG9hZCBhbmQgZmlsZSB3cml0
aW5nLiBkZXJpdmVkIGZyb20gUmVzb3VyY2VIYW5kbGVDbGllbnQKKyAgICAgICAgKFdlYktpdDo6
RWZsRG93bmxvYWRlcjo6Y3JlYXRlKTogCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6
OkVmbERvd25sb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjp+RWZsRG93
bmxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnN0YXJ0KTogc3RhcnQg
dG8gZG93bmxvYWQgd2l0aCByZWNlaXZpbmcgUmVzb3VyY2VSZXF1ZXN0CisgICAgICAgIChXZWJL
aXQ6OkVmbERvd25sb2FkZXI6OnN0YXJ0V2l0aEhhbmRsZSk6IHJlZGlyZWN0IGRhdGEgZmxvdyBm
b3IgcmVjZWl2aW5nIFJlc291cmNlSGFuZGxlIGFuZCBzdGFydCB0byBkb3dubG9hZCB3aXRoIGl0
CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNhbmNlbCk6IGNhY2VsIHRvIGRvd25s
b2FkCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnBsYXRmb3JtSW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZERlY2lkZURlc3RpbmF0aW9uKTog
Y2hlY2sgcmVjZWl2ZWQgZmlsZSBwYXRoIGlzIHZhbGlkIGFuZCBzZW5kIGRlY2lkZWQgZGVzdGlu
YXRpb24gdG8gY2xpZW50CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OnNlbmRGYWls
V2l0aEVycm9yKTogY3JlYXRlIFJlc291cmNlRXJyb3Igd2l0aCBwYXNzZWQgZXJyb3IgY29kZSBh
bmQgc2VuZCBpdAorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkZWNpZGVGaWxlUGF0
aCk6IGNyZWF0ZSBzdWdnZXN0ZWQgZmlsZSBuYW1lIGFuZCBzZW5kIGl0IHRvIGNsaWVudAorICAg
ICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiByZWNlaXZp
bmcgUmVzb3VyY2VSZXNwb25zZS4gZGVjaWRlIGZpbGUgcGF0aCB0byBzdG9yZQorICAgICAgICAo
V2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6IHJlY2VpdmluZyBjaHVuayBk
YXRhLiB3cml0ZSB0aGUgY2h1bmsgZGF0YSB0byBmaWxlIGFuZCBzZW5kIGhvdyBtdWNoIGRvd25s
b2FkZWQgdG8gY2xpZW50CisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcpOiBub3RpZmllZCBubyBtb3JlIGNodW5rIGRhdGEuIGNsb3NlIG9wZW5lZCBmaWxl
IGFuZCBub3RpZnkgZG93bmxvYWQgaXMgZmluaXNoZWQgdG8gY2xpZW50CisgICAgICAgIChXZWJL
aXQ6OkVmbERvd25sb2FkZXI6OmRpZEZhaWwpOiBub3RpZmllZCBmYWlsLiBjbG9zZSBvcGVuZWQg
ZmlsZSBhbmQgbm90aWZ5IGRvd25sb2FkIGlzIGZhaWxlZCB0byBjbGllbnQKKyAgICAgICAgKFdl
YktpdDo6RWZsRG93bmxvYWRlcjo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOiBjcmVhdGUgYW5kIHJlZ2lzdGVyIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQgdG8g
cmVjZWl2ZWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuIHNlbmQgaXQgdG8gY2xpZW50CisgICAg
ICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYktpdDo6RWZsRG93bmxvYWRlcjo6cmVjZWl2ZWRDYW5jZWxsYXRp
b24pOgorICAgICAgICAoV2ViS2l0OjpFZmxEb3dubG9hZGVyOjp1c2VDcmVkZW50aWFsKTogc3Rh
cnQgbmV3IEhUVFAgdHJhbnNhY3Rpb24gd2l0aCByZWNlaXZpbmcgaWQgYW5kIHBhc3N3b3JkCisg
ICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwp
OiBzdGFydCBuZXcgSFRUUCB0cmFuc2FjdGlvbiB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIGluZm9y
bWF0aW9uCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25sb2FkZXI6OmNhbmNlbEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6RWZsRG93bmxvYWRlcjo6b3BlbkRvd25s
b2FkRmlsZSk6IG9wZW4gYSBmaWxlIHRvIHdyaXRlCisgICAgICAgIChXZWJLaXQ6OkVmbERvd25s
b2FkZXI6OndyaXRlVG9Eb3dubG9hZEZpbGUpOiBidWZmZXJpbmcgZGF0YSBhbmQgd3JpdGluZyBp
dCB0byBmaWxlIGlmIHJlYWNoZWQgYnVmZmVyaW5nIHRocmVzaG9sZAorICAgICAgICAoV2ViS2l0
OjpFZmxEb3dubG9hZGVyOjpjbG9zZURvd25sb2FkRmlsZSk6IGNsb3NlIGEgZmlsZQorICAgICAg
ICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9FZmxEb3dubG9hZGVyLmg6IEFkZGVkLgorCiAy
MDExLTEyLTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21h
Y10gU3RvcCB1c2luZyBib290c3RyYXBfbG9va191cDIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCShyZXZpc2lvbiAxMDM3NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOSBAQCBMSVNUKEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9lZmwvUGx1Z2luSW5mb1N0b3JlRWZsLmNw
cAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL2VmbC9QbHVnaW5Qcm9jZXNzUHJveHlFZmwuY3BwCiAK
KyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCisgICAgV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzRWZsLmNwcAogICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZs
LmNwcAogCkBAIC02Myw2ICs2Niw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9lZmwvIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9l
ZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvZWZsIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbCIKICAgICAke0NhaXJvX0lOQ0xVREVf
RElSU30KQEAgLTExNiw3ICsxMjAsNiBAQCBJRiAoV1RGX1VTRV9TT1VQKQogICAgIExJU1QoQVBQ
RU5EIFdlYktpdDJfTElCUkFSSUVTICR7TElCU09VUDI0X0xJQlJBUklFU30pCiAgICAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dl
YkNvb2tpZU1hbmFnZXJTb3VwLmNwcAotICAgICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
L0Rvd25sb2FkU291cC5jcHAKICAgICApCiAKICAgICBBRERfQ1VTVE9NX1RBUkdFVChmb3J3YXJk
aW5nLWhlYWRlclNvdXAKQEAgLTEzMyw3ICsxMzYsNiBAQCBJRiAoV1RGX1VTRV9DVVJMKQogICAg
IExJU1QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTICR7Q1VSTF9MSUJSQVJJRVN9KQogICAgIExJ
U1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvY3Vy
bC9XZWJDb29raWVNYW5hZ2VyQ3VybC5jcHAKLSAgICAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
Y3VybC9Eb3dubG9hZEN1cmwuY3BwCiAgICAgKQogRU5ESUYgKCkKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShyZXZpc2lvbiAxMDM3
NTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxMCBAQCBPQkpDX0NMQVNTIFdLRG93bmxvYWRBc0Rl
bGVnYXRlOwogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTERvd25sb2FkUHJpdi5oPgogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSA8RWZsRG93bmxvYWRlci5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBDb3JlSVBDIHsKICAgICBjbGFzcyBEYXRhUmVmZXJlbmNlOwogfQpAQCAt
NjksNiArNzMsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFF0RmlsZURvd25sb2FkZXI7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKEVGTCkKK2NsYXNzIEVmbERvd25sb2FkZXI7CisjZW5kaWYK
KwogY2xhc3MgRG93bmxvYWQgOiBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjxEb3dubG9h
ZD4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsKIHB1YmxpYzoKQEAgLTE0
Niw2ICsxNTQsOSBAQCBwcml2YXRlOgogICAgIE93blB0cjxXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNsaWVudD4gbV9kb3dubG9hZENsaWVudDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU+IG1fcmVzb3VyY2VIYW5kbGU7CiAjZW5kaWYKKyNpZiBQTEFURk9STShFRkwpCisgICAg
T3duUHRyPEVmbERvd25sb2FkZXI+IG1fZWZsRG93bmxvYWRlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25s
b2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRFZmwuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZQorICog
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkRvd25sb2FkLmgiCisKKyNpbmNsdWRlICJFZmxEb3dubG9hZGVy
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBEb3dubG9hZDo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1dlYlBhZ2UpCit7CisgICAg
bV9lZmxEb3dubG9hZGVyID0gRWZsRG93bmxvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAgIG1fZWZs
RG93bmxvYWRlci0+c3RhcnQoaW5pdGlhdGluZ1dlYlBhZ2UsIG1fcmVxdWVzdCk7Cit9CisKK3Zv
aWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgbV9lZmxEb3dubG9hZGVyID0gRWZsRG93bmxvYWRlcjo6Y3JlYXRlKHRoaXMpOworICAg
IG1fZWZsRG93bmxvYWRlci0+c3RhcnRXaXRoSGFuZGxlKGluaXRpYXRpbmdQYWdlLCBoYW5kbGUs
IHJlc3BvbnNlKTsKK30KKwordm9pZCBEb3dubG9hZDo6Y2FuY2VsKCkKK3sKKyAgICBBU1NFUlQo
bV9lZmxEb3dubG9hZGVyKTsKKyAgICBtX2VmbERvd25sb2FkZXItPmNhbmNlbCgpOworfQorCit2
b2lkIERvd25sb2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworICAgIEFTU0VSVChtX2VmbERv
d25sb2FkZXIpOworICAgIG1fZWZsRG93bmxvYWRlci0+cGxhdGZvcm1JbnZhbGlkYXRlKCk7Cit9
CisKK3ZvaWQgRG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb24sIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit7CisgICAgQVNTRVJUKG1fZWZsRG93bmxv
YWRlcik7CisgICAgbV9lZmxEb3dubG9hZGVyLT5kaWREZWNpZGVEZXN0aW5hdGlvbihkZXN0aW5h
dGlvbiwgYWxsb3dPdmVyd3JpdGUpOworfQorCit2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURpZEZp
bmlzaCgpCit7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNvbnN0IENy
ZWRlbnRpYWwmIGNyZWRlbnRpYWwpCit7CisgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRDcmVkZW50aWFsKGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLCBjcmVkZW50aWFsKTsKK30KKwordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0
VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91
dENyZWRlbnRpYWwoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2Fk
OjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRDYW5jZWxsYXRpb24oYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2FkOjp1c2VDcmVkZW50aWFsKGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY29u
c3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3sKKyAgICBBU1NFUlQobV9lZmxE
b3dubG9hZGVyKTsKKyAgICBtX2VmbERvd25sb2FkZXItPnVzZUNyZWRlbnRpYWwoYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UsIGNyZWRlbnRpYWwpOworfQorCit2b2lkIERvd25sb2FkOjpjb250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBBU1NFUlQobV9lZmxEb3dubG9hZGVy
KTsKKyAgICBtX2VmbERvd25sb2FkZXItPmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOworfQorCit2b2lkIERvd25sb2FkOjpjYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgQVNTRVJUKG1fZWZsRG93bmxvYWRlcik7Cisg
ICAgbV9lZmxEb3dubG9hZGVyLT5jYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25s
b2FkRWZsLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZs
L0VmbERvd25sb2FkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFZmxEb3dubG9hZGVyLmgiCisKKyNpbmNsdWRlICJCYXNlNjQuaCIKKyNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya2lu
Z0NvbnRleHQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitQYXNzT3duUHRyPEVmbERvd25sb2FkZXI+IEVmbERvd25sb2FkZXI6OmNyZWF0ZShE
b3dubG9hZCogZG93bmxvYWQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFZmxEb3dubG9h
ZGVyKGRvd25sb2FkKSk7Cit9CisKK0VmbERvd25sb2FkZXI6OkVmbERvd25sb2FkZXIoRG93bmxv
YWQqIGRvd25sb2FkKQorICAgIDogbV9kb3dubG9hZChkb3dubG9hZCkKKyAgICAsIG1fcmVjZWl2
ZWREYXRhTGVuZ3RoKDApCisgICAgLCBtX2J1ZmZlckNhcGFjaXR5KDY0KjEwMjQpIC8vIEZJWE1F
OiBmaW5kIHByb3BlciB2YWx1ZSBvciBnaXZlIGEgY2hhbmNlIHRvIGFkanVzdCBpdCBmb3IgY2xp
ZW50CisgICAgLCBtX2ZpbGVIYW5kbGUoaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKK3sKKyAg
ICBBU1NFUlQoZG93bmxvYWQpOworfQorCitFZmxEb3dubG9hZGVyOjp+RWZsRG93bmxvYWRlcigp
Cit7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6c3RhcnQoV2ViUGFnZSogaW5pdGlhdGluZ1Bh
Z2UsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX2luaXRpYXRpbmdQYWdlID0g
aW5pdGlhdGluZ1BhZ2U7CisgICAgbV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdDsK
KworICAgIGlmIChtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpLmlzRW1w
dHkoKSkgeworICAgICAgICBTdHJpbmcgdXNlckFnZW50OworICAgICAgICBpZiAobV9pbml0aWF0
aW5nUGFnZSkKKyAgICAgICAgICAgIHVzZXJBZ2VudCA9IG1faW5pdGlhdGluZ1BhZ2UtPnVzZXJB
Z2VudCgpOworCisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgZ2V0IHJlYWwgVXNlciBBZ2VudAor
ICAgICAgICBpZiAodXNlckFnZW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHVzZXJBZ2VudCA9
ICJNb3ppbGxhLzUuMCAoVW5rbm93bjsgTGludXggYXJtdjdsKSBBcHBsZVdlYktpdC81MzQuMTYr
IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLzUzNC4xNisiOworCisgICAg
ICAgIG1faW5pdGlhbFJlc291cmNlUmVxdWVzdC5zZXRIVFRQVXNlckFnZW50KHVzZXJBZ2VudCk7
CisgICAgfQorCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQgPSBtX2luaXRpYXRpbmdQ
YWdlP21faW5pdGlhdGluZ1BhZ2UtPm1haW5XZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCktPm5ldHdvcmtpbmdDb250ZXh0KCk6MDsKKyAgICBtX3Jlc291cmNlSGFuZGxlID0gUmVzb3Vy
Y2VIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QsIHRoaXMs
IGZhbHNlLCB0cnVlKTsKKworICAgIG1fZG93bmxvYWQtPmRpZFN0YXJ0KCk7Cit9CisKK3ZvaWQg
RWZsRG93bmxvYWRlcjo6c3RhcnRXaXRoSGFuZGxlKFdlYlBhZ2UqIGluaXRpYXRpbmdQYWdlLCBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
K3sKKyAgICBBU1NFUlQobV9kb3dubG9hZCk7CisgICAgQVNTRVJUKGhhbmRsZSk7CisKKyAgICBt
X2luaXRpYXRpbmdQYWdlID0gaW5pdGlhdGluZ1BhZ2U7CisgICAgbV9kb3dubG9hZC0+ZGlkU3Rh
cnQoKTsKKworICAgIC8vIHJlZmVyZW5jZSBjb3VudCBmb3IgaGFuZGxlIGlzIGluY3JlYXNlZCBo
ZXJlCisgICAgbV9yZXNvdXJjZUhhbmRsZSA9IGhhbmRsZTsKKworICAgIG1fcmVzb3VyY2VIYW5k
bGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX2luaXRpYWxSZXNvdXJjZVJlcXVlc3QgPSBoYW5k
bGUtPmZpcnN0UmVxdWVzdCgpOworICAgIGRpZFJlY2VpdmVSZXNwb25zZShtX3Jlc291cmNlSGFu
ZGxlLmdldCgpLCByZXNwb25zZSk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6Y2FuY2VsKCkK
K3sKKyAgICBBU1NFUlQobV9kb3dubG9hZCk7CisgICAgQVNTRVJUKG1fcmVzb3VyY2VIYW5kbGUp
OworCisgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7CisgICAgbV9kb3dubG9hZC0+ZGlk
Q2FuY2VsKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoKSk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRl
cjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKwordm9pZCBFZmxEb3dubG9hZGVyOjpkaWRE
ZWNpZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3Zl
cndyaXRlKQoreworICAgIGlmIChkZXN0aW5hdGlvbi5pc0VtcHR5KCkKKyAgICAgICAgICAgIHx8
ICFkZXN0aW5hdGlvbi5jb250YWlucyhQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKSkgeworICAg
ICAgICBtX3Jlc291cmNlSGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgc2VuZEZhaWxXaXRoRXJy
b3Ioa1dLRXJyb3JDb2RlRG93bmxvYWRDYW5ub3RPcGVuRmlsZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBTdHJpbmcgZGlyZWN0b3J5ID0gZGVzdGluYXRpb24ubGVmdChkZXN0aW5h
dGlvbi5yZXZlcnNlRmluZChQbGF0Zm9ybUZpbGVQYXRoU2VwYXJhdG9yKSk7CisgICAgaWYgKCFk
aXJlY3RvcnkuaXNFbXB0eSgpICYmICFmaWxlRXhpc3RzKGRpcmVjdG9yeSkpICB7CisgICAgICAg
IG1fcmVzb3VyY2VIYW5kbGUtPmNhbmNlbCgpOworICAgICAgICBzZW5kRmFpbFdpdGhFcnJvcihr
V0tFcnJvckNvZGVEb3dubG9hZENhbm5vdE9wZW5GaWxlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmICghYWxsb3dPdmVyd3JpdGUgJiYgZmlsZUV4aXN0cyhkZXN0aW5hdGlvbikp
IHsKKyAgICAgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7CisgICAgICAgIHNlbmRGYWls
V2l0aEVycm9yKGtXS0Vycm9yQ29kZURvd25sb2FkRmlsZUFscmVhZHlFeGlzdHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9maWxlUGF0aCA9IGRlc3RpbmF0aW9uOworICAgIG1f
ZG93bmxvYWQtPmRpZENyZWF0ZURlc3RpbmF0aW9uKG1fZmlsZVBhdGgpOworfQorCit2b2lkIEVm
bERvd25sb2FkZXI6OnNlbmRGYWlsV2l0aEVycm9yKGludCBlcnJvckNvZGUpCit7CisgICAgU3Ry
aW5nIGxvY2FsaXplZERlc2NyaXB0aW9uOworCisgICAgc3dpdGNoIChlcnJvckNvZGUpIHsKKyAg
ICBjYXNlIGtXS0Vycm9yQ29kZURvd25sb2FkQ2Fubm90T3BlbkZpbGU6CisgICAgICAgIGxvY2Fs
aXplZERlc2NyaXB0aW9uID0gIkNhbm5vdCBvcGVuIGZpbGUiOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2Uga1dLRXJyb3JDb2RlRG93bmxvYWRGaWxlQWxyZWFkeUV4aXN0czoKKyAgICAgICAg
bG9jYWxpemVkRGVzY3JpcHRpb24gPSAiIEZpbGUgYWxyZWFkeSBleGlzdHMiOworICAgICAgICBi
cmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIFJlc291
cmNlRXJyb3IgcmVzb3VyY2VFcnJvcigiRG93bmxvYWQiLCBlcnJvckNvZGUsIG1faW5pdGlhbFJl
c291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworICAg
IGRpZEZhaWwobV9yZXNvdXJjZUhhbmRsZS5nZXQoKSwgcmVzb3VyY2VFcnJvcik7Cit9CisKK3Zv
aWQgRWZsRG93bmxvYWRlcjo6ZGVjaWRlRmlsZVBhdGgoKQoreworICAgIFN0cmluZyBzdWdnZXN0
ZWRGaWxlTmFtZSA9IG1fcmVzb3VyY2VSZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOworCisg
ICAgaWYgKHN1Z2dlc3RlZEZpbGVOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgc3VnZ2VzdGVkRmls
ZU5hbWUgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMobV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0
LnVybCgpLmxhc3RQYXRoQ29tcG9uZW50KCkpOworCisgICAgaWYgKHN1Z2dlc3RlZEZpbGVOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgc3VnZ2VzdGVkRmlsZU5hbWUgPSBtX2luaXRpYWxSZXNvdXJj
ZVJlcXVlc3QudXJsKCkuaG9zdCgpOworCisgICAgYm9vbCBhbGxvd092ZXJ3cml0ZTsKKyAgICBt
X2Rvd25sb2FkLT5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0
ZWRGaWxlTmFtZSwgYWxsb3dPdmVyd3JpdGUpOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCit7CisgICAgbV9yZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CisgICAg
bV9kb3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKworICAgIGlmIChtX2Zp
bGVQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgZGVjaWRlRmlsZVBhdGgoKTsKK30KKwordm9pZCBF
ZmxEb3dubG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBzaXplLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgaWYgKG1fZmls
ZUhhbmRsZSA9PSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICBvcGVuRG93bmxv
YWRGaWxlKCk7CisKKyAgICBpbnQgd3JpdHRlbkxlbmd0aCA9IHdyaXRlVG9Eb3dubG9hZEZpbGUo
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHdyaXR0ZW5MZW5ndGgpIHsKKyAgICAgICAgbV9yZWNlaXZl
ZERhdGFMZW5ndGggKz0gd3JpdHRlbkxlbmd0aDsKKyAgICAgICAgbV9kb3dubG9hZC0+ZGlkUmVj
ZWl2ZURhdGEobV9yZWNlaXZlZERhdGFMZW5ndGgpOworICAgIH0KK30KKwordm9pZCBFZmxEb3du
bG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQoreworICAg
IEFTU0VSVChtX2Rvd25sb2FkKTsKKworICAgIGNsb3NlRG93bmxvYWRGaWxlKCk7CisgICAgbV9k
b3dubG9hZC0+ZGlkRmluaXNoKCk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6ZGlkRmFpbChS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VS
VChtX2Rvd25sb2FkKTsKKworICAgIGNsb3NlRG93bmxvYWRGaWxlKCk7CisgICAgbV9kb3dubG9h
ZC0+ZGlkRmFpbChlcnJvciwgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSgpKTsKK30KKworYm9vbCBF
ZmxEb3dubG9hZGVyOjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSop
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBBU1NFUlQo
bV9kb3dubG9hZCk7CisKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBhdXRoQ2hhbGxlbmdl
ID0gYXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CisKKyAgICBpZiAoIWF1dGhDaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKSkKKyAgICAgICAgYXV0aENoYWxsZW5nZS5tX2F1dGhlbnRpY2F0
aW9uQ2xpZW50ID0gRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudDo6Y3JlYXRlKG1fZG93bmxv
YWQpOworCisgICAgbV9kb3dubG9hZC0+ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGF1dGhDaGFsbGVuZ2UpOworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OmRpZENhbmNlbEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKQoreworfQorCit2b2lkIEVmbERvd25sb2FkZXI6OnJlY2VpdmVkQ2FuY2VsbGF0
aW9uKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQorewor
fQorCit2b2lkIEVmbERvd25sb2FkZXI6OnVzZUNyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIC8vIEZJ
WE1FOiBzdXBwb3J0IGFub3RoZXIgc2NoZW1lCisgICAgU3RyaW5nIGF1dGhlbnRpY2F0aW9uSGVh
ZGVyID0gIkJhc2ljICIgKyBiYXNlNjRFbmNvZGUoU3RyaW5nKGNyZWRlbnRpYWwudXNlcigpICsg
IjoiICsgY3JlZGVudGlhbC5wYXNzd29yZCgpKS51dGY4KCkpOworICAgIG1faW5pdGlhbFJlc291
cmNlUmVxdWVzdC5jbGVhckhUVFBBdXRob3JpemF0aW9uKCk7CisgICAgbV9pbml0aWFsUmVzb3Vy
Y2VSZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZCgiQXV0aG9yaXphdGlvbiIsIGF1dGhlbnRpY2F0
aW9uSGVhZGVyKTsKKworICAgIHN0YXJ0KG1faW5pdGlhdGluZ1BhZ2UsIG1faW5pdGlhbFJlc291
cmNlUmVxdWVzdCk7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6Y29udGludWVXaXRob3V0Q3Jl
ZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgc3RhcnQobV9p
bml0aWF0aW5nUGFnZSwgbV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0KTsKK30KKwordm9pZCBFZmxE
b3dubG9hZGVyOjpjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpCit7Cit9CisKK3ZvaWQgRWZsRG93bmxvYWRlcjo6b3BlbkRvd25sb2Fk
RmlsZSgpCit7CisgICAgaWYgKG1fZmlsZVBhdGguaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2ZpbGVIYW5kbGUgPSBvcGVuRmlsZShtX2ZpbGVQYXRoLCBPcGVuRm9yV3JpdGUp
OworICAgIGlmICghaXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpKSB7CisgICAgICAgIG1fcmVz
b3VyY2VIYW5kbGUtPmNhbmNlbCgpOworICAgICAgICBzZW5kRmFpbFdpdGhFcnJvcihrV0tFcnJv
ckNvZGVEb3dubG9hZENhbm5vdE9wZW5GaWxlKTsKKyAgICB9Cit9CisKK2ludCBFZmxEb3dubG9h
ZGVyOjp3cml0ZVRvRG93bmxvYWRGaWxlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQorewor
ICAgIGlmICghaXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGlmICghbV9idWZmZXIpCisgICAgICAgIG1fYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoKTsKKworICAgIG1fYnVmZmVyLT5hcHBlbmQoZGF0YSwgc2l6ZSk7CisKKyAgICBpZiAo
bV9idWZmZXItPnNpemUoKSA+PSBtX2J1ZmZlckNhcGFjaXR5KSB7CisgICAgICAgIGludCB3cml0
dGVuTGVuZ3RoID0gd3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBtX2J1ZmZlci0+ZGF0YSgpLCBt
X2J1ZmZlci0+c2l6ZSgpKTsKKyAgICAgICAgbV9idWZmZXItPmNsZWFyKCk7CisgICAgICAgIHJl
dHVybiB3cml0dGVuTGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit2b2lkIEVm
bERvd25sb2FkZXI6OmNsb3NlRG93bmxvYWRGaWxlKCkKK3sKKyAgICBpZiAoIWlzSGFuZGxlVmFs
aWQobV9maWxlSGFuZGxlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fYnVmZmVyICYm
IG1fYnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgd3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBt
X2J1ZmZlci0+ZGF0YSgpLCBtX2J1ZmZlci0+c2l6ZSgpKTsKKyAgICAgICAgbV9idWZmZXItPmNs
ZWFyKCk7CisgICAgfQorCisgICAgY2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7CisgICAgbV9maWxl
SGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rv
d25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1
dGFibGUKICAgKyAqCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
ZWZsL0VmbERvd25sb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Rvd25sb2Fkcy9lZmwvRWZsRG93bmxvYWRlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0VmbERvd25sb2FkZXIuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEVmbERvd25s
b2FkZXJfaAorI2RlZmluZSBFZmxEb3dubG9hZGVyX2gKKworI2luY2x1ZGUgIkRvd25sb2FkQXV0
aGVudGljYXRpb25DbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKK2NsYXNzIENyZWRlbnRpYWw7CitjbGFzcyBQcm90ZWN0
aW9uU3BhY2U7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VIYW5kbGU7Citj
bGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVudDsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNz
IFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBEb3dubG9hZDsKK2NsYXNzIFdlYlBhZ2U7CisKK2VudW0geworICAg
IGtXS0Vycm9yQ29kZURvd25sb2FkQ2Fubm90T3BlbkZpbGUgPSAzMDAsCisgICAga1dLRXJyb3JD
b2RlRG93bmxvYWRGaWxlQWxyZWFkeUV4aXN0cyA9IDMwMQorfTsKKworY2xhc3MgRWZsRG93bmxv
YWRlciA6IHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RWZsRG93bmxvYWRlcj4gY3JlYXRlKERvd25sb2FkKik7Cisg
ICAgfkVmbERvd25sb2FkZXIoKTsKKworICAgIHZvaWQgc3RhcnQoV2ViUGFnZSosIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgc3RhcnRXaXRoSGFuZGxlKFdlYlBhZ2UqLCBX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKKyAgICB2b2lkIGNhbmNlbCgpOworCisgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsK
KworICAgIC8vIGZ1bmN0aW9ucyB3aGljaCBjYWxscyB0byBEb3dubG9hZAorICAgIHZvaWQgZGlk
RGVjaWRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCBhbGxvd092
ZXJ3cml0ZSk7CisKKyAgICAvLyBmdW5jdGlvbnMgd2hpY2ggYXJlIGNhbGxlZCBieSBEb3dubG9h
ZAorICAgIHZvaWQgdXNlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKKyAgICB2b2lkIGNvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KTsKKyAgICB2b2lkIGNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisKKyAgICAvLyAgY2FsbGJhY2tzIGZvciBSZXNv
dXJjZUhhbmRsZUNsaWVudCwgd2hpY2ggYXJlIGNhbGxlZCBieSBSZXNvdXJjZUhhbmRsZQorICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwg
aW50IC8qZW5jb2RlZERhdGFMZW5ndGgqLyk7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHZpcnR1
YWwgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAg
dmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
KiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKworcHJpdmF0ZToK
KyAgICBFZmxEb3dubG9hZGVyKERvd25sb2FkKik7CisKKyAgICB2b2lkIHNlbmRGYWlsV2l0aEVy
cm9yKGludCk7CisKKyAgICB2b2lkIGRlY2lkZUZpbGVQYXRoKCk7CisgICAgdm9pZCBvcGVuRG93
bmxvYWRGaWxlKCk7CisgICAgaW50IHdyaXRlVG9Eb3dubG9hZEZpbGUoY29uc3QgY2hhciosIGlu
dCk7CisgICAgdm9pZCBjbG9zZURvd25sb2FkRmlsZSgpOworCisgICAgV2ViUGFnZSogbV9pbml0
aWF0aW5nUGFnZTsKKyAgICBEb3dubG9hZCogbV9kb3dubG9hZDsKKworICAgIFJlZlB0cjxXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZT4gbV9yZXNvdXJjZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9pbml0aWFsUmVzb3VyY2VSZXF1ZXN0OworICAgIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgbV9yZXNvdXJjZVJlc3BvbnNlOworCisgICAgU3RyaW5nIG1fZmlsZVBhdGg7
CisgICAgdWludDY0X3QgbV9yZWNlaXZlZERhdGFMZW5ndGg7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7CisgICAgdW5zaWduZWQgbV9idWZmZXJDYXBhY2l0eTsK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlSGFuZGxlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFZmxEb3dubG9hZGVyX2gKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9FZmxE
b3dubG9hZGVyLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120920</attachid>
            <date>2012-01-03 02:18:07 -0800</date>
            <delta_ts>2012-01-03 02:59:21 -0800</delta_ts>
            <desc>dummy functions for Download class for Efl port</desc>
            <filename>20111228]-[keunsoon.lee]-[[WK2][EFL] dummy functions for download module to avoid build break].patch</filename>
            <type>text/plain</type>
            <size>5207</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzc2NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDExLTEyLTI4ICBLZXVuc29v
biBMZWUgIDxrZXVuc29vbi5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl1bRUZMXSBp
bXBsZW1lbnRlZCBEb3dubG9hZCBtb2R1bGUgZm9yIEVmbCBwb3J0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDYKKworICAgICAgICBkdW1teSBm
dW5jdGlvbnMgZm9yIERvd25sb2FkIGNsYXNzIG9uIEVmbCBwb3J0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZTogYWRk
IG5ldyBmaWxlIHRvIGNvbXBpbGUKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmw6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWQ6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpwbGF0Zm9ybUludmFs
aWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRGVjaWRlRGVzdGluYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cGxhdGZvcm1EaWRGaW5pc2gpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbCk6
CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkOjp1c2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZDo6Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorCiAyMDExLTEyLTI4ICBC
YWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0g
Q3Jhc2ggaW4gfldlYkdyYXBoaWNzTGF5ZXIgd2hlbiBydW5uaW5nIGZhc3QvbXVsdGljb2wvcGFn
aW5hdGlvbi0qIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQkocmV2aXNpb24g
MTAzNzU4KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0LDYgKzQ0LDggQEAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9lZmwvUGx1Z2luSW5m
b1N0b3JlRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL2VmbC9QbHVnaW5Qcm9jZXNzUHJv
eHlFZmwuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwvRG93bmxvYWRFZmwuY3Bw
CisKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAogICAgIFdlYlByb2Nlc3Mv
ZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAogCkBAIC0xMTYsNyArMTE4LDYgQEAKICAgICBMSVNU
KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUyAke0xJQlNPVVAyNF9MSUJSQVJJRVN9KQogICAgIExJ
U1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291
cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKLSAgICAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMv
c291cC9Eb3dubG9hZFNvdXAuY3BwCiAgICAgKQogCiAgICAgQUREX0NVU1RPTV9UQVJHRVQoZm9y
d2FyZGluZy1oZWFkZXJTb3VwCkBAIC0xMzMsNyArMTM0LDYgQEAKICAgICBMSVNUKEFQUEVORCBX
ZWJLaXQyX0xJQlJBUklFUyAke0NVUkxfTElCUkFSSUVTfSkKICAgICBMSVNUKEFQUEVORCBXZWJL
aXQyX1NPVVJDRVMKICAgICAgICAgV2ViUHJvY2Vzcy9Db29raWVzL2N1cmwvV2ViQ29va2llTWFu
YWdlckN1cmwuY3BwCi0gICAgICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL2N1cmwvRG93bmxvYWRD
dXJsLmNwcAogICAgICkKIEVORElGICgpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkRWZsLmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVm
bC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKworI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5n
V2ViUGFnZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERvd25sb2FkOjpz
dGFydFdpdGhIYW5kbGUoV2ViUGFnZSogaW5pdGlhdGluZ1BhZ2UsIFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNhbmNlbCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERvd25sb2FkOjpkaWREZWNpZGVEZXN0aW5h
dGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3ZlcndyaXRlKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnBsYXRmb3JtRGlkRmlu
aXNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERvd25sb2FkOjpyZWNl
aXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGlu
dWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBE
b3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgRG93bmxvYWQ6OnVzZUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjb25zdCBXZWJDb3JlOjpD
cmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgRG93bmxvYWQ6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120924</attachid>
            <date>2012-01-03 02:59:21 -0800</date>
            <delta_ts>2012-01-05 00:51:17 -0800</delta_ts>
            <desc>modified ChangeLog according to changed bug title</desc>
            <filename>20111228]-[keunsoon.lee]-[[WK2][EFL] dummy functions for download module to avoid build break].patch</filename>
            <type>text/plain</type>
            <size>5222</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzc2NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDExLTEyLTI4ICBLZXVuc29v
biBMZWUgIDxrZXVuc29vbi5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl1bRUZMXSBj
cmVhdGluZyBkdW1teSBmdW5jdGlvbnMgZm9yIERvd25sb2FkIGNsYXNzIG9uIEVmbCBwb3J0Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNDYKKwor
ICAgICAgICBkdW1teSBmdW5jdGlvbnMgZm9yIERvd25sb2FkIGNsYXNzIG9uIEVmbCBwb3J0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9y
bUVmbC5jbWFrZTogYWRkIG5ldyBmaWxlIHRvIGNvbXBpbGUKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0Rvd25sb2Fkcy9lZmw6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRG93bmxvYWRzL2Vm
bC9Eb3dubG9hZEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3Rh
cnQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWQ6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
OjpwbGF0Zm9ybUludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRGVj
aWRlRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cGxhdGZvcm1EaWRG
aW5pc2gpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDcmVkZW50aWFsKToK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRo
b3V0Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENhbmNl
bGxhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjp1c2VDcmVkZW50aWFsKToKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
CiAyMDExLTEyLTI4ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBbUXRdW1dLMl0gQ3Jhc2ggaW4gfldlYkdyYXBoaWNzTGF5ZXIgd2hlbiBydW5uaW5nIGZh
c3QvbXVsdGljb2wvcGFnaW5hdGlvbi0qIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQkocmV2aXNpb24gMTAzNzU4KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDggQEAKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy9lZmwvUGx1Z2luSW5mb1N0b3JlRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL2VmbC9Q
bHVnaW5Qcm9jZXNzUHJveHlFZmwuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9lZmwv
RG93bmxvYWRFZmwuY3BwCisKICAgICBXZWJQcm9jZXNzL2VmbC9XZWJQcm9jZXNzRWZsLmNwcAog
ICAgIFdlYlByb2Nlc3MvZWZsL1dlYlByb2Nlc3NNYWluRWZsLmNwcAogCkBAIC0xMTYsNyArMTE4
LDYgQEAKICAgICBMSVNUKEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUyAke0xJQlNPVVAyNF9MSUJS
QVJJRVN9KQogICAgIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgICAgICBXZWJQcm9j
ZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAKLSAgICAgICAgV2ViUHJv
Y2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCiAgICAgKQogCiAgICAgQUREX0NV
U1RPTV9UQVJHRVQoZm9yd2FyZGluZy1oZWFkZXJTb3VwCkBAIC0xMzMsNyArMTM0LDYgQEAKICAg
ICBMSVNUKEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUyAke0NVUkxfTElCUkFSSUVTfSkKICAgICBM
SVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICAgICAgV2ViUHJvY2Vzcy9Db29raWVzL2N1
cmwvV2ViQ29va2llTWFuYWdlckN1cmwuY3BwCi0gICAgICAgIFdlYlByb2Nlc3MvRG93bmxvYWRz
L2N1cmwvRG93bmxvYWRDdXJsLmNwcAogICAgICkKIEVORElGICgpCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvZWZsL0Rvd25sb2FkRWZs
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRz
L2VmbC9Eb3dubG9hZEVmbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKwor
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIERvd25sb2FkOjpzdGFydChXZWJQ
YWdlKiBpbml0aWF0aW5nV2ViUGFnZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUoV2ViUGFnZSogaW5pdGlhdGluZ1BhZ2UsIFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNhbmNlbCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEb3dubG9hZDo6cGxhdGZvcm1JbnZh
bGlkYXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERvd25sb2FkOjpk
aWREZWNpZGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sIGFsbG93
T3ZlcndyaXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6
OnBsYXRmb3JtRGlkRmluaXNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IERvd25sb2FkOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFs
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVk
UmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnVzZUNyZWRlbnRpYWwoY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBj
b25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBjcmVkZW50aWFsKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNhbmNl
bEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbC9Eb3dubG9hZEVmbC5jcHAKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>