<?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>51021</bug_id>
          
          <creation_ts>2010-12-14 02:20:07 -0800</creation_ts>
          <short_desc>Add Yarr.h to YARR</short_desc>
          <delta_ts>2011-01-12 06:18:19 -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>JavaScriptCore</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>
          <dependson>52286</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Varga">pvarga</reporter>
          <assigned_to name="Peter Varga">pvarga</assigned_to>
          <cc>abecsi</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>321844</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-12-14 02:20:07 -0800</bug_when>
    <thetext>This modification provides a refactoring in the YARR&apos;s structure:
- Some unnecessary header includes are removed
- The hierarchy of the includes becomes clearer
- The JSRegExp.h offers an interface thus just one header has to be included to call the YARR&apos;s common functions (eg.: compile, execute)
- Most of the common constants of YARR are in one header

I think this modification makes the YARR structure clearer and to use YARR from outside of JSC you only need to include one header (eg.: in WebCore).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321849</commentid>
    <comment_count>1</comment_count>
      <attachid>76520</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2010-12-14 02:44:47 -0800</bug_when>
    <thetext>Created attachment 76520
proposed patch

This patch causes a style error:

JavaScriptCore/yarr/RegexCompiler.cpp:29:  Found other header before a header this file implements. 
Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]

The reason is the RegexCompiler.h contained just the decleration of the compileRegex() function. I move it to the 
new header: JSRegExp.h. I don&apos;t want to move any line from the RegexCompiler.cpp to the RegexCompiler.h 
therefore it became unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326383</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-12-23 17:19:38 -0800</bug_when>
    <thetext>Hi Peter,

I can see a role for a new header here, and we may want to move some of the existing code, but I&apos;m not sure this change is quite right.

(1) Moving the compile method irks me, because I think we should just delete this – it&apos;s only ever, and must always be, called on a new pattern – it should just be a part of pattern object construction! (and the pattern object only exists in order to compile the regexp).  The call to compile (i.e. populate the RegexPattern object) should just be a part of RegexPattern construction.

I hope you don&apos;t mind, but I think I&apos;m going to fix this, which will conflict with this patch.

(2) The new file name seems a little inconsistent with convention (not that we&apos;re completely consistent unfortunately :-/ ).  We most commonly apply the JS prefix to garbage collected JS object types, for example JSObject, JSString, JSArray.  Yarr should ideally be usable as a standalone library – as pcre is, for uses other than within javascript (i.e., possibly used form WebCore, replacing current PCRE use?), and with no particular connection to JS other than the fact the engine implements the JS regex syntax.  As such, I think it may be best to avoid JS in the file names or interface.  Since the rest of the files in the directory currently use the name Regex, I&apos;d suggest a new header containing common types could just be RegexTypes.h, or maybe just Regex.h.

However it&apos;s possible that it was a mistake to use the term Regex in all these class &amp; filenames (since JS generally uses the term RegExp).  It might be less confusing to rename the existing files &amp; classes, replacing &quot;Regex&quot; with &quot;RegExp&quot;, or with &quot;Yarr&quot;.  If we did so, then I imagine a new header would want to be &quot;Yarr.h&quot;, &quot;YarrTypes.h&quot;, or &quot;RegexTypes.h&quot;

cheers,
G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326394</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-12-23 17:42:02 -0800</bug_when>
    <thetext>Peter,

I&apos;ve removed RegexCompiler.cpp/.h in r74600, and made RegexPattern&apos;s constructor implicitly populate itself.

cheers,
G.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328990</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-01-04 07:33:37 -0800</bug_when>
    <thetext>Hi Gavin,

I was thinking about your advices to a potential renaming issue.

I think the most sensible solution is replace the &quot;Regex&quot; prefix with &quot;Yarr&quot;, thus I created a bug report: https://bugs.webkit.org/show_bug.cgi?id=51872

If this solution is acceptable then the new header name should be &quot;Yarr.h&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332311</commentid>
    <comment_count>5</comment_count>
      <attachid>78524</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-01-11 06:44:24 -0800</bug_when>
    <thetext>Created attachment 78524
proposed patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332572</commentid>
    <comment_count>6</comment_count>
      <attachid>78524</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-01-11 12:43:00 -0800</bug_when>
    <thetext>Comment on attachment 78524
proposed patch v2

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332586</commentid>
    <comment_count>7</comment_count>
      <attachid>78524</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-11 12:59:22 -0800</bug_when>
    <thetext>Comment on attachment 78524
proposed patch v2

Rejecting attachment 78524 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;apply-...&quot; exit_code: 2
Last 500 characters of output:
re/yarr/YarrPattern.cpp
patching file Source/JavaScriptCore/yarr/YarrPattern.h
(Stripping trailing CRs from patch.)
patching file Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj
Hunk #1 FAILED at 1658.
1 out of 1 hunk FAILED -- saving rejects to file Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Gavin Barraclough&apos;, u&apos;...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/7343376</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332979</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-01-12 02:34:32 -0800</bug_when>
    <thetext>Landed in r75595.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333000</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-12 03:09:58 -0800</bug_when>
    <thetext>It was rolled out, because it broke fast/regex/pcre-test-1.html:
-PASS regex110.exec(input0); is results
+FAIL regex110.exec(input0); should be abcdefghijkllS,a,b,c,d,e,f,g,h,i,j,k,l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333005</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-01-12 03:20:04 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; It was rolled out, because it broke fast/regex/pcre-test-1.html:
&gt; -PASS regex110.exec(input0); is results
&gt; +FAIL regex110.exec(input0); should be abcdefghijkllS,a,b,c,d,e,f,g,h,i,j,k,l.

-PASS regex110.exec(input0); is results
+FAIL regex110.exec(input0); should be abcdefghijkllS,a,b,c,d,e,f,g,h,i,j,k,l. Was null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333037</commentid>
    <comment_count>11</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-01-12 04:58:27 -0800</bug_when>
    <thetext>The removing of numSubpatterns variable from the YarrPattern::compile() function brokes the
fast/regex/pcre-test-1.html.

I fixed it at r75602.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76520</attachid>
            <date>2010-12-14 02:44:47 -0800</date>
            <delta_ts>2011-01-11 06:44:24 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>yarr-refactoring.patch</filename>
            <type>text/plain</type>
            <size>19445</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBiMjZhOTA1Li44ZDc1NzA4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTAtMTItMTQgIFBldGVyIFZhcmdhICA8cHZhcmdhQGluZi51LXN6ZWdlZC5odT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSlNSZWdF
eHAuaCB0byBZQVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTAyMQorCisgICAgICAgIE1vdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGNvbXBpbGVSZWdl
eCgpIGZ1bmN0aW9uIHRvIHRoZSBKU1JlZ0V4cC5oIHRodXMKKyAgICAgICAgdGhlIFJlZ2V4Q29t
cGlsZXIuaCBiZWNhbWUgdW5uZWNlc3NhcnkgdGhlcmVmb3JlIHJlbW92ZSBpdC4KKyAgICAgICAg
TW92ZSBvdGhlciBjb21tb24gY29uc3RhbnRzIGFuZCBmdW5jdGlvbnMgZnJvbSBZQVJSJ3MgZGlm
ZmVyZW50IGZpbGVzCisgICAgICAgIHRvIEpTUmVnRXhwLmguCisgICAgICAgIFVzZSBKU1JlZ0V4
cC5oIGhlYWRlciBpbnN0ZWFkIG9mIGluY2x1ZGluZyBvdGhlciBZQVJSIGhlYWRlcnMgd2hlcmUg
aXQKKyAgICAgICAgaXMgcG9zc2libGUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cC5jcHA6CisgICAgICAgICogeWFyci9KU1JlZ0V4cC5oOiBBZGRlZC4KKyAgICAgICAg
KiB5YXJyL1JlZ2V4Q29tcGlsZXIuY3BwOgorICAgICAgICAqIHlhcnIvUmVnZXhDb21waWxlci5o
OiBSZW1vdmVkLgorICAgICAgICAqIHlhcnIvUmVnZXhJbnRlcnByZXRlci5jcHA6CisgICAgICAg
ICogeWFyci9SZWdleEludGVycHJldGVyLmg6CisgICAgICAgICogeWFyci9SZWdleEpJVC5jcHA6
CisgICAgICAgIChKU0M6OllhcnI6OmppdENvbXBpbGVSZWdleCk6CisgICAgICAgIChKU0M6Ollh
cnI6OmV4ZWN1dGVSZWdleCk6CisgICAgICAgICogeWFyci9SZWdleEpJVC5oOgorICAgICAgICAq
IHlhcnIvUmVnZXhQYXR0ZXJuLmg6CisKIDIwMTAtMTItMTMgIENhbWVyb24gWndhcmljaCAgPHp3
YXJpY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdo
LgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0gYi9KYXZhU2NyaXB0
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4OWY5YWI3Li40NjQwODU5IDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNTQzLDggKzU0Myw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAog
CUphdmFTY3JpcHRDb3JlL3d0Zi9WTVRhZ3MuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1dURlRo
cmVhZERhdGEuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvV1RGVGhyZWFkRGF0YS5oIFwKKwlK
YXZhU2NyaXB0Q29yZS95YXJyL0pTUmVnRXhwLmggXAogCUphdmFTY3JpcHRDb3JlL3lhcnIvUmVn
ZXhDb21waWxlci5jcHAgXAotCUphdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhDb21waWxlci5oIFwK
IAlKYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwIFwKIAlKYXZhU2NyaXB0
Q29yZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuaCBcCiAJSmF2YVNjcmlwdENvcmUveWFyci9SZWdl
eEpJVC5jcHAgXApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aSBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggNjc2YTM1ZC4uODE2
OTY2OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysg
Yi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC00ODcsOCArNDg3LDggQEAK
ICAgICAgICAgICAgICd3dGYvd2luL01haW5UaHJlYWRXaW4uY3BwJywKICAgICAgICAgICAgICd3
dGYvd2luL093blB0cldpbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi93eC9NYWluVGhyZWFkV3gu
Y3BwJywKKyAgICAgICAgICAgICd5YXJyL0pTUmVnRXhwLmgnLAogICAgICAgICAgICAgJ3lhcnIv
UmVnZXhDb21waWxlci5jcHAnLAotICAgICAgICAgICAgJ3lhcnIvUmVnZXhDb21waWxlci5oJywK
ICAgICAgICAgICAgICd5YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwJywKICAgICAgICAgICAgICd5
YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuaCcsCiAgICAgICAgICAgICAneWFyci9SZWdleEpJVC5jcHAn
LApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOWYyMTRiMi4uZWEzOTgyOSAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yNTUsNyArMjU1LDYgQEAKIAkJODZFMTE2QjEwRkU3NUFDODAwQjUxMkJDIC8qIENvZGVMb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZF
MTE2QjAwRkU3NUFDODAwQjUxMkJDIC8qIENvZGVMb2NhdGlvbi5oICovOyB9OwogCQk4NkU4NTUz
OTExMUI5OTY4MDAxQUY1MUUgLyogSlNTdHJpbmdCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkU4NTUzODExMUI5OTY4MDAxQUY1MUUgLyog
SlNTdHJpbmdCdWlsZGVyLmggKi87IH07CiAJCTg2RUFDNDk1MEY5M0U4RDEwMDhFQzk0OCAvKiBS
ZWdleENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg2RUFDNDhEMEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleENvbXBpbGVyLmNwcCAqLzsg
fTsKLQkJODZFQUM0OTYwRjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4Q29tcGlsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUFDNDhFMEY5M0U4RDEw
MDhFQzk0OCAvKiBSZWdleENvbXBpbGVyLmggKi87IH07CiAJCTg2RUFDNDk3MEY5M0U4RDEwMDhF
Qzk0OCAvKiBSZWdleEludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUFDNDhGMEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleEludGVy
cHJldGVyLmNwcCAqLzsgfTsKIAkJODZFQUM0OTgwRjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4SW50
ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RUFDNDkwMEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleEludGVycHJldGVyLmggKi87IH07CiAJ
CTg2RUFDNDk5MEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleEpJVC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVBQzQ5MTBGOTNFOEQxMDA4RUM5NDgg
LyogUmVnZXhKSVQuY3BwICovOyB9OwpAQCAtNzQ5LDYgKzc0OCw3IEBACiAJCTQ0MEI3QUVEMEZB
RjdGQ0IwMDczMzIzRSAvKiBPd25QdHJDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gT3duUHRyQ29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
OTA5N0VFMEY4RjgxQjUwMDc2QTMyNyAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRERDQ4NTIwRkFFQTg1MDAwRDZCNEVCIC8qIFBhc3NP
d25QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzc093blB0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NTk5RTk1RjEyQjY2NjMxMDA4MTMzNDYgLyog
SlNSZWdFeHAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNSZWdFeHAuaDsg
cGF0aCA9IHlhcnIvSlNSZWdFeHAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVF
MTJEODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBqc2MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CiAJCTUxMUZDNEM3MTE3RUUyM0QwMDQyNTI3MiAvKiBN
RDUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTUQ1LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRkM0Q0ExMTdFRTJBODAwNDI1MjcyIC8qIE1E
NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNRDUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTg3MSw3ICs4NzEsNiBAQAogCQk4NkUxMTZCMDBGRTc1QUM4MDBC
NTEyQkMgLyogQ29kZUxvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvZGVMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkU4NTUzODEx
MUI5OTY4MDAxQUY1MUUgLyogSlNTdHJpbmdCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU3RyaW5nQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NkVBQzQ4RDBGOTNFOEQxMDA4RUM5NDggLyogUmVnZXhDb21waWxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZWdleENvbXBpbGVyLmNwcDsgcGF0aCA9
IHlhcnIvUmVnZXhDb21waWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg2
RUFDNDhFMEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleENvbXBpbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlZ2V4Q29tcGlsZXIuaDsgcGF0aCA9IHlhcnIvUmVnZXhDb21w
aWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkVBQzQ4RjBGOTNFOEQxMDA4
RUM5NDggLyogUmVnZXhJbnRlcnByZXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSZWdleEludGVycHJldGVyLmNwcDsgcGF0aCA9IHlhcnIvUmVnZXhJbnRlcnBy
ZXRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2RUFDNDkwMEY5M0U4RDEw
MDhFQzk0OCAvKiBSZWdleEludGVycHJldGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFJlZ2V4SW50ZXJwcmV0ZXIuaDsgcGF0aCA9IHlhcnIvUmVnZXhJbnRlcnByZXRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkVBQzQ5MTBGOTNFOEQxMDA4RUM5NDgg
LyogUmVnZXhKSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVn
ZXhKSVQuY3BwOyBwYXRoID0geWFyci9SZWdleEpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODgxLDggKzE4ODAsOCBAQAogCQk4NkVBQzQ4QzBGOTNFOEI5MDA4RUM5NDgg
LyogeWFyciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NDU5OUU5NUYxMkI2NjYzMTAwODEzMzQ2IC8qIEpTUmVnRXhwLmggKi8sCiAJCQkJODZFQUM0OEQw
RjkzRThEMTAwOEVDOTQ4IC8qIFJlZ2V4Q29tcGlsZXIuY3BwICovLAotCQkJCTg2RUFDNDhFMEY5
M0U4RDEwMDhFQzk0OCAvKiBSZWdleENvbXBpbGVyLmggKi8sCiAJCQkJODZFQUM0OEYwRjkzRThE
MTAwOEVDOTQ4IC8qIFJlZ2V4SW50ZXJwcmV0ZXIuY3BwICovLAogCQkJCTg2RUFDNDkwMEY5M0U4
RDEwMDhFQzk0OCAvKiBSZWdleEludGVycHJldGVyLmggKi8sCiAJCQkJODZFQUM0OTEwRjkzRThE
MTAwOEVDOTQ4IC8qIFJlZ2V4SklULmNwcCAqLywKQEAgLTIyNjUsNyArMjI2NCw2IEBACiAJCQkJ
OTBEMzQ2OUMwRTI4NTI4MDAwOTQ5MkVFIC8qIFJlZkNvdW50ZWRMZWFrQ291bnRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEM0NTgwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZlB0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEM0NTkwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZlB0ckhhc2hNYXAu
aCBpbiBIZWFkZXJzICovLAotCQkJCTg2RUFDNDk2MEY5M0U4RDEwMDhFQzk0OCAvKiBSZWdleENv
bXBpbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVBQzQ5ODBGOTNFOEQxMDA4RUM5NDggLyog
UmVnZXhJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQUM0OUEwRjkzRThEMTAw
OEVDOTQ4IC8qIFJlZ2V4SklULmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1QTBFMTZGNUNE
MDBCMzQ0NjAgLyogUmVnRXhwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
LmNwcAppbmRleCA5YjJlM2YzLi5iZTc1NjQzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3Bw
CkBAIC0yMiwxOCArMjIsMTUgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJl
Z0V4cC5oIgorCiAjaW5jbHVkZSAiTGV4ZXIuaCIKKyNpbmNsdWRlICJ5YXJyL0pTUmVnRXhwLmgi
CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25BcnJh
eVB0ci5oPgogCi0jaW5jbHVkZSAieWFyci9SZWdleENvbXBpbGVyLmgiCi0jaW5jbHVkZSAieWFy
ci9SZWdleEpJVC5oIgotI2luY2x1ZGUgInlhcnIvUmVnZXhJbnRlcnByZXRlci5oIgotI2luY2x1
ZGUgInlhcnIvUmVnZXhQYXR0ZXJuLmgiCi0KIG5hbWVzcGFjZSBKU0MgewogCiBzdHJ1Y3QgUmVn
RXhwUmVwcmVzZW50YXRpb24gewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUveWFyci9KU1Jl
Z0V4cC5oIGIvSmF2YVNjcmlwdENvcmUveWFyci9KU1JlZ0V4cC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmJkMjIxODQKLS0tIC9kZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0
Q29yZS95YXJyL0pTUmVnRXhwLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgUGV0ZXIgVmFyZ2EgKHB2YXJnYUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9m
IFN6ZWdlZAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTUmVnRXhw
X2gKKyNkZWZpbmUgSlNSZWdFeHBfaAorCisjaW5jbHVkZSAieWFyci9SZWdleEludGVycHJldGVy
LmgiCisjaW5jbHVkZSAieWFyci9SZWdleEpJVC5oIgorI2luY2x1ZGUgInlhcnIvUmVnZXhQYXR0
ZXJuLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBZYXJyIHsKKworI2RlZmluZSBSZWdleFN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZv
UGF0dGVybkNoYXJhY3RlciAxIC8vIE9ubHkgZm9yICFmaXhlZCBxdWFudGlmaWVycy4KKyNkZWZp
bmUgUmVnZXhTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb0NoYXJhY3RlckNsYXNzIDEgLy8gT25s
eSBmb3IgIWZpeGVkIHF1YW50aWZpZXJzLgorI2RlZmluZSBSZWdleFN0YWNrU3BhY2VGb3JCYWNr
VHJhY2tJbmZvQmFja1JlZmVyZW5jZSAyCisjZGVmaW5lIFJlZ2V4U3RhY2tTcGFjZUZvckJhY2tU
cmFja0luZm9BbHRlcm5hdGl2ZSAxIC8vIE9uZSBwZXIgYWx0ZXJuYXRpdmUuCisjZGVmaW5lIFJl
Z2V4U3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uIDEKKyNk
ZWZpbmUgUmVnZXhTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzT25jZSAxIC8v
IE9ubHkgZm9yICFmaXhlZCBxdWFudGlmaWVycy4KKyNkZWZpbmUgUmVnZXhTdGFja1NwYWNlRm9y
QmFja1RyYWNrSW5mb1BhcmVudGhlc2VzVGVybWluYWwgMQorI2RlZmluZSBSZWdleFN0YWNrU3Bh
Y2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXMgMgorCisvLyBUaGUgYmVsb3cgbGltaXQgcmVz
dHJpY3RzIHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2ZSIgbWF0Y2ggY2FsbHMgaW4gb3JkZXIgdG8K
Ky8vIGF2b2lkIHNwZW5kaW5nIGV4cG9uZW50aWFsIHRpbWUgb24gY29tcGxleCByZWd1bGFyIGV4
cHJlc3Npb25zLgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1hdGNoTGltaXQgPSAxMDAwMDAwOwor
CitlbnVtIEpTUmVnRXhwUmVzdWx0IHsKKyAgICBKU1JlZ0V4cE1hdGNoID0gMSwKKyAgICBKU1Jl
Z0V4cE5vTWF0Y2ggPSAwLAorICAgIEpTUmVnRXhwRXJyb3JOb01hdGNoID0gLTEsCisgICAgSlNS
ZWdFeHBFcnJvckhpdExpbWl0ID0gLTIsCisgICAgSlNSZWdFeHBFcnJvck5vTWVtb3J5ID0gLTMs
CisgICAgSlNSZWdFeHBFcnJvckludGVybmFsID0gLTQKK307CisKK2NvbnN0IGNoYXIqIGNvbXBp
bGVSZWdleChjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBSZWdleFBhdHRlcm4mIHBhdHRl
cm4pOworCitQYXNzT3duUHRyPEJ5dGVjb2RlUGF0dGVybj4gYnl0ZUNvbXBpbGVSZWdleChSZWdl
eFBhdHRlcm4mIHBhdHRlcm4sIEJ1bXBQb2ludGVyQWxsb2NhdG9yKiBhbGxvY2F0b3IpOworaW50
IGludGVycHJldFJlZ2V4KEJ5dGVjb2RlUGF0dGVybiogcmVnZXgsIGNvbnN0IFVDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQpOworCisjaWYg
RU5BQkxFKFlBUlJfSklUKQordm9pZCBqaXRDb21waWxlUmVnZXgoUmVnZXhQYXR0ZXJuJiBwYXR0
ZXJuLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFJlZ2V4Q29kZUJsb2NrJiBqaXRPYmplY3Qp
OworaW50IGV4ZWN1dGVSZWdleChSZWdleENvZGVCbG9jayYgaml0T2JqZWN0LCBjb25zdCBVQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0KTsK
KyNlbmRpZgorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgorCisjZW5kaWYgLy8gSlNSZWdF
eHBfaAorCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4Q29tcGlsZXIuY3Bw
IGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleENvbXBpbGVyLmNwcAppbmRleCAzYTc2MDgzLi42
YTM3ZjMxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4Q29tcGlsZXIuY3Bw
CisrKyBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhDb21waWxlci5jcHAKQEAgLTI1LDEwICsy
NSw4IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlZ2V4Q29tcGls
ZXIuaCIKIAotI2luY2x1ZGUgIlJlZ2V4SW50ZXJwcmV0ZXIuaCIKLSNpbmNsdWRlICJSZWdleFBh
dHRlcm4uaCIKKyNpbmNsdWRlICJKU1JlZ0V4cC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdURjsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3lhcnIv
UmVnZXhDb21waWxlci5oIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleENvbXBpbGVyLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5OTM3NGUuLjAwMDAwMDAKLS0tIGEvSmF2YVNj
cmlwdENvcmUveWFyci9SZWdleENvbXBpbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgUmVnZXhDb21waWxlcl9oCi0jZGVmaW5lIFJlZ2V4Q29tcGlsZXJfaAotCi0jaW5jbHVkZSAi
UmVnZXhQYXJzZXIuaCIKLSNpbmNsdWRlICJSZWdleFBhdHRlcm4uaCIKLSNpbmNsdWRlIDx3dGYv
dW5pY29kZS9Vbmljb2RlLmg+Ci0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7Ci0K
LWNvbnN0IGNoYXIqIGNvbXBpbGVSZWdleChjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBS
ZWdleFBhdHRlcm4mIHBhdHRlcm4pOwotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgotCi0j
ZW5kaWYgLy8gUmVnZXhDb21waWxlcl9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS95YXJy
L1JlZ2V4SW50ZXJwcmV0ZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEludGVycHJl
dGVyLmNwcAppbmRleCA5OTAwY2JlLi45M2ZiZDM1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1JlZ2V4SW50ZXJwcmV0ZXIuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVn
ZXhJbnRlcnByZXRlci5jcHAKQEAgLTI3LDggKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZWdleEludGVycHJldGVyLmgiCiAKLSNpbmNsdWRlICJSZWdleENvbXBpbGVy
LmgiCi0jaW5jbHVkZSAiUmVnZXhQYXR0ZXJuLmgiCisjaW5jbHVkZSAiSlNSZWdFeHAuaCIKICNp
bmNsdWRlIDx3dGYvQnVtcFBvaW50ZXJBbGxvY2F0b3IuaD4KIAogI2lmbmRlZiBOREVCVUcKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhJbnRlcnByZXRlci5oIGIvSmF2YVNj
cmlwdENvcmUveWFyci9SZWdleEludGVycHJldGVyLmgKaW5kZXggMGZkOGE1Ny4uMzQ0MzYyNyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEludGVycHJldGVyLmgKKysrIGIv
SmF2YVNjcmlwdENvcmUveWFyci9SZWdleEludGVycHJldGVyLmgKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpZm5kZWYgUmVnZXhJbnRlcnByZXRlcl9oCiAjZGVmaW5lIFJlZ2V4SW50ZXJwcmV0ZXJfaAog
Ci0jaW5jbHVkZSAiUmVnZXhQYXJzZXIuaCIKICNpbmNsdWRlICJSZWdleFBhdHRlcm4uaCIKICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KQEAgLTM4LDIxICszNyw2IEBAIHVzaW5nIFdURjo6QnVtcFBvaW50ZXJBbGxvY2F0b3I7CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAKLS8vIFRPRE8gbW92ZSB0aGUgbWF0
Y2hMaW1pdCBjb25zdGFudCBhbmQgdGhlIEpTUmVnRXhwUmVzdWx0IGVudW0gdG8gdGhlIEpTUmVn
RXhwLmggd2hlbiBwY3JlIGlzIHJlbW92ZWQuCi0KLS8vIFRoZSBiZWxvdyBsaW1pdCByZXN0cmlj
dHMgdGhlIG51bWJlciBvZiAicmVjdXJzaXZlIiBtYXRjaCBjYWxscyBpbiBvcmRlciB0bwotLy8g
YXZvaWQgc3BlbmRpbmcgZXhwb25lbnRpYWwgdGltZSBvbiBjb21wbGV4IHJlZ3VsYXIgZXhwcmVz
c2lvbnMuCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF0Y2hMaW1pdCA9IDEwMDAwMDA7Ci0KLWVu
dW0gSlNSZWdFeHBSZXN1bHQgewotICAgIEpTUmVnRXhwTWF0Y2ggPSAxLAotICAgIEpTUmVnRXhw
Tm9NYXRjaCA9IDAsCi0gICAgSlNSZWdFeHBFcnJvck5vTWF0Y2ggPSAtMSwKLSAgICBKU1JlZ0V4
cEVycm9ySGl0TGltaXQgPSAtMiwKLSAgICBKU1JlZ0V4cEVycm9yTm9NZW1vcnkgPSAtMywKLSAg
ICBKU1JlZ0V4cEVycm9ySW50ZXJuYWwgPSAtNAotfTsKLQogY2xhc3MgQnl0ZURpc2p1bmN0aW9u
OwogCiBzdHJ1Y3QgQnl0ZVRlcm0gewpAQCAtMzczLDkgKzM1Nyw2IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPENoYXJhY3RlckNsYXNzKj4gbV91c2VyQ2hhcmFjdGVyQ2xhc3NlczsKIH07CiAKLVBh
c3NPd25QdHI8Qnl0ZWNvZGVQYXR0ZXJuPiBieXRlQ29tcGlsZVJlZ2V4KFJlZ2V4UGF0dGVybiYg
cGF0dGVybiwgQnVtcFBvaW50ZXJBbGxvY2F0b3IqKTsKLWludCBpbnRlcnByZXRSZWdleChCeXRl
Y29kZVBhdHRlcm4qIHZfcmVnZXgsIGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQpOwotCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
WWFycgogCiAjZW5kaWYgLy8gUmVnZXhJbnRlcnByZXRlcl9oCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1JlZ2V4SklULmNwcCBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhKSVQu
Y3BwCmluZGV4IDllNTYyZjcuLjU4MTFjMzcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3lh
cnIvUmVnZXhKSVQuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhKSVQuY3BwCkBA
IC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJBU0NJSUNUeXBlLmgiCiAjaW5jbHVkZSAiSlNH
bG9iYWxEYXRhLmgiCisjaW5jbHVkZSAiSlNSZWdFeHAuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVy
LmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLSNpbmNsdWRlICJSZWdleENvbXBpbGVy
LmgiCiAKICNpZiBFTkFCTEUoWUFSUl9KSVQpCiAKQEAgLTM5LDggKzM5LDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdURjsKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAKIGNsYXNzIFJl
Z2V4R2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7Ci0gICAgZnJpZW5kIHZvaWQg
aml0Q29tcGlsZVJlZ2V4KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUmVnZXhDb2RlQmxvY2sm
IGppdE9iamVjdCwgY29uc3QgVVN0cmluZyYgcGF0dGVybiwgdW5zaWduZWQmIG51bVN1YnBhdHRl
cm5zLCBjb25zdCBjaGFyKiYgZXJyb3IsIGJvb2wgaWdub3JlQ2FzZSwgYm9vbCBtdWx0aWxpbmUp
OwotCiAjaWYgQ1BVKEFSTSkKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1dCA9IEFS
TVJlZ2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5kZXggPSBBUk1S
ZWdpc3RlcnM6OnIxOwpAQCAtMjIwMiwxMCArMjIwMCwxMyBAQCBwcml2YXRlOgogCiB2b2lkIGpp
dENvbXBpbGVSZWdleChSZWdleFBhdHRlcm4mIHBhdHRlcm4sIEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSwgUmVnZXhDb2RlQmxvY2smIGppdE9iamVjdCkKIHsKLSAgICBSZWdleEdlbmVyYXRvciBn
ZW5lcmF0b3IocGF0dGVybik7Ci0gICAgZ2VuZXJhdG9yLmNvbXBpbGUoZ2xvYmFsRGF0YSwgaml0
T2JqZWN0KTsKKyAgICBSZWdleEdlbmVyYXRvcihwYXR0ZXJuKS5jb21waWxlKGdsb2JhbERhdGEs
IGppdE9iamVjdCk7CiB9CiAKK2ludCBleGVjdXRlUmVnZXgoUmVnZXhDb2RlQmxvY2smIGppdE9i
amVjdCwgY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBpbnQqIG91dHB1dCkKK3sKKyAgICByZXR1cm4gaml0T2JqZWN0LmV4ZWN1dGUoaW5wdXQsIHN0
YXJ0LCBsZW5ndGgsIG91dHB1dCk7Cit9CiAKIH19CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3lhcnIvUmVnZXhKSVQuaCBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhKSVQuaAppbmRl
eCA1ZTNkY2ExLi4zNGMxYWRmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4
SklULmgKKysrIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5oCkBAIC0yOSw3ICsyOSw2
IEBACiAjaWYgRU5BQkxFKFlBUlJfSklUKQogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIK
LSNpbmNsdWRlICJSZWdleFBhdHRlcm4uaCIKICNpbmNsdWRlICJVU3RyaW5nLmgiCiAKICNpZiBD
UFUoWDg2KSAmJiAhQ09NUElMRVIoTVNWQykKQEAgLTc2LDEzICs3NSw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX25lZWRGYWxsQmFjazsKIH07CiAKLXZvaWQgaml0Q29tcGlsZVJlZ2V4KFJlZ2V4
UGF0dGVybiYgcGF0dGVybiwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBSZWdleENvZGVCbG9j
ayYgaml0T2JqZWN0KTsKLQotaW5saW5lIGludCBleGVjdXRlUmVnZXgoUmVnZXhDb2RlQmxvY2sm
IGppdE9iamVjdCwgY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
bGVuZ3RoLCBpbnQqIG91dHB1dCkKLXsKLSAgICByZXR1cm4gaml0T2JqZWN0LmV4ZWN1dGUoaW5w
dXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCk7Ci19Ci0KIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpZ
YXJyCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleFBhdHRl
cm4uaCBiL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVnZXhQYXR0ZXJuLmgKaW5kZXggNzRlZTg5Ny4u
ODUzNjA0YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleFBhdHRlcm4uaAor
KysgYi9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4UGF0dGVybi5oCkBAIC0yNywyMCArMjcsMTIg
QEAKICNpZm5kZWYgUmVnZXhQYXR0ZXJuX2gKICNkZWZpbmUgUmVnZXhQYXR0ZXJuX2gKIAorI2lu
Y2x1ZGUgIlJlZ2V4UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBZYXJy
IHsKIAotI2RlZmluZSBSZWdleFN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGF0dGVybkNoYXJh
Y3RlciAxIC8vIE9ubHkgZm9yICFmaXhlZCBxdWFudGlmaWVycy4KLSNkZWZpbmUgUmVnZXhTdGFj
a1NwYWNlRm9yQmFja1RyYWNrSW5mb0NoYXJhY3RlckNsYXNzIDEgLy8gT25seSBmb3IgIWZpeGVk
IHF1YW50aWZpZXJzLgotI2RlZmluZSBSZWdleFN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvQmFj
a1JlZmVyZW5jZSAyCi0jZGVmaW5lIFJlZ2V4U3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9BbHRl
cm5hdGl2ZSAxIC8vIE9uZSBwZXIgYWx0ZXJuYXRpdmUuCi0jZGVmaW5lIFJlZ2V4U3RhY2tTcGFj
ZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uIDEKLSNkZWZpbmUgUmVnZXhT
dGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzT25jZSAxIC8vIE9ubHkgZm9yICFm
aXhlZCBxdWFudGlmaWVycy4KLSNkZWZpbmUgUmVnZXhTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5m
b1BhcmVudGhlc2VzVGVybWluYWwgMQotI2RlZmluZSBSZWdleFN0YWNrU3BhY2VGb3JCYWNrVHJh
Y2tJbmZvUGFyZW50aGVzZXMgMgotCiBzdHJ1Y3QgUGF0dGVybkRpc2p1bmN0aW9uOwogCiBzdHJ1
Y3QgQ2hhcmFjdGVyUmFuZ2UgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2oNCmluZGV4IDIwMjc0MmQuLmZhOWMyZTEgMTAwNjQ0DQotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qDQorKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qDQpAQCAtMTY1MiwxMSArMTY1MiwxMSBA
QA0KIAkJCU5hbWU9InlhcnIiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cLi5ceWFyclxSZWdleENvbXBpbGVyLmNwcCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx5
YXJyXEpTUmVnRXhwLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlx5YXJyXFJlZ2V4Q29tcGlsZXIuaCINCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlx5YXJyXFJlZ2V4Q29tcGlsZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78524</attachid>
            <date>2011-01-11 06:44:24 -0800</date>
            <delta_ts>2011-01-12 02:35:14 -0800</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>add-yarr-h.patch</filename>
            <type>text/plain</type>
            <size>17701</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ0ZDIxZjcuLjRkODNiOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTAxLTExICBQZXRlciBWYXJnYSAg
PHB2YXJnYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBZYXJyLmggdG8gWUFSUgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTEwMjEKKworICAgICAgICBNb3ZlIG90aGVyIGNvbW1v
biBjb25zdGFudHMgYW5kIGZ1bmN0aW9ucyBmcm9tIFlBUlIncyBkaWZmZXJlbnQgZmlsZXMKKyAg
ICAgICAgdG8gWWFyci5oLgorICAgICAgICBVc2UgWWFyci5oIGhlYWRlciBpbnN0ZWFkIG9mIGlu
Y2x1ZGluZyBvdGhlciBZQVJSIGhlYWRlcnMgd2hlcmUgaXQKKyAgICAgICAgaXMgcG9zc2libGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgICogeWFyci9ZYXJyLmg6IEFkZGVkLgorICAgICAg
ICAqIHlhcnIvWWFyckludGVycHJldGVyLmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJJbnRlcnBy
ZXRlci5oOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6
OmppdENvbXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpleGVjdXRlKToKKyAgICAgICAgKiB5
YXJyL1lhcnJKSVQuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJQYXJzZXIuaDoKKyAgICAgICAgKiB5
YXJyL1lhcnJQYXR0ZXJuLmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyclBhdHRlcm46OmNv
bXBpbGUpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyUGF0dGVybjo6WWFyclBhdHRlcm4pOgor
ICAgICAgICAqIHlhcnIvWWFyclBhdHRlcm4uaDoKKwogMjAxMS0wMS0xMCAgRGFuaWVsIEJhdGVz
ICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCBhNmMxZGI0
Li5mYTMwMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpA
QCAtNDk0LDYgKzQ5NCw3IEBACiAgICAgICAgICAgICAnd3RmL3dpbi9NYWluVGhyZWFkV2luLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL3dpbi9Pd25QdHJXaW4uY3BwJywKICAgICAgICAgICAgICd3
dGYvd3gvTWFpblRocmVhZFd4LmNwcCcsCisgICAgICAgICAgICAneWFyci9ZYXJyLmgnCiAgICAg
ICAgICAgICAneWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwJywKICAgICAgICAgICAgICd5YXJyL1lh
cnJJbnRlcnByZXRlci5oJywKICAgICAgICAgICAgICd5YXJyL1lhcnJKSVQuY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTc3ODAzNi4uN2EyZGRmNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE4OSw2ICsxODksNyBAQAogCQk0MTM1OUNGNzBGREQ4OUNC
MDAyMDYxODAgLyogRGF0ZU1hdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMzU5Q0Y1MEZERDg5Q0IwMDIwNjE4MCAvKiBEYXRlTWF0aC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0MDlEODQ3MEZB
RjgwQTIwMDUyM0I4NyAvKiBPd25QdHJDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MEI3QUVEMEZBRjdGQ0IwMDczMzIzRSAvKiBPd25QdHJD
b21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0NERENDg1MzBGQUVBODUwMDBENkI0RUIgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRERDQ4NTIwRkFFQTg1MDAwRDZCNEVC
IC8qIFBhc3NPd25QdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUxNTM5QjgxMkRDOTk0NTAwRUY3
QUM0IC8qIFlhcnIuaCAqLzsgfTsKIAkJNTExRkM0QzkxMTdFRTI4NzAwNDI1MjcyIC8qIE1ENS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGQzRD
NzExN0VFMjNEMDA0MjUyNzIgLyogTUQ1LmNwcCAqLzsgfTsKIAkJNTExRkM0Q0IxMTdFRTJBODAw
NDI1MjcyIC8qIE1ENS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTExRkM0Q0ExMTdFRTJBODAwNDI1MjcyIC8qIE1ENS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMzVGQUYyMTJEMjZBQ0UwMDNDMDgz
QiAvKiBEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTM1RkFENTEyRDI2ODU2MDAzQzA4M0IgLyogRGVjb2Rlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03NjQsNiArNzY1LDcgQEAKIAkJ
NDQwQjdBRUQwRkFGN0ZDQjAwNzMzMjNFIC8qIE93blB0ckNvbW1vbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPd25QdHJDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NERENDg1MjBGQUVBODUwMDBENkI0
RUIgLyogUGFzc093blB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXNz
T3duUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ1MTUzOUI4MTJEQzk5NDUw
MEVGN0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFlhcnIu
aDsgcGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NUUx
MkQ4ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gNDsgfTsKIAkJNTExRkM0QzcxMTdFRTIzRDAwNDI1MjcyIC8qIE1E
NS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNRDUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGQzRDQTExN0VFMkE4MDA0MjUyNzIgLyogTUQ1
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1ENS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTkwOSw2ICsxOTExLDcgQEAKIAkJODZFQUM0OEMwRjkzRThCOTAw
OEVDOTQ4IC8qIHlhcnIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTQ1MTUzOUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi8sCiAJCQkJODY3MDRC
N0QxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5jcHAgKi8sCiAJCQkJODY3MDRC
N0UxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oICovLAogCQkJCTg2NzA0QjdG
MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmNwcCAqLywKQEAgLTIzOTcsNiArMjQwMCw3IEBA
CiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg2NzA0Qjg4MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJyUGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NjcwNEI4QTEyREJBMzM3MDBBOUZFN0IgLyogWWFyclBhdHRlcm4uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQ1MTUzOUI5MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDRh
YjU5YmQuLjMxYTFhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNw
cApAQCAtMjQsMTYgKzI0LDEzIEBACiAjaW5jbHVkZSAiUmVnRXhwLmgiCiAKICNpbmNsdWRlICJM
ZXhlci5oIgotI2luY2x1ZGUgInlhcnIvWWFyckludGVycHJldGVyLmgiCi0jaW5jbHVkZSAieWFy
ci9ZYXJySklULmgiCi0jaW5jbHVkZSAieWFyci9ZYXJyUGF0dGVybi5oIgorI2luY2x1ZGUgInlh
cnIvWWFyci5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5j
bHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvT3duQXJyYXlQdHIuaD4KIAotCiBuYW1lc3BhY2UgSlNDIHsKIAogc3RydWN0IFJlZ0V4cFJl
cHJlc2VudGF0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41NzE3NmJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyci5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwIFBldGVyIFZhcmdhIChwdmFyZ2FAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0
eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBZYXJy
X2gKKyNkZWZpbmUgWWFycl9oCisKKyNpbmNsdWRlICJZYXJySW50ZXJwcmV0ZXIuaCIKKyNpbmNs
dWRlICJZYXJySklULmgiCisjaW5jbHVkZSAiWWFyclBhdHRlcm4uaCIKKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBZYXJyIHsKKworI2RlZmluZSBZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFj
a0luZm9QYXR0ZXJuQ2hhcmFjdGVyIDEgLy8gT25seSBmb3IgIWZpeGVkIHF1YW50aWZpZXJzLgor
I2RlZmluZSBZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9DaGFyYWN0ZXJDbGFzcyAxIC8v
IE9ubHkgZm9yICFmaXhlZCBxdWFudGlmaWVycy4KKyNkZWZpbmUgWWFyclN0YWNrU3BhY2VGb3JC
YWNrVHJhY2tJbmZvQmFja1JlZmVyZW5jZSAyCisjZGVmaW5lIFlhcnJTdGFja1NwYWNlRm9yQmFj
a1RyYWNrSW5mb0FsdGVybmF0aXZlIDEgLy8gT25lIHBlciBhbHRlcm5hdGl2ZS4KKyNkZWZpbmUg
WWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGV0aWNhbEFzc2VydGlvbiAxCisj
ZGVmaW5lIFlhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzT25jZSAxIC8v
IE9ubHkgZm9yICFmaXhlZCBxdWFudGlmaWVycy4KKyNkZWZpbmUgWWFyclN0YWNrU3BhY2VGb3JC
YWNrVHJhY2tJbmZvUGFyZW50aGVzZXNUZXJtaW5hbCAxCisjZGVmaW5lIFlhcnJTdGFja1NwYWNl
Rm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzIDIKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHF1
YW50aWZ5SW5maW5pdGUgPSBVSU5UX01BWDsKKworLy8gVGhlIGJlbG93IGxpbWl0IHJlc3RyaWN0
cyB0aGUgbnVtYmVyIG9mICJyZWN1cnNpdmUiIG1hdGNoIGNhbGxzIGluIG9yZGVyIHRvCisvLyBh
dm9pZCBzcGVuZGluZyBleHBvbmVudGlhbCB0aW1lIG9uIGNvbXBsZXggcmVndWxhciBleHByZXNz
aW9ucy4KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXRjaExpbWl0ID0gMTAwMDAwMDsKKworZW51
bSBKU1JlZ0V4cFJlc3VsdCB7CisgICAgSlNSZWdFeHBNYXRjaCA9IDEsCisgICAgSlNSZWdFeHBO
b01hdGNoID0gMCwKKyAgICBKU1JlZ0V4cEVycm9yTm9NYXRjaCA9IC0xLAorICAgIEpTUmVnRXhw
RXJyb3JIaXRMaW1pdCA9IC0yLAorICAgIEpTUmVnRXhwRXJyb3JOb01lbW9yeSA9IC0zLAorICAg
IEpTUmVnRXhwRXJyb3JJbnRlcm5hbCA9IC00Cit9OworCitQYXNzT3duUHRyPEJ5dGVjb2RlUGF0
dGVybj4gYnl0ZUNvbXBpbGUoWWFyclBhdHRlcm4mLCBCdW1wUG9pbnRlckFsbG9jYXRvciopOwor
aW50IGludGVycHJldChCeXRlY29kZVBhdHRlcm4qLCBjb25zdCBVQ2hhciogaW5wdXQsIHVuc2ln
bmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0KTsKKworI2lmIEVOQUJMRShZ
QVJSX0pJVCkKK3ZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIEpTR2xvYmFsRGF0YSosIFlh
cnJDb2RlQmxvY2smIGppdE9iamVjdCk7CitpbnQgZXhlY3V0ZShZYXJyQ29kZUJsb2NrJiBqaXRP
YmplY3QsIGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0
aCwgaW50KiBvdXRwdXQpOworI2VuZGlmCisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpZYXJyCisK
KyNlbmRpZiAvLyBZYXJyX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJ
bnRlcnByZXRlci5jcHAKaW5kZXggYTRhZTg4Zi4uZDJkYmYyMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFyckludGVycHJldGVyLmgiCiAKLSNpbmNs
dWRlICJZYXJyUGF0dGVybi5oIgorI2luY2x1ZGUgIllhcnIuaCIKICNpbmNsdWRlIDx3dGYvQnVt
cFBvaW50ZXJBbGxvY2F0b3IuaD4KIAogI2lmbmRlZiBOREVCVUcKQEAgLTE4NzgsNyArMTg3OCw2
IEBAIGludCBpbnRlcnByZXQoQnl0ZWNvZGVQYXR0ZXJuKiBieXRlY29kZSwgY29uc3QgVUNoYXIq
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zCiAgICAgcmV0dXJuIEludGVycHJldGVyKGJ5dGVj
b2RlLCBvdXRwdXQsIGlucHV0LCBzdGFydCwgbGVuZ3RoKS5pbnRlcnByZXQoKTsKIH0KIAotCiBD
T01QSUxFX0FTU0VSVChzaXplb2YoSW50ZXJwcmV0ZXI6OkJhY2tUcmFja0luZm9QYXR0ZXJuQ2hh
cmFjdGVyKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGF0dGVybkNoYXJhY3Rl
ciAqIHNpemVvZih1aW50cHRyX3QpKSwgQ2hlY2tZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0lu
Zm9QYXR0ZXJuQ2hhcmFjdGVyKTsKIENPTVBJTEVfQVNTRVJUKHNpemVvZihJbnRlcnByZXRlcjo6
QmFja1RyYWNrSW5mb0NoYXJhY3RlckNsYXNzKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJh
Y2tJbmZvQ2hhcmFjdGVyQ2xhc3MgKiBzaXplb2YodWludHB0cl90KSksIENoZWNrWWFyclN0YWNr
U3BhY2VGb3JCYWNrVHJhY2tJbmZvQ2hhcmFjdGVyQ2xhc3MpOwogQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKEludGVycHJldGVyOjpCYWNrVHJhY2tJbmZvQmFja1JlZmVyZW5jZSkgPT0gKFlhcnJTdGFj
a1NwYWNlRm9yQmFja1RyYWNrSW5mb0JhY2tSZWZlcmVuY2UgKiBzaXplb2YodWludHB0cl90KSks
IENoZWNrWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvQmFja1JlZmVyZW5jZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5oCmluZGV4IDZmZmU5Yjcu
LmJlNzAzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRl
cnByZXRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRl
ci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFlhcnJJbnRlcnByZXRlcl9oCiAjZGVmaW5l
IFlhcnJJbnRlcnByZXRlcl9oCiAKLSNpbmNsdWRlICJZYXJyUGFyc2VyLmgiCiAjaW5jbHVkZSAi
WWFyclBhdHRlcm4uaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAgLTM4LDIxICszNyw2IEBAIHVzaW5nIFdURjo6QnVtcFBv
aW50ZXJBbGxvY2F0b3I7CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgWWFyciB7CiAKLS8v
IFRPRE8gbW92ZSB0aGUgbWF0Y2hMaW1pdCBjb25zdGFudCBhbmQgdGhlIEpTUmVnRXhwUmVzdWx0
IGVudW0gdG8gdGhlIEpTUmVnRXhwLmggd2hlbiBwY3JlIGlzIHJlbW92ZWQuCi0KLS8vIFRoZSBi
ZWxvdyBsaW1pdCByZXN0cmljdHMgdGhlIG51bWJlciBvZiAicmVjdXJzaXZlIiBtYXRjaCBjYWxs
cyBpbiBvcmRlciB0bwotLy8gYXZvaWQgc3BlbmRpbmcgZXhwb25lbnRpYWwgdGltZSBvbiBjb21w
bGV4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF0Y2hMaW1p
dCA9IDEwMDAwMDA7Ci0KLWVudW0gSlNSZWdFeHBSZXN1bHQgewotICAgIEpTUmVnRXhwTWF0Y2gg
PSAxLAotICAgIEpTUmVnRXhwTm9NYXRjaCA9IDAsCi0gICAgSlNSZWdFeHBFcnJvck5vTWF0Y2gg
PSAtMSwKLSAgICBKU1JlZ0V4cEVycm9ySGl0TGltaXQgPSAtMiwKLSAgICBKU1JlZ0V4cEVycm9y
Tm9NZW1vcnkgPSAtMywKLSAgICBKU1JlZ0V4cEVycm9ySW50ZXJuYWwgPSAtNAotfTsKLQogY2xh
c3MgQnl0ZURpc2p1bmN0aW9uOwogCiBzdHJ1Y3QgQnl0ZVRlcm0gewpAQCAtMzczLDkgKzM1Nyw2
IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENoYXJhY3RlckNsYXNzKj4gbV91c2VyQ2hhcmFjdGVy
Q2xhc3NlczsKIH07CiAKLVBhc3NPd25QdHI8Qnl0ZWNvZGVQYXR0ZXJuPiBieXRlQ29tcGlsZShZ
YXJyUGF0dGVybiYsIEJ1bXBQb2ludGVyQWxsb2NhdG9yKik7Ci1pbnQgaW50ZXJwcmV0KEJ5dGVj
b2RlUGF0dGVybiosIGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgaW50KiBvdXRwdXQpOwotCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgogCiAj
ZW5kaWYgLy8gWWFyckludGVycHJldGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKaW5kZXggNTQ1ZmNmNS4uYWUzY2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIK
ICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLSNp
bmNsdWRlICJZYXJyUGFyc2VyLmgiCisjaW5jbHVkZSAiWWFyci5oIgogCiAjaWYgRU5BQkxFKFlB
UlJfSklUKQogCkBAIC0yMjAzLDEwICsyMjAzLDEzIEBAIHByaXZhdGU6CiAKIHZvaWQgaml0Q29t
cGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBZYXJy
Q29kZUJsb2NrJiBqaXRPYmplY3QpCiB7Ci0gICAgWWFyckdlbmVyYXRvciBnZW5lcmF0b3IocGF0
dGVybik7Ci0gICAgZ2VuZXJhdG9yLmNvbXBpbGUoZ2xvYmFsRGF0YSwgaml0T2JqZWN0KTsKKyAg
ICBZYXJyR2VuZXJhdG9yKHBhdHRlcm4pLmNvbXBpbGUoZ2xvYmFsRGF0YSwgaml0T2JqZWN0KTsK
IH0KIAoraW50IGV4ZWN1dGUoWWFyckNvZGVCbG9jayYgaml0T2JqZWN0LCBjb25zdCBVQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0KQorewor
ICAgIHJldHVybiBqaXRPYmplY3QuZXhlY3V0ZShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0
KTsKK30KIAogfX0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IGRmZGM3
NzcuLjQxNGI1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTI5LDcg
KzI5LDYgQEAKICNpZiBFTkFCTEUoWUFSUl9KSVQpCiAKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgotI2luY2x1ZGUgIllhcnJQYXR0ZXJuLmgiCiAjaW5jbHVkZSAiVVN0cmluZy5oIgogCiAj
aWYgQ1BVKFg4NikgJiYgIUNPTVBJTEVSKE1TVkMpCkBAIC03NiwxMyArNzUsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9uZWVkRmFsbEJhY2s7CiB9OwogCi12b2lkIGppdENvbXBpbGUoWWFyclBh
dHRlcm4mLCBKU0dsb2JhbERhdGEqLCBZYXJyQ29kZUJsb2NrJiBqaXRPYmplY3QpOwotCi1pbmxp
bmUgaW50IGV4ZWN1dGUoWWFyckNvZGVCbG9jayYgaml0T2JqZWN0LCBjb25zdCBVQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0KQotewotICAg
IHJldHVybiBqaXRPYmplY3QuZXhlY3V0ZShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0KTsK
LX0KLQogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyUGFyc2VyLmgKaW5kZXggNmMzZmJhNS4uOGM1NzQxYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaApAQCAtMjcsMTMgKzI3LDEyIEBACiAjZGVm
aW5lIFlhcnJQYXJzZXJfaAogCiAjaW5jbHVkZSAiVVN0cmluZy5oIgotI2luY2x1ZGUgPGxpbWl0
cy5oPgorI2luY2x1ZGUgIllhcnIuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2lu
Y2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBZYXJyIHsKIAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHF1YW50aWZ5SW5maW5pdGUgPSBVSU5U
X01BWDsKICNkZWZpbmUgUkVHRVhQX0VSUk9SX1BSRUZJWCAiSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246ICIKIAogZW51bSBCdWlsdEluQ2hhcmFjdGVyQ2xhc3NJRCB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAKaW5kZXggOWNhMDRjYi4uZTkxNGY1MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmNwcApAQCAtMjcsNyArMjcs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllhcnJQYXR0ZXJuLmgiCiAKLSNp
bmNsdWRlICJZYXJySW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJZYXJyLmgiCisjaW5jbHVkZSAi
WWFyclBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdURjsKQEAgLTkyOSwxMCArOTMwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW52ZXJ0UGFy
ZW50aGV0aWNhbEFzc2VydGlvbjsKIH07CiAKLQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbXBpbGUo
Y29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgWWFyclBhdHRlcm4mIHBhdHRlcm4pCitjb25z
dCBjaGFyKiBZYXJyUGF0dGVybjo6Y29tcGlsZShjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
KQogewotICAgIFlhcnJQYXR0ZXJuQ29uc3RydWN0b3IgY29uc3RydWN0b3IocGF0dGVybik7Cisg
ICAgWWFyclBhdHRlcm5Db25zdHJ1Y3RvciBjb25zdHJ1Y3RvcigqdGhpcyk7CiAKICAgICBpZiAo
Y29uc3QgY2hhciogZXJyb3IgPSBwYXJzZShjb25zdHJ1Y3RvciwgcGF0dGVyblN0cmluZykpCiAg
ICAgICAgIHJldHVybiBlcnJvcjsKQEAgLTk0MSwxNyArOTQxLDE0IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBjb21waWxlKGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIFlhcnJQYXR0ZXJuJiBw
YXR0ZXJuKQogICAgIC8vIFF1b3RpbmcgTmV0c2NhcGUncyAiV2hhdCdzIG5ldyBpbiBKYXZhU2Ny
aXB0IDEuMiIsCiAgICAgLy8gICAgICAiTm90ZTogaWYgdGhlIG51bWJlciBvZiBsZWZ0IHBhcmVu
dGhlc2VzIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHNwZWNpZmllZAogICAgIC8vICAgICAgIGlu
IFwjLCB0aGUgXCMgaXMgdGFrZW4gYXMgYW4gb2N0YWwgZXNjYXBlIGFzIGRlc2NyaWJlZCBpbiB0
aGUgbmV4dCByb3cuIgotICAgIGlmIChwYXR0ZXJuLmNvbnRhaW5zSWxsZWdhbEJhY2tSZWZlcmVu
Y2UoKSkgewotICAgICAgICB1bnNpZ25lZCBudW1TdWJwYXR0ZXJucyA9IHBhdHRlcm4ubV9udW1T
dWJwYXR0ZXJuczsKLQorICAgIGlmIChjb250YWluc0lsbGVnYWxCYWNrUmVmZXJlbmNlKCkpIHsK
ICAgICAgICAgY29uc3RydWN0b3IucmVzZXQoKTsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
ICAgIGNvbnN0IGNoYXIqIGVycm9yID0KICNlbmRpZgotICAgICAgICAgICAgcGFyc2UoY29uc3Ry
dWN0b3IsIHBhdHRlcm5TdHJpbmcsIG51bVN1YnBhdHRlcm5zKTsKKyAgICAgICAgICAgIHBhcnNl
KGNvbnN0cnVjdG9yLCBwYXR0ZXJuU3RyaW5nLCBtX251bVN1YnBhdHRlcm5zKTsKIAogICAgICAg
ICBBU1NFUlQoIWVycm9yKTsKLSAgICAgICAgQVNTRVJUKG51bVN1YnBhdHRlcm5zID09IHBhdHRl
cm4ubV9udW1TdWJwYXR0ZXJucyk7CiAgICAgfQogCiAgICAgY29uc3RydWN0b3IuY2hlY2tGb3JU
ZXJtaW5hbFBhcmVudGhlc2VzKCk7CkBAIC05NjEsNyArOTU4LDcgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbXBpbGUoY29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgWWFyclBhdHRlcm4mIHBh
dHRlcm4pCiAgICAgY29uc3RydWN0b3Iuc2V0dXBCZWdpbkNoYXJzKCk7CiAKICAgICByZXR1cm4g
MDsKLX07Cit9CiAKIFlhcnJQYXR0ZXJuOjpZYXJyUGF0dGVybihjb25zdCBVU3RyaW5nJiBwYXR0
ZXJuLCBib29sIGlnbm9yZUNhc2UsIGJvb2wgbXVsdGlsaW5lLCBjb25zdCBjaGFyKiogZXJyb3Ip
CiAgICAgOiBtX2lnbm9yZUNhc2UoaWdub3JlQ2FzZSkKQEAgLTk3OSw3ICs5NzYsNyBAQCBZYXJy
UGF0dGVybjo6WWFyclBhdHRlcm4oY29uc3QgVVN0cmluZyYgcGF0dGVybiwgYm9vbCBpZ25vcmVD
YXNlLCBib29sIG11bHRpbGluZQogICAgICwgbm9uc3BhY2VzQ2FjaGVkKDApCiAgICAgLCBub253
b3JkY2hhckNhY2hlZCgwKQogewotICAgICplcnJvciA9IGNvbXBpbGUocGF0dGVybiwgKnRoaXMp
OworICAgICplcnJvciA9IGNvbXBpbGUocGF0dGVybik7CiB9CiAKIH0gfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmgKaW5kZXggMTQ4MTBjNi4uMjE3MmRkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5oCkBAIC0zNCwxNSArMzQsNiBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFlhcnIgewogCi0jZGVmaW5lIFlhcnJTdGFja1Nw
YWNlRm9yQmFja1RyYWNrSW5mb1BhdHRlcm5DaGFyYWN0ZXIgMSAvLyBPbmx5IGZvciAhZml4ZWQg
cXVhbnRpZmllcnMuCi0jZGVmaW5lIFlhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb0NoYXJh
Y3RlckNsYXNzIDEgLy8gT25seSBmb3IgIWZpeGVkIHF1YW50aWZpZXJzLgotI2RlZmluZSBZYXJy
U3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9CYWNrUmVmZXJlbmNlIDIKLSNkZWZpbmUgWWFyclN0
YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvQWx0ZXJuYXRpdmUgMSAvLyBPbmUgcGVyIGFsdGVybmF0
aXZlLgotI2RlZmluZSBZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXRpY2Fs
QXNzZXJ0aW9uIDEKLSNkZWZpbmUgWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50
aGVzZXNPbmNlIDEgLy8gT25seSBmb3IgIWZpeGVkIHF1YW50aWZpZXJzLgotI2RlZmluZSBZYXJy
U3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXNlc1Rlcm1pbmFsIDEKLSNkZWZpbmUg
WWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXMgMgotCiBzdHJ1Y3QgUGF0
dGVybkRpc2p1bmN0aW9uOwogCiBzdHJ1Y3QgQ2hhcmFjdGVyUmFuZ2UgewpAQCAtNDEwLDYgKzQw
MSw4IEBAIHN0cnVjdCBZYXJyUGF0dGVybiB7CiAgICAgVmVjdG9yPEJlZ2luQ2hhcj4gbV9iZWdp
bkNoYXJzOwogCiBwcml2YXRlOgorICAgIGNvbnN0IGNoYXIqIGNvbXBpbGUoY29uc3QgVVN0cmlu
ZyYgcGF0dGVyblN0cmluZyk7CisKICAgICBDaGFyYWN0ZXJDbGFzcyogbmV3bGluZUNhY2hlZDsK
ICAgICBDaGFyYWN0ZXJDbGFzcyogZGlnaXRzQ2FjaGVkOwogICAgIENoYXJhY3RlckNsYXNzKiBz
cGFjZXNDYWNoZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qDQppbmRleCBmMDBjMThkLi5jNzVlODVhIDEwMDY0NA0KLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oNCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qDQpA
QCAtMTY1OCw2ICsxNjU4LDEwIEBADQogCQkJTmFtZT0ieWFyciINCiAJCQk+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx5YXJyXFlhcnIuaCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHlhcnJcWWFyckludGVycHJl
dGVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>