<?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>76530</bug_id>
          
          <creation_ts>2012-01-18 04:17:25 -0800</creation_ts>
          <short_desc>Cross-platform processor core counter</short_desc>
          <delta_ts>2012-01-18 14:05:29 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Roland Takacs">rtakacs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kbalazs</cc>
    
    <cc>loki</cc>
    
    <cc>mxie</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537768</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-18 04:17:25 -0800</bug_when>
    <thetext>Two files have been added to the project, namely NumberOfCores.h/cpp,
that include a CPU core number determining function. It used to be
in ParallelJobsGeneric.h/cpp before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537777</commentid>
    <comment_count>1</comment_count>
      <attachid>122902</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-18 04:48:13 -0800</bug_when>
    <thetext>Created attachment 122902
I moved the cross-platform CPU core counter to a new file from ParallelJobsGeneric.cpp

&quot;determineMaxNumberOfParallelThreads()&quot; has been renamed to &quot;NumberOfProcessorCores()&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537779</commentid>
    <comment_count>2</comment_count>
      <attachid>122902</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2012-01-18 04:54:01 -0800</bug_when>
    <thetext>Comment on attachment 122902
I moved the cross-platform CPU core counter to a new file from ParallelJobsGeneric.cpp

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537794</commentid>
    <comment_count>3</comment_count>
      <attachid>122902</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-18 05:37:46 -0800</bug_when>
    <thetext>Comment on attachment 122902
I moved the cross-platform CPU core counter to a new file from ParallelJobsGeneric.cpp

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

&gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:29
&gt; +#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)

Note you also need to add || OS(FREEBSD) here as you use it below, or the build will break on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537814</commentid>
    <comment_count>4</comment_count>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-18 06:13:22 -0800</bug_when>
    <thetext>Thanks for warning me, I have fixed it.

(In reply to comment #3)
&gt; (From update of attachment 122902 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122902&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/NumberOfCores.cpp:29
&gt; &gt; +#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)
&gt; 
&gt; Note you also need to add || OS(FREEBSD) here as you use it below, or the build will break on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537817</commentid>
    <comment_count>5</comment_count>
      <attachid>122902</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 06:15:24 -0800</bug_when>
    <thetext>Comment on attachment 122902
I moved the cross-platform CPU core counter to a new file from ParallelJobsGeneric.cpp

Clearing flags on attachment: 122902

Committed r105270: &lt;http://trac.webkit.org/changeset/105270&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537818</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 06:15:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537820</commentid>
    <comment_count>7</comment_count>
      <attachid>122914</attachid>
    <who name="Roland Takacs">rtakacs</who>
    <bug_when>2012-01-18 06:20:40 -0800</bug_when>
    <thetext>Created attachment 122914
I attached &quot;OS(FREEBSD)&quot; to &quot;#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537852</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-01-18 07:22:26 -0800</bug_when>
    <thetext>Qt Windows (cross-MinGW) buildfix landed in http://trac.webkit.org/changeset/105273</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122902</attachid>
            <date>2012-01-18 04:48:13 -0800</date>
            <delta_ts>2012-01-18 06:20:40 -0800</delta_ts>
            <desc>I moved the cross-platform CPU core counter to a new file from ParallelJobsGeneric.cpp</desc>
            <filename>PATCH_1.diff</filename>
            <type>text/plain</type>
            <size>17589</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZmNDFjYmMuLjllNWU5Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIENyb3NzLXBsYXRm
b3JtIHByb2Nlc3NvciBjb3JlIGNvdW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2NTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVHdvIGZpbGVzIGhhdmUgYmVlbiBjcmVhdGVkIHRoYXQgaW5jbHVk
ZSB0aGUgcHJvY2Vzc29yIGNvcmUgY291bnRlciBmdW5jdGlvbi4KKyAgICAgICAgSXQgdXNlZCB0
byBiZSBpbiBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9yZS4KKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1l
L09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9OdW1iZXJPZkNv
cmVzLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMpOgor
ICAgICAgICAqIHd0Zi9OdW1iZXJPZkNvcmVzLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi9QYXJh
bGxlbEpvYnNHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6
UGFyYWxsZWxFbnZpcm9ubWVudCk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
aDoKKwogMjAxMi0wMS0xNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZhY3RvcmVkIG91dCBzb21lIGNvZGUgaW50byBhIGhlbHBlciBmdW5jdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYTgwNTM2Ny4uODU1
OTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYx
OCw2ICs2MTgsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAor
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5k
b21Tb3VyY2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5
cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCBjOTM2
NzkxLi4xZGJiZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aQpAQCAtNTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywK
ICAgICAgICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnd3Rm
L051bGxQdHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAnLAorICAg
ICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9j
YXRvclBvc2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNwcCcsCiAg
ICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagpp
bmRleCA2ZTg5YjAxLi5mNzI2NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKQEAgLTk0OSw2ICs5
NDksMTQgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwu
Llx3dGZcTnVtYmVyT2ZDb3Jlcy5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5cd3RmXE51bWJlck9mQ29yZXMuaCIKKwkJCT4KKwkJPC9GaWxlPgor
CQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NBbGxvY2F0b3JXaW4uY3BwIgog
CQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM5NGE3MmYu
LmU4MWZhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MzEsNiArNzMxLDgg
QEAKIAkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0
OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNEQ4Q0VGQjEyRkM0Mzk2
MDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUYzQkQz
MUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBU
ZXh0UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGNjlFODZDMzE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjlFODZDMTE0QzZF
NTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi87IH07CisJCUY2OUU4NkM0MTRDNkU1
NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZD
b3Jlcy5oICovOyB9OwogCQlGREExNUMxRTEyQjAzMDVDMDAzQTU4M0EgLyogQ29tcGxleC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBMTVDMTYxMkIw
MzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTFC
NDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlv
biAqLwpAQCAtMTU0Miw2ICsxNTQ0LDggQEAKIAkJRjY5MkE4ODUwMjU1NTk3RDAxRkY2MEY3IC8q
IFVTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVVN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJRjY5MkE4ODYwMjU1NTk3RDAxRkY2MEY3IC8qIFVTdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVN0cmluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OTJBODg3MDI1NTU5
N0QwMUZGNjBGNyAvKiBKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1i
ZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE51bWJl
ck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1iZXJPZkNvcmVzLmg7IHBh
dGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
REExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
MUI0NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0xNjIyLDYgKzE2MjYs
OCBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogSmF2YVNjcmlwdENvcmUgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY2OUU4NkMxMTRDNkU1
NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLywKKwkJCQlGNjlFODZDMjE0QzZFNTUx
MDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5oICovLAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIy
OTVGNSAvKiBDaGFuZ2VMb2cgKi8sCiAJCQkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNy
ZWF0ZV9yZWdleF90YWJsZXMgKi8sCiAJCQkJOTM3QjYzQ0MwOUU3NjZEMjAwQTY3MUREIC8qIERl
cml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBAIC0zMDM5LDYgKzMwNDUsNyBAQAogCQkJCTBGN0IyOTRD
MTRDM0NENDMwMDdDM0RCMSAvKiBERkdCeXRlQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjdCMjk0RDE0QzNDRDRDMDA3QzNEQjEgLyogREZHQ29tbW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MUEzOTA1NjE0QzBGNDcyMDBGNjc5MDEgLyogVWludDhDbGFtcGVkQXJyYXkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY2OUU4NkM0MTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM1NzYsNiArMzU4Myw3IEBACiAJCQkJMEY0NjgwODMxNEJB
NTczMTAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYw
QjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjBCODNCNDE0QkNGODYwMDA4ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY2OUU4NkMzMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcAppbmRleCA2OGQxMGI3Li5mNjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgog
I2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBB
UkFMTEVMX0dDKQpAQCAtMTc0LDEyICsxNzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkK
ICAgICBTRVQob3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAog
ICAgIGludCBjcHVzVG9Vc2UgPSAxOwotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVM
X0dDKQotICAgIGludCBuYW1lWzJdOwotICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1
c1RvVXNlKTsKLSAgICBuYW1lWzBdID0gQ1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQ
VTsKLSAgICBzeXNjdGwobmFtZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7Cisj
aWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9j
ZXNzb3JDb3JlcygpOwogI2VuZGlmCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlv
bmQgNC4KICAgICBpZiAoY3B1c1RvVXNlID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NN
YWtlTGlzdHMudHh0CmluZGV4IDUyZDNlM2MuLmMyMmFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMK
ICAgICBOb25jb3B5YWJsZS5oCiAgICAgTm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51
bWJlck9mQ29yZXMuaAogICAgIE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAg
ICAgT3duQXJyYXlQdHIuaApAQCAtMTQ2LDYgKzE0Nyw3IEBAIFNFVChXVEZfU09VUkNFUwogICAg
IE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAg
IE51bWJlck9mQ29yZXMuY3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBh
Z2VCbG9jay5jcHAKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uM2E5MzIwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0Yg
U1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBT
WkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jlcy5oIgorCisj
aWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCisjaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYgT1MoTElOVVgpIHx8IE9T
KEFJWCkgfHwgT1MoU09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbGlmIE9TKFdJTkRP
V1MpCisjaW5jbHVkZSA8V2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgor
I2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
Cit7CisgICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0gMTsKKyAgICBzdGF0aWMg
aW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVtYmVyT2ZDb3JlcyA+IDAp
CisgICAgICAgIHJldHVybiBzX251bWJlck9mQ29yZXM7CisKKyNpZiBPUyhEQVJXSU4pIHx8IE9T
KE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkgfHwgT1MoRlJFRUJTRCkKKyAgICB1bnNpZ25lZCByZXN1
bHQ7CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOworICAgIGludCBuYW1lW10g
PSB7CisgICAgICAgICAgICBDVExfSFcsCisgICAgICAgICAgICBIV19OQ1BVCisgICAgfTsKKyAg
ICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihp
bnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAwLCAwKTsKKworICAgIHNfbnVtYmVyT2ZDb3JlcyA9IHN5
c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJlc3VsdDsKKyNlbGlmIE9T
KExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisgICAgbG9uZyBzeXNjb25mUmVzdWx0
ID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisKKyAgICBzX251bWJlck9mQ29yZXMg
PSBzeXNjb25mUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogc3RhdGljX2Nhc3Q8
aW50PihzeXNjb25mUmVzdWx0KTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgVU5VU0VEX1BBUkFN
KGRlZmF1bHRJZlVuYXZhaWxhYmxlKTsKKyAgICBTWVNURU1fSU5GTyBzeXNJbmZvOworICAgIEdl
dFN5c3RlbUluZm8oJnN5c0luZm8pOworCisgICAgc19udW1iZXJPZkNvcmVzID0gc3lzSW5mby5k
d051bWJlck9mUHJvY2Vzc29yczsKKyNlbHNlCisgICAgc19udW1iZXJPZkNvcmVzID0gZGVmYXVs
dElmVW5hdmFpbGFibGU7CisjZW5kaWYKKyAgICByZXR1cm4gc19udW1iZXJPZkNvcmVzOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzhkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApAQCAtMCwwICsxLDMwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqCisgKi8KKworI2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNkZWZpbmUgTnVtYmVyT2ZD
b3Jlc19oCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFyYWxs
ZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXggYjYyMDdkYy4uMDZlNzk5YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbmNsdWRlICJQYXJhbGxlbEpvYnMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJh
bS5oIgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAKICNpZiBPUyhEQVJXSU4pIHx8
IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkKICNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CkBAIC00
NSwxOSArNDYsMTYgQEAgbmFtZXNwYWNlIFdURiB7CiAKIFZlY3RvcjwgUmVmUHRyPFBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhy
ZWFkUG9vbCA9IDA7CiAKLWludCBQYXJhbGxlbEVudmlyb25tZW50OjpzX21heE51bWJlck9mUGFy
YWxsZWxUaHJlYWRzID0gLTE7Ci0KIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJv
bm1lbnQoVGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzaXplT2ZQYXJhbWV0
ZXIsIGludCByZXF1ZXN0ZWRKb2JOdW1iZXIpIDoKICAgICBtX3RocmVhZEZ1bmN0aW9uKHRocmVh
ZEZ1bmN0aW9uKSwKICAgICBtX3NpemVPZlBhcmFtZXRlcihzaXplT2ZQYXJhbWV0ZXIpCiB7CiAg
ICAgQVNTRVJUX0FSRyhyZXF1ZXN0ZWRKb2JOdW1iZXIsIHJlcXVlc3RlZEpvYk51bWJlciA+PSAx
KTsKIAotICAgIGlmIChzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID09IC0xKQotICAgICAg
ICBkZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOworICAgIGludCBtYXhOdW1i
ZXJPZkNvcmVzID0gbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogCi0gICAgaWYgKCFyZXF1ZXN0
ZWRKb2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9iTnVtYmVyID4gc19tYXhOdW1iZXJPZlBhcmFsbGVs
VGhyZWFkcykKLSAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpOworICAgIGlmICghcmVxdWVzdGVkSm9i
TnVtYmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IG1heE51bWJlck9mQ29yZXMpCisgICAgICAg
IHJlcXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZkNv
cmVzKTsKIAogICAgIGlmICghc190aHJlYWRQb29sKQogICAgICAgICBzX3RocmVhZFBvb2wgPSBu
ZXcgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPigpOwpAQCAtNjUsNyArNjMsNyBAQCBQ
YXJhbGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRo
cmVhZEZ1bmN0aW9uLCBzaXplX3QgcwogICAgIC8vIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYmUg
YWxzbyBhIHdvcmtlci4KICAgICBpbnQgbWF4TnVtYmVyT2ZOZXdUaHJlYWRzID0gcmVxdWVzdGVk
Sm9iTnVtYmVyIC0gMTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBh
cmFsbGVsVGhyZWFkcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1heE51bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bWF4TnVtYmVyT2ZDb3JlcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KG1heE51bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgewogICAgICAgICBpZiAoc190aHJlYWRQ
b29sLT5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSkgKyAxVSkKICAgICAgICAgICAg
IHNfdGhyZWFkUG9vbC0+YXBwZW5kKFRocmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMs
MzIgKzkxLDYgQEAgdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1fdGhyZWFkc1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lk
IFBhcmFsbGVsRW52aXJvbm1lbnQ6OmRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRz
KCkKLXsKLSAgICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERB
UldJTikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsK
LSAgICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsK
LSAgICAgICAgQ1RMX0hXLAotICAgICAgICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3Rs
UmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0
LCAmbGVuZ3RoLCAwLCAwKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lz
Y3RsUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1Mo
TElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQg
PSBzeXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxs
ZWxUaHJlYWRzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0
YXRpY19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVO
VVNFRF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJ
bmZvOwotICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJh
bGxlbFRocmVhZHMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBz
X21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5k
aWYKLX0KLQogYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2Nr
Rm9yKFBhcmFsbGVsRW52aXJvbm1lbnQqIHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1f
bXV0ZXgudHJ5TG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
YXJhbGxlbEpvYnNHZW5lcmljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuaAppbmRleCBkYWI2ZGQ5Li4xYzdkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEyIEBA
IHB1YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1h
eE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVh
ZEZ1bmN0aW9uOwogICAgIHNpemVfdCBtX3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1i
ZXJPZkpvYnM7CiAKICAgICBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFk
czsKICAgICBzdGF0aWMgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQ
b29sOwotICAgIHN0YXRpYyBpbnQgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4NmYzNmQ3Li5mOWUwYTQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTAxLTE4ICBSb2xhbmQgVGFrYWNzICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUt
c3plZ2VkLmh1PgorCisgICAgICAgIENyb3NzLXBsYXRmb3JtIHByb2Nlc3NvciBjb3JlIGNvdW50
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTMw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHdvIGZp
bGVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMu
aC9jcHAsCisgICAgICAgIHRoYXQgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmlu
ZyBmdW5jdGlvbi4KKworICAgICAgICAqIFdURi5wcm86CisKIDIwMTItMDEtMTcgIENhaW8gTWFy
Y2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAog
ICAgICAgICBVaW50OENsYW1wZWRBcnJheSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggNDQ3MTdiOS4uN2E0ZDllMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAt
ODIsNiArODIsNyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5aW5nU29ydC5oIFwKICAgICBO
b3RGb3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJlck9mQ29yZXMuaCBcCiAgICAg
T1NBbGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBcCiAgICAgT3duQXJyYXlQdHIu
aCBcCkBAIC0xODgsNiArMTg5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTWFpblRocmVhZC5jcHAg
XAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNwcCBcCisgICAgTnVtYmVy
T2ZDb3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAgcXQvTWFpblRocmVh
ZFF0LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122914</attachid>
            <date>2012-01-18 06:20:40 -0800</date>
            <delta_ts>2012-01-18 06:41:44 -0800</delta_ts>
            <desc>I attached &quot;OS(FREEBSD)&quot; to &quot;#if OS(DARWIN) || OS(OPENBSD) || OS(NETBSD)&quot;</desc>
            <filename>PATCH_1_final.diff</filename>
            <type>text/plain</type>
            <size>17757</size>
            <attacher name="Roland Takacs">rtakacs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZmNDFjYmMuLmUyZmNmYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBSb2xhbmQgVGFrYWNz
ICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3plZ2VkLmh1PgorCisgICAgICAgIENyb3NzLXBsYXRm
b3JtIHByb2Nlc3NvciBjb3JlIGNvdW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2NTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVHdvIGZpbGVzIGhhdmUgYmVlbiBjcmVhdGVkIHRoYXQgaW5jbHVk
ZSB0aGUgcHJvY2Vzc29yIGNvcmUgY291bnRlciBmdW5jdGlvbi4KKyAgICAgICAgSXQgdXNlZCB0
byBiZSBpbiBQYXJhbGxlbEpvYnNHZW5lcmljLmgvY3BwIGJlZm9yZS4KKworICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZ3lwaToKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2o6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1l
L09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9OdW1iZXJPZkNv
cmVzLmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMpOgor
ICAgICAgICAqIHd0Zi9OdW1iZXJPZkNvcmVzLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi9QYXJh
bGxlbEpvYnNHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6
UGFyYWxsZWxFbnZpcm9ubWVudCk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
aDoKKwogMjAxMi0wMS0xNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEZhY3RvcmVkIG91dCBzb21lIGNvZGUgaW50byBhIGhlbHBlciBmdW5jdGlvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYTgwNTM2Ny4uODU1
OTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYx
OCw2ICs2MTgsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL05vbkNvcHlpbmdTb3J0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTm90Rm91bmQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdWxsUHRyLmggXAor
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAgXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL09TQWxsb2NhdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT1NSYW5k
b21Tb3VyY2UuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL09TUmFuZG9tU291cmNl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5
cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCBjOTM2
NzkxLi4xZGJiZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lw
aQpAQCAtNTcxLDYgKzU3MSw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuY3BwJywK
ICAgICAgICAgICAgICd3dGYvTWFsbG9jWm9uZVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnd3Rm
L051bGxQdHIuY3BwJywKKyAgICAgICAgICAgICd3dGYvTnVtYmVyT2ZDb3Jlcy5jcHAnLAorICAg
ICAgICAgICAgJ3d0Zi9OdW1iZXJPZkNvcmVzLmgnLAogICAgICAgICAgICAgJ3d0Zi9PU0FsbG9j
YXRvclBvc2l4LmNwcCcsCiAgICAgICAgICAgICAnd3RmL09TQWxsb2NhdG9yV2luLmNwcCcsCiAg
ICAgICAgICAgICAnd3RmL09TUmFuZG9tU291cmNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagpp
bmRleCA2ZTg5YjAxLi5mNzI2NDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKQEAgLTk0OSw2ICs5
NDksMTQgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwu
Llx3dGZcTnVtYmVyT2ZDb3Jlcy5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5cd3RmXE51bWJlck9mQ29yZXMuaCIKKwkJCT4KKwkJPC9GaWxlPgor
CQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcT1NBbGxvY2F0b3JXaW4uY3BwIgog
CQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM5NGE3MmYu
LmU4MWZhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MzEsNiArNzMxLDgg
QEAKIAkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0
OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNEQ4Q0VGQjEyRkM0Mzk2
MDBCQzlGNUEgLyogQmxvb21GaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0RDhDRTlCMTJGQzQyRTEwMEJDOUY1QSAvKiBCbG9vbUZpbHRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUYzQkQz
MUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBU
ZXh0UG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGNjlFODZDMzE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjlFODZDMTE0QzZF
NTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgKi87IH07CisJCUY2OUU4NkM0MTRDNkU1
NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZD
b3Jlcy5oICovOyB9OwogCQlGREExNUMxRTEyQjAzMDVDMDAzQTU4M0EgLyogQ29tcGxleC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBMTVDMTYxMkIw
MzAyODAwM0E1ODNBIC8qIENvbXBsZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTFC
NDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlv
biAqLwpAQCAtMTU0Miw2ICsxNTQ0LDggQEAKIAkJRjY5MkE4ODUwMjU1NTk3RDAxRkY2MEY3IC8q
IFVTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVVN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJRjY5MkE4ODYwMjU1NTk3RDAxRkY2MEY3IC8qIFVTdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVN0cmluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCUY2OTJBODg3MDI1NTU5
N0QwMUZGNjBGNyAvKiBKU1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCUY2OUU4NkMxMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1i
ZXJPZkNvcmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE51bWJl
ck9mQ29yZXMuY3BwOyBwYXRoID0gd3RmL051bWJlck9mQ29yZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNjlFODZDMjE0QzZFNTUxMDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOdW1iZXJPZkNvcmVzLmg7IHBh
dGggPSB3dGYvTnVtYmVyT2ZDb3Jlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
REExNUMxNjEyQjAzMDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb21wbGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
MUI0NDc5MEVDQ0Q3M0IwMDRGNEREMSAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0xNjIyLDYgKzE2MjYs
OCBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogSmF2YVNjcmlwdENvcmUgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY2OUU4NkMxMTRDNkU1
NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVzLmNwcCAqLywKKwkJCQlGNjlFODZDMjE0QzZFNTUx
MDAyQzJDNjIgLyogTnVtYmVyT2ZDb3Jlcy5oICovLAogCQkJCTg2MDRGNEYyMTQzQTZDNDQwMEIy
OTVGNSAvKiBDaGFuZ2VMb2cgKi8sCiAJCQkJQTcxOEY4MjExMTc4RUI0QjAwMjQ2NUE3IC8qIGNy
ZWF0ZV9yZWdleF90YWJsZXMgKi8sCiAJCQkJOTM3QjYzQ0MwOUU3NjZEMjAwQTY3MUREIC8qIERl
cml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBAIC0zMDM5LDYgKzMwNDUsNyBAQAogCQkJCTBGN0IyOTRD
MTRDM0NENDMwMDdDM0RCMSAvKiBERkdCeXRlQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjdCMjk0RDE0QzNDRDRDMDA3QzNEQjEgLyogREZHQ29tbW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MUEzOTA1NjE0QzBGNDcyMDBGNjc5MDEgLyogVWludDhDbGFtcGVkQXJyYXkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUY2OUU4NkM0MTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNvcmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM1NzYsNiArMzU4Myw3IEBACiAJCQkJMEY0NjgwODMxNEJB
NTczMTAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYw
QjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjBCODNCNDE0QkNGODYwMDA4ODVCNEYgLyogTWV0aG9kQ2FsbExpbmtJbmZvLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUY2OUU4NkMzMTRDNkU1NTEwMDJDMkM2MiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcAppbmRleCA2OGQxMGI3Li5mNjYwYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgog
I2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KIAogI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBB
UkFMTEVMX0dDKQpAQCAtMTc0LDEyICsxNzUsOCBAQCB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkK
ICAgICBTRVQob3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAxMDAwKTsKIAog
ICAgIGludCBjcHVzVG9Vc2UgPSAxOwotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVM
X0dDKQotICAgIGludCBuYW1lWzJdOwotICAgIHNpemVfdCB2YWx1ZVNpemUgPSBzaXplb2YoY3B1
c1RvVXNlKTsKLSAgICBuYW1lWzBdID0gQ1RMX0hXOwotICAgIG5hbWVbMV0gPSBIV19BVkFJTENQ
VTsKLSAgICBzeXNjdGwobmFtZSwgMiwgJmNwdXNUb1VzZSwgJnZhbHVlU2l6ZSwgMCwgMCk7Cisj
aWYgRU5BQkxFKFBBUkFMTEVMX0dDKQorICAgIGNwdXNUb1VzZSA9IFdURjo6bnVtYmVyT2ZQcm9j
ZXNzb3JDb3JlcygpOwogI2VuZGlmCiAgICAgLy8gV2UgZG9uJ3Qgc2NhbGUgc28gd2VsbCBiZXlv
bmQgNC4KICAgICBpZiAoY3B1c1RvVXNlID4gNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NN
YWtlTGlzdHMudHh0CmluZGV4IDUyZDNlM2MuLmMyMmFlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtNTMsNiArNTMsNyBAQCBTRVQoV1RGX0hFQURFUlMK
ICAgICBOb25jb3B5YWJsZS5oCiAgICAgTm90Rm91bmQuaAogICAgIE51bGxQdHIuaAorICAgIE51
bWJlck9mQ29yZXMuaAogICAgIE9TQWxsb2NhdG9yLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCiAg
ICAgT3duQXJyYXlQdHIuaApAQCAtMTQ2LDYgKzE0Nyw3IEBAIFNFVChXVEZfU09VUkNFUwogICAg
IE1haW5UaHJlYWQuY3BwCiAgICAgTUQ1LmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAg
IE51bWJlck9mQ29yZXMuY3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcAogICAgIFBh
Z2VCbG9jay5jcHAKICAgICBQYXJhbGxlbEpvYnNHZW5lcmljLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9OdW1iZXJPZkNvcmVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjUyYmJlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvTnVtYmVyT2ZDb3Jlcy5jcHAKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0Yg
U1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBT
WkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTnVtYmVyT2ZDb3Jlcy5oIgorCisj
aWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpIHx8IE9TKEZSRUVCU0Qp
CisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2VsaWYg
T1MoTElOVVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKKyNpbmNsdWRlIDx1bmlzdGQuaD4K
KyNlbGlmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSA8V2luZG93cy5oPgorI2luY2x1ZGUgPHd0Zi9V
bnVzZWRQYXJhbS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQ
cm9jZXNzb3JDb3JlcygpCit7CisgICAgY29uc3QgaW50IGRlZmF1bHRJZlVuYXZhaWxhYmxlID0g
MTsKKyAgICBzdGF0aWMgaW50IHNfbnVtYmVyT2ZDb3JlcyA9IC0xOworCisgICAgaWYgKHNfbnVt
YmVyT2ZDb3JlcyA+IDApCisgICAgICAgIHJldHVybiBzX251bWJlck9mQ29yZXM7CisKKyNpZiBP
UyhEQVJXSU4pIHx8IE9TKE9QRU5CU0QpIHx8IE9TKE5FVEJTRCkgfHwgT1MoRlJFRUJTRCkKKyAg
ICB1bnNpZ25lZCByZXN1bHQ7CisgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihyZXN1bHQpOwor
ICAgIGludCBuYW1lW10gPSB7CisgICAgICAgICAgICBDVExfSFcsCisgICAgICAgICAgICBIV19O
Q1BVCisgICAgfTsKKyAgICBpbnQgc3lzY3RsUmVzdWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihu
YW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAmbGVuZ3RoLCAwLCAwKTsKKworICAgIHNfbnVt
YmVyT2ZDb3JlcyA9IHN5c2N0bFJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHJl
c3VsdDsKKyNlbGlmIE9TKExJTlVYKSB8fCBPUyhBSVgpIHx8IE9TKFNPTEFSSVMpCisgICAgbG9u
ZyBzeXNjb25mUmVzdWx0ID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisKKyAgICBz
X251bWJlck9mQ29yZXMgPSBzeXNjb25mUmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxl
IDogc3RhdGljX2Nhc3Q8aW50PihzeXNjb25mUmVzdWx0KTsKKyNlbGlmIE9TKFdJTkRPV1MpCisg
ICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRJZlVuYXZhaWxhYmxlKTsKKyAgICBTWVNURU1fSU5GTyBz
eXNJbmZvOworICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOworCisgICAgc19udW1iZXJPZkNv
cmVzID0gc3lzSW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKKyNlbHNlCisgICAgc19udW1iZXJP
ZkNvcmVzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7CisjZW5kaWYKKyAgICByZXR1cm4gc19udW1i
ZXJPZkNvcmVzOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L051bWJlck9mQ29yZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTnVtYmVyT2ZDb3Jl
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYzhkOTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL051bWJlck9mQ29yZXMuaApAQCAt
MCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBOdW1iZXJPZkNvcmVzX2gKKyNk
ZWZpbmUgTnVtYmVyT2ZDb3Jlc19oCisKK25hbWVzcGFjZSBXVEYgeworCitpbnQgbnVtYmVyT2ZQ
cm9jZXNzb3JDb3JlcygpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXggYjYyMDdkYy4uZmQ1YjFmOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
Y3BwCkBAIC0zMCwzNCArMzAsMjIgQEAKICNpZiBFTkFCTEUoVEhSRUFESU5HX0dFTkVSSUMpCiAK
ICNpbmNsdWRlICJQYXJhbGxlbEpvYnMuaCIKLSNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgotCi0j
aWYgT1MoREFSV0lOKSB8fCBPUyhPUEVOQlNEKSB8fCBPUyhORVRCU0QpCi0jaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2VsaWYgT1MoTElOVVgpIHx8IE9T
KEFJWCkgfHwgT1MoU09MQVJJUykKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbGlmIE9TKFdJTkRP
V1MpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2VuZGlmCisjaW5jbHVkZSA8d3RmL051bWJlck9m
Q29yZXMuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKIFZlY3RvcjwgUmVmUHRyPFBhcmFsbGVsRW52
aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU+ID4qIFBhcmFsbGVsRW52aXJvbm1lbnQ6OnNfdGhyZWFk
UG9vbCA9IDA7CiAKLWludCBQYXJhbGxlbEVudmlyb25tZW50OjpzX21heE51bWJlck9mUGFyYWxs
ZWxUaHJlYWRzID0gLTE7Ci0KIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlBhcmFsbGVsRW52aXJvbm1l
bnQoVGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sIHNpemVfdCBzaXplT2ZQYXJhbWV0ZXIs
IGludCByZXF1ZXN0ZWRKb2JOdW1iZXIpIDoKICAgICBtX3RocmVhZEZ1bmN0aW9uKHRocmVhZEZ1
bmN0aW9uKSwKICAgICBtX3NpemVPZlBhcmFtZXRlcihzaXplT2ZQYXJhbWV0ZXIpCiB7CiAgICAg
QVNTRVJUX0FSRyhyZXF1ZXN0ZWRKb2JOdW1iZXIsIHJlcXVlc3RlZEpvYk51bWJlciA+PSAxKTsK
IAotICAgIGlmIChzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID09IC0xKQotICAgICAgICBk
ZXRlcm1pbmVNYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkcygpOworICAgIGludCBtYXhOdW1iZXJP
ZkNvcmVzID0gbnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOwogCi0gICAgaWYgKCFyZXF1ZXN0ZWRK
b2JOdW1iZXIgfHwgcmVxdWVzdGVkSm9iTnVtYmVyID4gc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhy
ZWFkcykKLSAgICAgICAgcmVxdWVzdGVkSm9iTnVtYmVyID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHNfbWF4TnVtYmVyT2ZQYXJhbGxlbFRocmVhZHMpOworICAgIGlmICghcmVxdWVzdGVkSm9iTnVt
YmVyIHx8IHJlcXVlc3RlZEpvYk51bWJlciA+IG1heE51bWJlck9mQ29yZXMpCisgICAgICAgIHJl
cXVlc3RlZEpvYk51bWJlciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhOdW1iZXJPZkNvcmVz
KTsKIAogICAgIGlmICghc190aHJlYWRQb29sKQogICAgICAgICBzX3RocmVhZFBvb2wgPSBuZXcg
VmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPigpOwpAQCAtNjUsNyArNTMsNyBAQCBQYXJh
bGxlbEVudmlyb25tZW50OjpQYXJhbGxlbEVudmlyb25tZW50KFRocmVhZEZ1bmN0aW9uIHRocmVh
ZEZ1bmN0aW9uLCBzaXplX3QgcwogICAgIC8vIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYmUgYWxz
byBhIHdvcmtlci4KICAgICBpbnQgbWF4TnVtYmVyT2ZOZXdUaHJlYWRzID0gcmVxdWVzdGVkSm9i
TnVtYmVyIC0gMTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc19tYXhOdW1iZXJPZlBhcmFs
bGVsVGhyZWFkcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1h
eE51bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4
TnVtYmVyT2ZDb3JlcyAmJiBtX3RocmVhZHMuc2l6ZSgpIDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1heE51bWJlck9mTmV3VGhyZWFkcyk7ICsraSkgewogICAgICAgICBpZiAoc190aHJlYWRQb29s
LT5zaXplKCkgPCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSkgKyAxVSkKICAgICAgICAgICAgIHNf
dGhyZWFkUG9vbC0+YXBwZW5kKFRocmVhZFByaXZhdGU6OmNyZWF0ZSgpKTsKIApAQCAtOTMsMzIg
KzgxLDYgQEAgdm9pZCBQYXJhbGxlbEVudmlyb25tZW50OjpleGVjdXRlKHZvaWQqIHBhcmFtZXRl
cnMpCiAgICAgICAgIG1fdGhyZWFkc1tpXS0+d2FpdEZvckZpbmlzaCgpOwogfQogCi12b2lkIFBh
cmFsbGVsRW52aXJvbm1lbnQ6OmRldGVybWluZU1heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzKCkK
LXsKLSAgICBjb25zdCBpbnQgZGVmYXVsdElmVW5hdmFpbGFibGUgPSAyOwotI2lmIE9TKERBUldJ
TikgfHwgT1MoT1BFTkJTRCkgfHwgT1MoTkVUQlNEKQotICAgIHVuc2lnbmVkIHJlc3VsdDsKLSAg
ICBzaXplX3QgbGVuZ3RoID0gc2l6ZW9mKHJlc3VsdCk7Ci0gICAgaW50IG5hbWVbXSA9IHsKLSAg
ICAgICAgQ1RMX0hXLAotICAgICAgICBIV19OQ1BVCi0gICAgfTsKLSAgICBpbnQgc3lzY3RsUmVz
dWx0ID0gc3lzY3RsKG5hbWUsIHNpemVvZihuYW1lKSAvIHNpemVvZihpbnQpLCAmcmVzdWx0LCAm
bGVuZ3RoLCAwLCAwKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gc3lzY3Rs
UmVzdWx0IDwgMCA/IGRlZmF1bHRJZlVuYXZhaWxhYmxlIDogcmVzdWx0OwotI2VsaWYgT1MoTElO
VVgpIHx8IE9TKEFJWCkgfHwgT1MoU09MQVJJUykKLSAgICBsb25nIHN5c2NvbmZSZXN1bHQgPSBz
eXNjb25mKF9TQ19OUFJPQ0VTU09SU19PTkxOKTsKLSAgICBzX21heE51bWJlck9mUGFyYWxsZWxU
aHJlYWRzID0gc3lzY29uZlJlc3VsdCA8IDAgPyBkZWZhdWx0SWZVbmF2YWlsYWJsZSA6IHN0YXRp
Y19jYXN0PGludD4oc3lzY29uZlJlc3VsdCk7Ci0jZWxpZiBPUyhXSU5ET1dTKQotICAgIFVOVVNF
RF9QQVJBTShkZWZhdWx0SWZVbmF2YWlsYWJsZSk7Ci0KLSAgICBTWVNURU1fSU5GTyBzeXNJbmZv
OwotICAgIEdldFN5c3RlbUluZm8oJnN5c0luZm8pOwotICAgIHNfbWF4TnVtYmVyT2ZQYXJhbGxl
bFRocmVhZHMgPSBzeXNJbmZvLmR3TnVtYmVyT2ZQcm9jZXNzb3JzOwotI2Vsc2UKLSAgICBzX21h
eE51bWJlck9mUGFyYWxsZWxUaHJlYWRzID0gZGVmYXVsdElmVW5hdmFpbGFibGU7Ci0jZW5kaWYK
LX0KLQogYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9y
KFBhcmFsbGVsRW52aXJvbm1lbnQqIHBhcmVudCkKIHsKICAgICBib29sIGxvY2tlZCA9IG1fbXV0
ZXgudHJ5TG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXJh
bGxlbEpvYnNHZW5lcmljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9i
c0dlbmVyaWMuaAppbmRleCBkYWI2ZGQ5Li4xYzdkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaApAQCAtODQsMTUgKzg0LDEyIEBAIHB1
YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIGRldGVybWluZU1heE51
bWJlck9mUGFyYWxsZWxUaHJlYWRzKCk7Ci0KICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1
bmN0aW9uOwogICAgIHNpemVfdCBtX3NpemVPZlBhcmFtZXRlcjsKICAgICBpbnQgbV9udW1iZXJP
ZkpvYnM7CiAKICAgICBWZWN0b3I8IFJlZlB0cjxUaHJlYWRQcml2YXRlPiA+IG1fdGhyZWFkczsK
ICAgICBzdGF0aWMgVmVjdG9yPCBSZWZQdHI8VGhyZWFkUHJpdmF0ZT4gPiogc190aHJlYWRQb29s
OwotICAgIHN0YXRpYyBpbnQgc19tYXhOdW1iZXJPZlBhcmFsbGVsVGhyZWFkczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwppbmRleCA4NmYzNmQ3Li42OGM2M2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEyLTAxLTE4ICBSb2xhbmQgVGFrYWNzICA8dGFrYWNzLnJvbGFuZEBzdHVkLnUtc3pl
Z2VkLmh1PgorCisgICAgICAgIENyb3NzLXBsYXRmb3JtIHByb2Nlc3NvciBjb3JlIGNvdW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTMwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHdvIGZpbGVz
IGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgcHJvamVjdCwgbmFtZWx5IE51bWJlck9mQ29yZXMuaC9j
cHAsCisgICAgICAgIHRoYXQgaW5jbHVkZSBhIENQVSBjb3JlIG51bWJlciBkZXRlcm1pbmluZyBm
dW5jdGlvbi4KKworICAgICAgICAqIFdURi5wcm86CisKIDIwMTItMDEtMTcgIENhaW8gTWFyY2Vs
byBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAg
ICAgICBVaW50OENsYW1wZWRBcnJheSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggNDQ3MTdiOS4uN2E0ZDllMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtODIs
NiArODIsNyBAQCBIRUFERVJTICs9IFwKICAgICBOb25Db3B5aW5nU29ydC5oIFwKICAgICBOb3RG
b3VuZC5oIFwKICAgICBOdWxsUHRyLmggXAorICAgIE51bWJlck9mQ29yZXMuaCBcCiAgICAgT1NB
bGxvY2F0b3IuaCBcCiAgICAgT1NSYW5kb21Tb3VyY2UuaCBcCiAgICAgT3duQXJyYXlQdHIuaCBc
CkBAIC0xODgsNiArMTg5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTWFpblRocmVhZC5jcHAgXAog
ICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNwcCBcCisgICAgTnVtYmVyT2ZD
b3Jlcy5jcHAgXAogICAgIE9TUmFuZG9tU291cmNlLmNwcCBcCiAgICAgcXQvTWFpblRocmVhZFF0
LmNwcCBcCiAgICAgcXQvU3RyaW5nUXQuY3BwIFwK
</data>
<flag name="review"
          id="123843"
          type_id="1"
          status="-"
          setter="rtakacs"
    />
    <flag name="commit-queue"
          id="123844"
          type_id="3"
          status="-"
          setter="rtakacs"
    />
          </attachment>
      

    </bug>

</bugzilla>