<?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>218069</bug_id>
          
          <creation_ts>2020-10-21 19:41:45 -0700</creation_ts>
          <short_desc>Move some initialization code from top-level CMakeLists.txt to WebKitCommon.cmake</short_desc>
          <delta_ts>2020-10-26 12:54:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1700526</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-21 19:41:45 -0700</bug_when>
    <thetext>Moving this initialization code into a central location allows other top-level CMakeLists.txt files to include WebKitCommon.cmake and get that same initialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700527</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-21 19:41:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/70556952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700528</commentid>
    <comment_count>2</comment_count>
      <attachid>412062</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-21 19:43:37 -0700</bug_when>
    <thetext>Created attachment 412062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700531</commentid>
    <comment_count>3</comment_count>
      <attachid>412062</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-21 20:01:06 -0700</bug_when>
    <thetext>Comment on attachment 412062
Patch

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

&gt; Source/cmake/WebKitCommon.cmake:35
&gt; +        Efl

Efl port was removed.

&gt; CMakeLists.txt:2
&gt;  # Determine CMake version and build type.

This file no longer determines build type. This comment becomes invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700533</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-21 20:12:38 -0700</bug_when>
    <thetext>(In reply to Keith Rollin from comment #0)
&gt; Moving this initialization code into a central location allows other
&gt; top-level CMakeLists.txt files to include WebKitCommon.cmake and get that
&gt; same initialization.

I don&apos;t know the reason why you want to include WebKit&apos;s CMake
files from the outside of WebKit, but basically it is a bad idea.
It means that those CMake files are public API.

For example, Apple Safari code is (was?) including WTF headers,
so some changes were reverted because it breaks internal Apple
builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700716</commentid>
    <comment_count>5</comment_count>
      <attachid>412062</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-10-22 10:30:19 -0700</bug_when>
    <thetext>Comment on attachment 412062
Patch

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

WebKitCommon is included in every Source/$&lt;lib&gt;/CMakeLists.txt specifically to handle the internal AppleWin build so this change will most likely cause breakage there.

I know whatever you&apos;re up to Keith will encourage Apple to switch over to CMake which is a great thing but not being able to see what this private project is up to makes me a bit nervous. I really feel that WebKit should be built as an External project and maybe we can come up with some ways to have a CMake config or something for you to consume see https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/How-to-create-a-ProjectConfig.cmake-file

&gt; CMakeLists.txt:15
&gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)

Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like it&apos;ll nuke it which is bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700743</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-10-22 10:57:44 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #5)
&gt; maybe we can come up with some ways to have
&gt; a CMake config or something for you to consume see
&gt; https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/How-to-
&gt; create-a-ProjectConfig.cmake-file

This is definitely the right way to use WebKit in other cmake projects. Such config files can even be installed system-wide, so using something like find_package(WebKit) would automatically find and include them in user&apos;s project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700751</commentid>
    <comment_count>7</comment_count>
      <attachid>412062</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-10-22 11:15:06 -0700</bug_when>
    <thetext>Comment on attachment 412062
Patch

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

&gt;&gt; CMakeLists.txt:15
&gt;&gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)
&gt; 
&gt; Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like it&apos;ll nuke it which is bad.

Yeah, we should probably append rather than overwrite it. But it&apos;s also been there forever (just higher in the file).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700798</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-22 13:28:47 -0700</bug_when>
    <thetext>(In reply to Konstantin Tokarev from comment #6)
&gt; This is definitely the right way to use WebKit in other cmake projects. 

It isn&apos;t the only right way.
Another right way to include other projects is using add_subdirectory.
https://cmake.org/cmake/help/latest/command/add_subdirectory.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700802</commentid>
    <comment_count>9</comment_count>
      <attachid>412062</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-22 13:32:22 -0700</bug_when>
    <thetext>Comment on attachment 412062
Patch

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

&gt;&gt;&gt; CMakeLists.txt:15
&gt;&gt;&gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)
&gt;&gt; 
&gt;&gt; Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like it&apos;ll nuke it which is bad.
&gt; 
&gt; Yeah, we should probably append rather than overwrite it. But it&apos;s also been there forever (just higher in the file).

WebKit doesn&apos;t need other CMAKE_MODULE_PATH or the parent&apos;s CMAKE_MODULE_PATH.
WebKit is using only WebKit&apos;s cmake files and builtin ones.
Appending CMAKE_MODULE_PATH can break WebKit builds by finding out an incorrect cmake file in the parent project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700818</commentid>
    <comment_count>10</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-10-22 13:51:36 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #8)
&gt; (In reply to Konstantin Tokarev from comment #6)
&gt; &gt; This is definitely the right way to use WebKit in other cmake projects. 
&gt; 
&gt; It isn&apos;t the only right way.
&gt; Another right way to include other projects is using add_subdirectory.
&gt; https://cmake.org/cmake/help/latest/command/add_subdirectory.html

add_subdirectory should never be used for including projects which you don&apos;t fully control, external projects should use config files or find modules</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700820</commentid>
    <comment_count>11</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2020-10-22 13:54:56 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #9)
&gt; Comment on attachment 412062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412062&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; CMakeLists.txt:15
&gt; &gt;&gt;&gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)
&gt; &gt;&gt; 
&gt; &gt;&gt; Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like it&apos;ll nuke it which is bad.
&gt; &gt; 
&gt; &gt; Yeah, we should probably append rather than overwrite it. But it&apos;s also been there forever (just higher in the file).
&gt; 
&gt; WebKit doesn&apos;t need other CMAKE_MODULE_PATH or the parent&apos;s
&gt; CMAKE_MODULE_PATH.
&gt; WebKit is using only WebKit&apos;s cmake files and builtin ones.
&gt; Appending CMAKE_MODULE_PATH can break WebKit builds by finding out an
&gt; incorrect cmake file in the parent project.

While I don&apos;t see a good use case for passing custom CMAKE_MODULE_PATH, I think it&apos;s not bad to use append as well. If user specifies CMAKE_MODULE_PATH for some reason, it&apos;s their responsibility if something gets broken as a result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700844</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-22 14:40:59 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #4)
&gt; (In reply to Keith Rollin from comment #0)
&gt; &gt; Moving this initialization code into a central location allows other
&gt; &gt; top-level CMakeLists.txt files to include WebKitCommon.cmake and get that
&gt; &gt; same initialization.
&gt; 
&gt; I don&apos;t know the reason why you want to include WebKit&apos;s CMake
&gt; files from the outside of WebKit, but basically it is a bad idea.
&gt; It means that those CMake files are public API.
&gt; 
&gt; For example, Apple Safari code is (was?) including WTF headers,
&gt; so some changes were reverted because it breaks internal Apple
&gt; builds.

I hear you and understand your concern. However, my take is that what I&apos;m doing is a necessary risk. The external CMake files I&apos;m creating reference things like DERIVED_SOURCES_DIR and WEBKIT_COPY_FILES. I don&apos;t remember the details right now, but at one point I also needed to have the CPU-related definitions available. If I include WebKitCommon as I&apos;m doing now, then I can use those as is, at the risk of breaking if an incompatible change to the WebKit CMake files are checked in. On the other hand, I could copy the definitions of DERIVED_SOURCES_DIR and WEBKIT_COPY_FILES and the CPU-sniffing code into my external project, but then have the burden of keeping them in sync with the WebKit copies, and still suffer the possibility of breaking if an incompatible change is checked in.

Those are the two alternatives I can see. Do you see a better approach?

Keep in mind that I have the requirement of doing some setup before performing the WebKit build. WebKit can be extended by making some files available and then having the WebKit build system discover them and incorporate them. That&apos;s why I have an external CMake file that performs this setup, performs the WebKit build, and then continues on with some downstream builds based on the built WebKit.
I hear you and understand your concern. However, my take is that what I&apos;m doing is a necessary risk. The external CMake files I&apos;m creating reference things like DERIVED_SOURCES_DIR and WEBKIT_COPY_FILES. I don&apos;t remember the details right now, but at one point I also needed to have the CPU-related definitions available. If I include WebKitCommon as I&apos;m doing now, then I can use those as is, at the risk of breaking if an incompatible change to the WebKit CMake files are checked in. On the other hand, I could copy the definitions of DERIVED_SOURCES_DIR and WEBKIT_COPY_FILES and the CPU-sniffing code into my external project, but then have the burden of keeping them in sync with the WebKit copies, and still suffer the possibility of breaking if an incompatible change is checked in.

Those are the two alternatives I can see. Do you see a better approach?

Keep in mind that I have the requirement of doing some setup before performing the WebKit build. WebKit can be extended by making some files available and then having the WebKit build system discover them and incorporate them. That&apos;s why I have an external CMake file that performs this setup, performs the WebKit build, and then continues on with some downstream builds based on the built WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700846</commentid>
    <comment_count>13</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-22 14:44:53 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #5)
&gt; Comment on attachment 412062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412062&amp;action=review
&gt; 
&gt; WebKitCommon is included in every Source/$&lt;lib&gt;/CMakeLists.txt specifically
&gt; to handle the internal AppleWin build so this change will most likely cause
&gt; breakage there.

What kind of breakage do you see happening? The &quot;win&quot; bubble is green above; what other types of builds are being performed that will break?

&gt; 
&gt; I know whatever you&apos;re up to Keith will encourage Apple to switch over to
&gt; CMake which is a great thing but not being able to see what this private
&gt; project is up to makes me a bit nervous. I really feel that WebKit should be
&gt; built as an External project and maybe we can come up with some ways to have
&gt; a CMake config or something for you to consume see
&gt; https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/How-to-
&gt; create-a-ProjectConfig.cmake-file

I&apos;ve been trying to understand this example (remember that I&apos;m a cmake beginner) but can&apos;t see that it helps my case. See my Comment #12. I don&apos;t see how ExternalProject or that article helps me.

&gt; 
&gt; &gt; CMakeLists.txt:15
&gt; &gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)
&gt; 
&gt; Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like
&gt; it&apos;ll nuke it which is bad.

This is the same line that already existed in the file; I just moved it out of the block of code I moved to WebKitCommon.

For a little bit, I did have a guard around it so that it didn&apos;t wipe out any previous CMAKE_MODULE_PATH (I didn&apos;t realize that it could be added on to). I had defined CMAKE_MODULE_PATH in my external CMakeLists.txt file so that it could include(WebKitCommon), and worried about it getting redefined in WebKit&apos;s CMakeLists.txt file. But both definitions pointed to the same directory, so I was OK with CMAKE_MODULE_PATH getting nuked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700848</commentid>
    <comment_count>14</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2020-10-22 14:47:40 -0700</bug_when>
    <thetext>To be clear, even though there&apos;s an r+, I&apos;ll hold off landing this patch until there&apos;s agreement on the approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700891</commentid>
    <comment_count>15</comment_count>
      <attachid>412062</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-22 17:04:37 -0700</bug_when>
    <thetext>Comment on attachment 412062
Patch

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

&gt;&gt;&gt;&gt;&gt;&gt; CMakeLists.txt:15
&gt;&gt;&gt;&gt;&gt;&gt; +set(CMAKE_MODULE_PATH &quot;${CMAKE_SOURCE_DIR}/Source/cmake&quot;)
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; Is anyone ever passing in a CMAKE_MODULE_PATH because if so this seems like it&apos;ll nuke it which is bad.
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Yeah, we should probably append rather than overwrite it. But it&apos;s also been there forever (just higher in the file).
&gt;&gt;&gt; 
&gt;&gt;&gt; WebKit doesn&apos;t need other CMAKE_MODULE_PATH or the parent&apos;s CMAKE_MODULE_PATH.
&gt;&gt;&gt; WebKit is using only WebKit&apos;s cmake files and builtin ones.
&gt;&gt;&gt; Appending CMAKE_MODULE_PATH can break WebKit builds by finding out an incorrect cmake file in the parent project.
&gt;&gt; 
&gt;&gt; While I don&apos;t see a good use case for passing custom CMAKE_MODULE_PATH, I think it&apos;s not bad to use append as well. If user specifies CMAKE_MODULE_PATH for some reason, it&apos;s their responsibility if something gets broken as a result.
&gt; 
&gt; This is the same line that already existed in the file; I just moved it out of the block of code I moved to WebKitCommon.
&gt; 
&gt; For a little bit, I did have a guard around it so that it didn&apos;t wipe out any previous CMAKE_MODULE_PATH (I didn&apos;t realize that it could be added on to). I had defined CMAKE_MODULE_PATH in my external CMakeLists.txt file so that it could include(WebKitCommon), and worried about it getting redefined in WebKit&apos;s CMakeLists.txt file. But both definitions pointed to the same directory, so I was OK with CMAKE_MODULE_PATH getting nuked.

CMake variabls have Directory Scope. You need to use PARENT_SCOPE to nuke the parent directory&apos;s CMAKE_MODULE_PATH.
set(CMAKE_MODULE_PATH ... PARENT_SCOPE)

https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#cmake-language-variables
https://cmake.org/cmake/help/latest/command/set.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700897</commentid>
    <comment_count>16</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-22 17:17:06 -0700</bug_when>
    <thetext>There seem two issues of discussion.

1. add_subdirectory vs. ExternalProject
2. Using WebKit internal CMake files from the outside of WebKit

I think both issues are trivial, we can choose another the
approach if we&apos;ll have a real problem. We should go forward in
the direction Keith chose.

ExternalProject — CMake Documentation
https://cmake.org/cmake/help/latest/module/ExternalProject.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700899</commentid>
    <comment_count>17</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-10-22 17:21:20 -0700</bug_when>
    <thetext>(In reply to Keith Rollin from comment #13)
&gt; What kind of breakage do you see happening? The &quot;win&quot; bubble is green above;
&gt; what other types of builds are being performed that will break?

OpenSource ApplwWin EWS and OpenSource AppleWin buildbot builder don&apos;t do the infamous per-directory-builds.
Only ApplwWin Apple Internal build system does the per-directory-builds.

But, I guess this change won&apos;t break it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701022</commentid>
    <comment_count>18</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2020-10-23 08:40:04 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #17)
&gt; (In reply to Keith Rollin from comment #13)
&gt; &gt; What kind of breakage do you see happening? The &quot;win&quot; bubble is green above;
&gt; &gt; what other types of builds are being performed that will break?
&gt; 
&gt; OpenSource ApplwWin EWS and OpenSource AppleWin buildbot builder don&apos;t do
&gt; the infamous per-directory-builds.
&gt; Only ApplwWin Apple Internal build system does the per-directory-builds.
&gt; 
&gt; But, I guess this change won&apos;t break it.

Its my understanding that Apple&apos;s internal build for WebKit checks out a single Source directory, so WTF/JavaScriptCore/etc, and builds that then passes this along to the next builder. There is an internal AppleWin build that behaves the same way but uses Visual Studio projects and CMake.

You can see in each subdirectory of Source there&apos;s a ${LIB_NAME}.vcxproj that contains a Visual Studio project that invokes CMake https://github.com/WebKit/webkit/blob/master/Source/WebCore/WebCore.vcxproj/WebCore.proj#L31 which actually does the build. It acts on the CMakeLists.txt on each subdirectory of Source which is why those include()&apos;s at the top of each Source/${LIB_NAME}/CMakeLists.txt exist.

You can talk to Brent, Per Arne, or Alex about the internal build more. I just know this much because I&apos;ve accidentally broken it so many times 😅 and I would be paranoid that this change would do something there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701170</commentid>
    <comment_count>19</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-23 17:05:50 -0700</bug_when>
    <thetext>I don&apos;t think this change will break the internal build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701573</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-26 12:54:50 -0700</bug_when>
    <thetext>Committed r268991: &lt;https://trac.webkit.org/changeset/268991&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412062.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412062</attachid>
            <date>2020-10-21 19:43:37 -0700</date>
            <delta_ts>2020-10-26 12:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218069-20201021194336.patch</filename>
            <type>text/plain</type>
            <size>14761</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0Q29tbW9uLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdENvbW1vbi5jbWFrZQppbmRleCAx
MWVjMmRmYzEwOWU3YWQzZDg3ZDMwZDAxN2RiNGYwM2EwMTMyZTViLi43ZWM3NWFmYjU0YTcxMWVj
OWE3NDAyMDczODAxMWYzNGViYWZhYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0
Q29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21tb24uY21ha2UKQEAgLTYs
NiArNiwxNTkgQEAKIGlmIChOT1QgSEFTX1JVTl9XRUJLSVRfQ09NTU9OKQogICAgIHNldChIQVNf
UlVOX1dFQktJVF9DT01NT04gVFJVRSkKIAorICAgIGlmIChOT1QgQ01BS0VfQlVJTERfVFlQRSkK
KyAgICAgICAgbWVzc2FnZShXQVJOSU5HICJObyBDTUFLRV9CVUlMRF9UWVBFIHZhbHVlIHNwZWNp
ZmllZCwgZGVmYXVsdGluZyB0byBSZWxXaXRoRGViSW5mby4iKQorICAgICAgICBzZXQoQ01BS0Vf
QlVJTERfVFlQRSAiUmVsV2l0aERlYkluZm8iIENBQ0hFIFNUUklORyAiQ2hvb3NlIHRoZSB0eXBl
IG9mIGJ1aWxkLiIgRk9SQ0UpCisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKFNUQVRVUyAi
VGhlIENNYWtlIGJ1aWxkIHR5cGUgaXM6ICR7Q01BS0VfQlVJTERfVFlQRX0iKQorICAgIGVuZGlm
ICgpCisKKyAgICBzZXQoRU5BQkxFX1dFQkNPUkUgT04pCisKKyAgICBpZiAoTk9UIERFRklORUQg
RU5BQkxFX1dFQktJVCkKKyAgICAgICAgc2V0KEVOQUJMRV9XRUJLSVQgT04pCisgICAgZW5kaWYg
KCkKKworICAgIGlmIChOT1QgREVGSU5FRCBFTkFCTEVfVE9PTFMgQU5EIEVYSVNUUyAiJHtDTUFL
RV9TT1VSQ0VfRElSfS9Ub29scyIpCisgICAgICAgIHNldChFTkFCTEVfVE9PTFMgT04pCisgICAg
ZW5kaWYgKCkKKworICAgIGlmIChOT1QgREVGSU5FRCBFTkFCTEVfV0VCSU5TUEVDVE9SVUkpCisg
ICAgICAgIHNldChFTkFCTEVfV0VCSU5TUEVDVE9SVUkgT04pCisgICAgZW5kaWYgKCkKKworICAg
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIERldGVybWluZSB3aGljaCBwb3J0IHdpbGwg
YmUgYnVpbHQKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgc2V0KEFMTF9QT1JUUwor
ICAgICAgICBBcHBsZVdpbgorICAgICAgICBFZmwKKyAgICAgICAgRlRXCisgICAgICAgIEdUSwor
ICAgICAgICBKU0NPbmx5CisgICAgICAgIE1hYworICAgICAgICBQbGF5U3RhdGlvbgorICAgICAg
ICBXUEUKKyAgICAgICAgV2luQ2Fpcm8KKyAgICApCisgICAgc2V0KFBPUlQgIk5PUE9SVCIgQ0FD
SEUgU1RSSU5HICJjaG9vc2Ugd2hpY2ggV2ViS2l0IHBvcnQgdG8gYnVpbGQgKG9uZSBvZiAke0FM
TF9QT1JUU30pIikKKworICAgIGxpc3QoRklORCBBTExfUE9SVFMgJHtQT1JUfSBSRVQpCisgICAg
aWYgKCR7UkVUfSBFUVVBTCAtMSkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiUGxlYXNl
IGNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25lIG9mICR7QUxMX1BPUlRTfSki
KQorICAgIGVuZGlmICgpCisKKyAgICBzdHJpbmcoVE9MT1dFUiAke1BPUlR9IFdFQktJVF9QT1JU
X0RJUikKKworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIERldGVybWluZSB0aGUg
Y29tcGlsZXIKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgaWYgKCR7Q01BS0VfQ1hY
X0NPTVBJTEVSX0lEfSBTVFJFUVVBTCAiQ2xhbmciIE9SICR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lE
fSBTVFJFUVVBTCAiQXBwbGVDbGFuZyIpCisgICAgICAgIHNldChDT01QSUxFUl9JU19DTEFORyBP
TikKKyAgICBlbmRpZiAoKQorCisgICAgaWYgKCR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lEfSBTVFJF
UVVBTCAiR05VIikKKyAgICAgICAgaWYgKCR7Q01BS0VfQ1hYX0NPTVBJTEVSX1ZFUlNJT059IFZF
UlNJT05fTEVTUyAiNy4zLjAiKQorICAgICAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiR0ND
IDcuMyBvciBuZXdlciBpcyByZXF1aXJlZCB0byBidWlsZCBXZWJLaXQuIFVzZSBhIG5ld2VyIEdD
QyB2ZXJzaW9uIG9yIENsYW5nLiIpCisgICAgICAgIGVuZGlmICgpCisgICAgZW5kaWYgKCkKKwor
ICAgIGlmIChDTUFLRV9DT01QSUxFUl9JU19HTlVDWFggT1IgQ09NUElMRVJfSVNfQ0xBTkcpCisg
ICAgICAgIHNldChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcgT04pCisgICAgZW5kaWYgKCkKKwor
ICAgIGlmIChNU1ZDIEFORCBDT01QSUxFUl9JU19DTEFORykKKyAgICAgICAgc2V0KENPTVBJTEVS
X0lTX0NMQU5HX0NMIE9OKQorICAgIGVuZGlmICgpCisKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgIyBEZXRlcm1pbmUgdGhlIHRhcmdldCBwcm9jZXNzb3IKKyAgICAjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgICAgIyBVc2UgTVNWQ19DWFhfQVJDSElURUNUVVJFX0lEIGluc3RlYWQg
b2YgQ01BS0VfU1lTVEVNX1BST0NFU1NPUiB3aGVuIGRlZmluZWQsCisgICAgIyBzaW5jZSB0aGUg
bGF0ZXIgb25lIGp1c3QgcmVzb2x2ZXMgdG8gdGhlIGhvc3QgcHJvY2Vzc29yIG9uIFdpbmRvd3Mu
CisgICAgaWYgKE1TVkNfQ1hYX0FSQ0hJVEVDVFVSRV9JRCkKKyAgICAgICAgc3RyaW5nKFRPTE9X
RVIgJHtNU1ZDX0NYWF9BUkNISVRFQ1RVUkVfSUR9IExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJP
Q0VTU09SKQorICAgIGVsc2UgKCkKKyAgICAgICAgc3RyaW5nKFRPTE9XRVIgJHtDTUFLRV9TWVNU
RU1fUFJPQ0VTU09SfSBMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUikKKyAgICBlbmRp
ZiAoKQorICAgIGlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICIo
XmFhcmNoNjR8XmFybTY0KSIpCisgICAgICAgIHNldChXVEZfQ1BVX0FSTTY0IDEpCisgICAgZWxz
ZWlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICJeYXJtIikKKyAg
ICAgICAgc2V0KFdURl9DUFVfQVJNIDEpCisgICAgZWxzZWlmIChMT1dFUkNBU0VfQ01BS0VfU1lT
VEVNX1BST0NFU1NPUiBNQVRDSEVTICJebWlwczY0IikKKyAgICAgICAgc2V0KFdURl9DUFVfTUlQ
UzY0IDEpCisgICAgZWxzZWlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRD
SEVTICJebWlwcyIpCisgICAgICAgIHNldChXVEZfQ1BVX01JUFMgMSkKKyAgICBlbHNlaWYgKExP
V0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMgIih4NjR8eDg2XzY0fGFtZDY0
KSIpCisgICAgICAgICMgRk9SQ0VfMzJCSVQgaXMgc2V0IGluIHRoZSBidWlsZCBzY3JpcHQgd2hl
biAtLTMyLWJpdCBpcyBwYXNzZWQKKyAgICAgICAgIyBvbiBhIExpbnV4L2ludGVsIDY0Yml0IGhv
c3QuIFRoaXMgYWxsb3dzIHVzIHRvIHByb2R1Y2UgMzJiaXQKKyAgICAgICAgIyBiaW5hcmllcyB3
aXRob3V0IHNldHRpbmcgdGhlIGJ1aWxkIHVwIGFzIGEgY3Jvc3Njb21waWxhdGlvbiwKKyAgICAg
ICAgIyB3aGljaCBpcyB0aGUgb25seSB3YXkgdG8gbW9kaWZ5IENNQUtFX1NZU1RFTV9QUk9DRVNT
T1IuCisgICAgICAgIGlmIChGT1JDRV8zMkJJVCkKKyAgICAgICAgICAgIHNldChXVEZfQ1BVX1g4
NiAxKQorICAgICAgICBlbHNlICgpCisgICAgICAgICAgICBzZXQoV1RGX0NQVV9YODZfNjQgMSkK
KyAgICAgICAgZW5kaWYgKCkKKyAgICBlbHNlaWYgKExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJP
Q0VTU09SIE1BVENIRVMgIihpWzMtNl04Nnx4ODYpIikKKyAgICAgICAgc2V0KFdURl9DUFVfWDg2
IDEpCisgICAgZWxzZWlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVT
ICJwcGMiKQorICAgICAgICBzZXQoV1RGX0NQVV9QUEMgMSkKKyAgICBlbHNlaWYgKExPV0VSQ0FT
RV9DTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMgInBwYzY0IikKKyAgICAgICAgc2V0KFdU
Rl9DUFVfUFBDNjQgMSkKKyAgICBlbHNlaWYgKExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VT
U09SIE1BVENIRVMgInBwYzY0bGUiKQorICAgICAgICBzZXQoV1RGX0NQVV9QUEM2NExFIDEpCisg
ICAgZWxzZSAoKQorICAgICAgICBzZXQoV1RGX0NQVV9VTktOT1dOIDEpCisgICAgZW5kaWYgKCkK
KworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIERldGVybWluZSB0aGUgb3BlcmF0
aW5nIHN5c3RlbQorICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBpZiAoVU5JWCkKKyAg
ICAgICAgaWYgKEFQUExFKQorICAgICAgICAgICAgc2V0KFdURl9PU19NQUNfT1NfWCAxKQorICAg
ICAgICBlbHNlaWYgKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIkxpbnV4IikKKyAgICAgICAg
ICAgIHNldChXVEZfT1NfTElOVVggMSkKKyAgICAgICAgZWxzZSAoKQorICAgICAgICAgICAgc2V0
KFdURl9PU19VTklYIDEpCisgICAgICAgIGVuZGlmICgpCisgICAgZWxzZWlmIChDTUFLRV9TWVNU
RU1fTkFNRSBNQVRDSEVTICJXaW5kb3dzIikKKyAgICAgICAgc2V0KFdURl9PU19XSU5ET1dTIDEp
CisgICAgZWxzZWlmIChDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJGdWNoc2lhIikKKyAgICAg
ICAgc2V0KFdURl9PU19GVUNIU0lBIDEpCisgICAgZWxzZSAoKQorICAgICAgICBtZXNzYWdlKEZB
VEFMX0VSUk9SICJVbmtub3duIE9TICcke0NNQUtFX1NZU1RFTV9OQU1FfSciKQorICAgIGVuZGlm
ICgpCisKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBEZWZhdWx0IGxpYnJhcnkg
dHlwZXMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBCeSBkZWZhdWx0LCBvbmx5
IHRoZSBoaWdoZXN0LWxldmVsIGxpYnJhcmllcywgV2ViS2l0TGVnYWN5IGFuZCBXZWJLaXQsIGFy
ZQorICAgICMgc2hhcmVkLCBiZWNhdXNlIHByb3Blcmx5IGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJp
ZXMgdGhhdCBkZXBlbmQgb24gZWFjaCBvdGhlcgorICAgICMgY2FuIGJlIHRyaWNreS4gT3ZlcnJp
ZGUgdGhlc2UgaW4gT3B0aW9ucyouY21ha2UgZm9yIHlvdXIgcG9ydCBhcyBuZWVkZWQuCisgICAg
c2V0KGJtYWxsb2NfTElCUkFSWV9UWVBFIFNUQVRJQykKKyAgICBzZXQoV1RGX0xJQlJBUllfVFlQ
RSBTVEFUSUMpCisgICAgc2V0KEphdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQRSBTVEFUSUMpCisg
ICAgc2V0KFBBTF9MSUJSQVJZX1RZUEUgU1RBVElDKQorICAgIHNldChXZWJDb3JlX0xJQlJBUllf
VFlQRSBTVEFUSUMpCisgICAgc2V0KFdlYktpdExlZ2FjeV9MSUJSQVJZX1RZUEUgU0hBUkVEKQor
ICAgIHNldChXZWJLaXRfTElCUkFSWV9UWVBFIFNIQVJFRCkKKyAgICBzZXQoV2ViQ29yZVRlc3RT
dXBwb3J0X0xJQlJBUllfVFlQRSBTVEFUSUMpCisKKyAgICBzZXQoQ01BS0VfUE9TSVRJT05fSU5E
RVBFTkRFTlRfQ09ERSBUcnVlKQorCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMg
SW5zdGFsbCBKYXZhU2NyaXB0IHNoZWxsCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
IG9wdGlvbihTSE9VTERfSU5TVEFMTF9KU19TSEVMTCAiZ2VuZXJhdGUgYW4gaW5zdGFsbGF0aW9u
IHJ1bGUgdG8gaW5zdGFsbCB0aGUgYnVpbHQgSmF2YVNjcmlwdCBzaGVsbCIpCisKKyAgICAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBEZWZhdWx0IG91dHB1dCBkaXJlY3Rvcmllcywgd2hp
Y2ggY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHBvcnRzCisgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgIHNldChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllf
RElSfS9saWIpCisgICAgc2V0KENNQUtFX0xJQlJBUllfT1VUUFVUX0RJUkVDVE9SWSAke0NNQUtF
X0JJTkFSWV9ESVJ9L2xpYikKKyAgICBzZXQoQ01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZ
ICR7Q01BS0VfQklOQVJZX0RJUn0vYmluKQorCiAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
ICAgICMgRmluZCBjb21tb24gcGFja2FnZXMgKHVzZWQgYnkgYWxsIHBvcnRzKQogICAgICMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0
cy50eHQKaW5kZXggMDQ3OGQwYzk5MDI4YzBlMzIyZTI5YjE2OWVmM2ZlMGY4YTlmNDJiYS4uYzdi
ZWM5MDNhYjY5NDg5ZmJiMzU0NmU5ODgxMmMzMTgzNDQ4NDZjMiAxMDA2NDQKLS0tIGEvQ01ha2VM
aXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50eHQKQEAgLTEsMTc1ICsxLDE4IEBACiAjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAjIERldGVybWluZSBDTWFrZSB2ZXJzaW9uIGFuZCBidWlsZCB0eXBl
LgogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIwogIyBOT1RFOiBjbWFrZV9taW5pbXVtX3JlcXVp
cmVkKCkgYW5kIHByb2plY3QoKSAqTVVTVCogYmUgdGhlIHR3byBmaXJzdCBjb21tYW5kcwogIyB1
c2VkLCBzZWUgaHR0cHM6Ly9jbWFrZS5vcmcvY21ha2UvaGVscC92My4zL2NvbW1hbmQvcHJvamVj
dC5odG1sIC0tIHRoZQogIyBsYXR0ZXIgaW4gcGFydGljdWxhciBoYW5kbGVzIGxvYWRpbmcgYSBi
dW5jaCBvZiBzaGFyZWQgQ01ha2UgZGVmaW5pdGlvbnMKICMgYW5kIGxvYWRpbmcgdGhlIGNyb3Nz
LWNvbXBpbGF0aW9uIHNldHRpbmdzIGZyb20gQ01BS0VfVE9PTENIQUlOX0ZJTEUuCiAjCi0KIGNt
YWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjEwKQotCiBwcm9qZWN0KFdlYktpdCkKIAot
aWYgKE5PVCBDTUFLRV9CVUlMRF9UWVBFKQotICAgIG1lc3NhZ2UoV0FSTklORyAiTm8gQ01BS0Vf
QlVJTERfVFlQRSB2YWx1ZSBzcGVjaWZpZWQsIGRlZmF1bHRpbmcgdG8gUmVsV2l0aERlYkluZm8u
IikKLSAgICBzZXQoQ01BS0VfQlVJTERfVFlQRSAiUmVsV2l0aERlYkluZm8iIENBQ0hFIFNUUklO
RyAiQ2hvb3NlIHRoZSB0eXBlIG9mIGJ1aWxkLiIgRk9SQ0UpCi1lbHNlICgpCi0gICAgbWVzc2Fn
ZShTVEFUVVMgIlRoZSBDTWFrZSBidWlsZCB0eXBlIGlzOiAke0NNQUtFX0JVSUxEX1RZUEV9IikK
LWVuZGlmICgpCi0KLXNldChDTUFLRV9NT0RVTEVfUEFUSCAiJHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvY21ha2UiKQotCi1zZXQoRU5BQkxFX1dFQkNPUkUgT04pCi0KLWlmIChOT1QgREVGSU5F
RCBFTkFCTEVfV0VCS0lUKQotICAgIHNldChFTkFCTEVfV0VCS0lUIE9OKQotZW5kaWYgKCkKLQot
aWYgKE5PVCBERUZJTkVEIEVOQUJMRV9UT09MUyBBTkQgRVhJU1RTICIke0NNQUtFX1NPVVJDRV9E
SVJ9L1Rvb2xzIikKLSAgICBzZXQoRU5BQkxFX1RPT0xTIE9OKQotZW5kaWYgKCkKLQotaWYgKE5P
VCBERUZJTkVEIEVOQUJMRV9XRUJJTlNQRUNUT1JVSSkKLSAgICBzZXQoRU5BQkxFX1dFQklOU1BF
Q1RPUlVJIE9OKQotZW5kaWYgKCkKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBEZXRlcm1p
bmUgd2hpY2ggcG9ydCB3aWxsIGJlIGJ1aWx0Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1zZXQo
QUxMX1BPUlRTCi0gICAgQXBwbGVXaW4KLSAgICBFZmwKLSAgICBGVFcKLSAgICBHVEsKLSAgICBK
U0NPbmx5Ci0gICAgTWFjCi0gICAgUGxheVN0YXRpb24KLSAgICBXUEUKLSAgICBXaW5DYWlybwot
KQotc2V0KFBPUlQgIk5PUE9SVCIgQ0FDSEUgU1RSSU5HICJjaG9vc2Ugd2hpY2ggV2ViS2l0IHBv
cnQgdG8gYnVpbGQgKG9uZSBvZiAke0FMTF9QT1JUU30pIikKLQotbGlzdChGSU5EIEFMTF9QT1JU
UyAke1BPUlR9IFJFVCkKLWlmICgke1JFVH0gRVFVQUwgLTEpCi0gICAgbWVzc2FnZShGQVRBTF9F
UlJPUiAiUGxlYXNlIGNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25lIG9mICR7
QUxMX1BPUlRTfSkiKQotZW5kaWYgKCkKLQotc3RyaW5nKFRPTE9XRVIgJHtQT1JUfSBXRUJLSVRf
UE9SVF9ESVIpCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGV0ZXJtaW5lIHRoZSBjb21w
aWxlcgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotaWYgKCR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lE
fSBTVFJFUVVBTCAiQ2xhbmciIE9SICR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lEfSBTVFJFUVVBTCAi
QXBwbGVDbGFuZyIpCi0gICAgc2V0KENPTVBJTEVSX0lTX0NMQU5HIE9OKQotZW5kaWYgKCkKLQot
aWYgKCR7Q01BS0VfQ1hYX0NPTVBJTEVSX0lEfSBTVFJFUVVBTCAiR05VIikKLSAgICBpZiAoJHtD
TUFLRV9DWFhfQ09NUElMRVJfVkVSU0lPTn0gVkVSU0lPTl9MRVNTICI3LjMuMCIpCi0gICAgICAg
IG1lc3NhZ2UoRkFUQUxfRVJST1IgIkdDQyA3LjMgb3IgbmV3ZXIgaXMgcmVxdWlyZWQgdG8gYnVp
bGQgV2ViS2l0LiBVc2UgYSBuZXdlciBHQ0MgdmVyc2lvbiBvciBDbGFuZy4iKQotICAgIGVuZGlm
ICgpCi1lbmRpZiAoKQotCi1pZiAoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYIE9SIENPTVBJTEVS
X0lTX0NMQU5HKQotICAgIHNldChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcgT04pCi1lbmRpZiAo
KQotCi1pZiAoTVNWQyBBTkQgQ09NUElMRVJfSVNfQ0xBTkcpCi0gICAgc2V0KENPTVBJTEVSX0lT
X0NMQU5HX0NMIE9OKQotZW5kaWYgKCkKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBEZXRl
cm1pbmUgdGhlIHRhcmdldCBwcm9jZXNzb3IKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVXNl
IE1TVkNfQ1hYX0FSQ0hJVEVDVFVSRV9JRCBpbnN0ZWFkIG9mIENNQUtFX1NZU1RFTV9QUk9DRVNT
T1Igd2hlbiBkZWZpbmVkLAotIyBzaW5jZSB0aGUgbGF0ZXIgb25lIGp1c3QgcmVzb2x2ZXMgdG8g
dGhlIGhvc3QgcHJvY2Vzc29yIG9uIFdpbmRvd3MuCi1pZiAoTVNWQ19DWFhfQVJDSElURUNUVVJF
X0lEKQotICAgIHN0cmluZyhUT0xPV0VSICR7TVNWQ19DWFhfQVJDSElURUNUVVJFX0lEfSBMT1dF
UkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUikKLWVsc2UgKCkKLSAgICBzdHJpbmcoVE9MT1dF
UiAke0NNQUtFX1NZU1RFTV9QUk9DRVNTT1J9IExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VT
U09SKQotZW5kaWYgKCkKLWlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRD
SEVTICIoXmFhcmNoNjR8XmFybTY0KSIpCi0gICAgc2V0KFdURl9DUFVfQVJNNjQgMSkKLWVsc2Vp
ZiAoTE9XRVJDQVNFX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFUQ0hFUyAiXmFybSIpCi0gICAg
c2V0KFdURl9DUFVfQVJNIDEpCi1lbHNlaWYgKExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VT
U09SIE1BVENIRVMgIl5taXBzNjQiKQotICAgIHNldChXVEZfQ1BVX01JUFM2NCAxKQotZWxzZWlm
IChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICJebWlwcyIpCi0gICAg
c2V0KFdURl9DUFVfTUlQUyAxKQotZWxzZWlmIChMT1dFUkNBU0VfQ01BS0VfU1lTVEVNX1BST0NF
U1NPUiBNQVRDSEVTICIoeDY0fHg4Nl82NHxhbWQ2NCkiKQotICAgICMgRk9SQ0VfMzJCSVQgaXMg
c2V0IGluIHRoZSBidWlsZCBzY3JpcHQgd2hlbiAtLTMyLWJpdCBpcyBwYXNzZWQKLSAgICAjIG9u
IGEgTGludXgvaW50ZWwgNjRiaXQgaG9zdC4gVGhpcyBhbGxvd3MgdXMgdG8gcHJvZHVjZSAzMmJp
dAotICAgICMgYmluYXJpZXMgd2l0aG91dCBzZXR0aW5nIHRoZSBidWlsZCB1cCBhcyBhIGNyb3Nz
Y29tcGlsYXRpb24sCi0gICAgIyB3aGljaCBpcyB0aGUgb25seSB3YXkgdG8gbW9kaWZ5IENNQUtF
X1NZU1RFTV9QUk9DRVNTT1IuCi0gICAgaWYgKEZPUkNFXzMyQklUKQotICAgICAgICBzZXQoV1RG
X0NQVV9YODYgMSkKLSAgICBlbHNlICgpCi0gICAgICAgIHNldChXVEZfQ1BVX1g4Nl82NCAxKQot
ICAgIGVuZGlmICgpCi1lbHNlaWYgKExPV0VSQ0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1B
VENIRVMgIihpWzMtNl04Nnx4ODYpIikKLSAgICBzZXQoV1RGX0NQVV9YODYgMSkKLWVsc2VpZiAo
TE9XRVJDQVNFX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFUQ0hFUyAicHBjIikKLSAgICBzZXQo
V1RGX0NQVV9QUEMgMSkKLWVsc2VpZiAoTE9XRVJDQVNFX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1Ig
TUFUQ0hFUyAicHBjNjQiKQotICAgIHNldChXVEZfQ1BVX1BQQzY0IDEpCi1lbHNlaWYgKExPV0VS
Q0FTRV9DTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMgInBwYzY0bGUiKQotICAgIHNldChX
VEZfQ1BVX1BQQzY0TEUgMSkKLWVsc2UgKCkKLSAgICBzZXQoV1RGX0NQVV9VTktOT1dOIDEpCi1l
bmRpZiAoKQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIERldGVybWluZSB0aGUgb3BlcmF0
aW5nIHN5c3RlbQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotaWYgKFVOSVgpCi0gICAgaWYgKEFQ
UExFKQotICAgICAgICBzZXQoV1RGX09TX01BQ19PU19YIDEpCi0gICAgZWxzZWlmIChDTUFLRV9T
WVNURU1fTkFNRSBNQVRDSEVTICJMaW51eCIpCi0gICAgICAgIHNldChXVEZfT1NfTElOVVggMSkK
LSAgICBlbHNlICgpCi0gICAgICAgIHNldChXVEZfT1NfVU5JWCAxKQotICAgIGVuZGlmICgpCi1l
bHNlaWYgKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMgIldpbmRvd3MiKQotICAgIHNldChXVEZf
T1NfV0lORE9XUyAxKQotZWxzZWlmIChDTUFLRV9TWVNURU1fTkFNRSBNQVRDSEVTICJGdWNoc2lh
IikKLSAgICBzZXQoV1RGX09TX0ZVQ0hTSUEgMSkKLWVsc2UgKCkKLSAgICBtZXNzYWdlKEZBVEFM
X0VSUk9SICJVbmtub3duIE9TICcke0NNQUtFX1NZU1RFTV9OQU1FfSciKQotZW5kaWYgKCkKLQot
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBEZWZhdWx0IGxpYnJhcnkgdHlwZXMKLSMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgQnkgZGVmYXVsdCwgb25seSB0aGUgaGlnaGVzdC1sZXZlbCBsaWJy
YXJpZXMsIFdlYktpdExlZ2FjeSBhbmQgV2ViS2l0LCBhcmUKLSMgc2hhcmVkLCBiZWNhdXNlIHBy
b3Blcmx5IGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMgdGhhdCBkZXBlbmQgb24gZWFjaCBvdGhl
cgotIyBjYW4gYmUgdHJpY2t5LiBPdmVycmlkZSB0aGVzZSBpbiBPcHRpb25zKi5jbWFrZSBmb3Ig
eW91ciBwb3J0IGFzIG5lZWRlZC4KLXNldChibWFsbG9jX0xJQlJBUllfVFlQRSBTVEFUSUMpCi1z
ZXQoV1RGX0xJQlJBUllfVFlQRSBTVEFUSUMpCi1zZXQoSmF2YVNjcmlwdENvcmVfTElCUkFSWV9U
WVBFIFNUQVRJQykKLXNldChQQUxfTElCUkFSWV9UWVBFIFNUQVRJQykKLXNldChXZWJDb3JlX0xJ
QlJBUllfVFlQRSBTVEFUSUMpCi1zZXQoV2ViS2l0TGVnYWN5X0xJQlJBUllfVFlQRSBTSEFSRUQp
Ci1zZXQoV2ViS2l0X0xJQlJBUllfVFlQRSBTSEFSRUQpCi1zZXQoV2ViQ29yZVRlc3RTdXBwb3J0
X0xJQlJBUllfVFlQRSBTVEFUSUMpCi0KLXNldChDTUFLRV9QT1NJVElPTl9JTkRFUEVOREVOVF9D
T0RFIFRydWUpCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSW5zdGFsbCBKYXZhU2NyaXB0
IHNoZWxsCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1vcHRpb24oU0hPVUxEX0lOU1RBTExfSlNf
U0hFTEwgImdlbmVyYXRlIGFuIGluc3RhbGxhdGlvbiBydWxlIHRvIGluc3RhbGwgdGhlIGJ1aWx0
IEphdmFTY3JpcHQgc2hlbGwiKQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIERlZmF1bHQg
b3V0cHV0IGRpcmVjdG9yaWVzLCB3aGljaCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgcG9ydHMKLSMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNldChDTUFLRV9BUkNISVZFX09VVFBVVF9ESVJFQ1RPUlkg
JHtDTUFLRV9CSU5BUllfRElSfS9saWIpCi1zZXQoQ01BS0VfTElCUkFSWV9PVVRQVVRfRElSRUNU
T1JZICR7Q01BS0VfQklOQVJZX0RJUn0vbGliKQotc2V0KENNQUtFX1JVTlRJTUVfT1VUUFVUX0RJ
UkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L2JpbikKLQogIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogIyBDb21tb24gY29uZmlndXJhdGlvbgogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc2V0KENN
QUtFX01PRFVMRV9QQVRIICIke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9jbWFrZSIpCiBpbmNs
dWRlKFdlYktpdENvbW1vbikKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDkwYzZkMTVjMTU2NTFiNTE0MjczODJmOTc1NWEz
Y2M4NjdlM2YxYzcuLjE3ZjFlMmRiYTY5ODQyOGJhM2EyNmI3NGEwOWYyODgyNDI3MTVmY2YgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MC0xMC0yMSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92
ZSBzb21lIGluaXRpYWxpemF0aW9uIGNvZGUgZnJvbSB0b3AtbGV2ZWwgQ01ha2VMaXN0cy50eHQg
dG8gV2ViS2l0Q29tbW9uLmNtYWtlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTgwNjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNTU2OTUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmluZyB0
aGlzIGluaXRpYWxpemF0aW9uIGNvZGUgaW50byBhIGNlbnRyYWwgbG9jYXRpb24gYWxsb3dzIG90
aGVyCisgICAgICAgIHRvcC1sZXZlbCBDTWFrZUxpc3RzLnR4dCBmaWxlcyB0byBpbmNsdWRlIFdl
YktpdENvbW1vbi5jbWFrZSBhbmQgZ2V0CisgICAgICAgIHRoYXQgc2FtZSBpbml0aWFsaXphdGlv
bi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRDb21tb24uY21ha2U6CisKIDIwMjAtMTAtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNh
dGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gTW92ZSBFTkFCTEVfQVNZTkNfU0NS
T0xMSU5HIGJ1aWxkIG9wdGlvbiB0byByaWdodCBwbGFjZSBpbiBPcHRpb25zR1RLLmNtYWtlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>