<?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>116349</bug_id>
          
          <creation_ts>2013-05-17 14:00:55 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Add CSS parsing support for image URI shape-inside and shape-outside values</short_desc>
          <delta_ts>2013-05-20 16:29:45 -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>CSS</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>
          
          <blocked>116348</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>890655</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-17 14:00:55 -0700</bug_when>
    <thetext>Add support for parsing image URI values for the shape-inside and shape-outside CSS properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890693</commentid>
    <comment_count>1</comment_count>
      <attachid>202164</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-17 15:02:06 -0700</bug_when>
    <thetext>Created attachment 202164
Patch

Note: there are some test changes that I&apos;d like to make in a subequent patch, to keep this one focused on just the mechanics of adding support for shape image URIs. The parsing shape-inside,outside parsing tests should be refactored, since they&apos;re nearly identical, and they should be moved to a subdirectory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890694</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 15:04:37 -0700</bug_when>
    <thetext>Attachment 202164 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/exclusions/parsing-wrap-shape-inside-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/parsing-wrap-shape-outside-expected.txt&apos;, u&apos;LayoutTests/fast/exclusions/script-tests/parsing-wrap-shape-inside.js&apos;, u&apos;LayoutTests/fast/exclusions/script-tests/parsing-wrap-shape-outside.js&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/CSSParser.cpp&apos;, u&apos;Source/WebCore/css/DeprecatedStyleBuilder.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/rendering/style/ExclusionShapeValue.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/style/ExclusionShapeValue.h:44:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/ExclusionShapeValue.h:45:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/rendering/style/ExclusionShapeValue.h:66:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 3 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890707</commentid>
    <comment_count>3</comment_count>
      <attachid>202166</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-17 15:39:19 -0700</bug_when>
    <thetext>Created attachment 202166
Patch

Fixed the style bot failure by changing the ExclusionShapeValue::type enum values from AUTO,SHAPE,... to Auto,Shape...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891205</commentid>
    <comment_count>4</comment_count>
      <attachid>202166</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-05-20 09:20:11 -0700</bug_when>
    <thetext>Comment on attachment 202166
Patch

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

Thanks, looks good!

&gt; LayoutTests/fast/exclusions/script-tests/parsing-wrap-shape-inside.js:61
&gt; +    var unevaledString = &apos;&quot;&apos; + value.replace(/\\/g, &quot;\\\\&quot;).replace(/&quot;/g, &quot;\&quot;&quot;).replace(/\n/g, &quot;\\n&quot;).replace(/\r/g, &quot;\\r&quot;) + &apos;&quot;&apos;;

nit: I think you can use JSON.stringify() now.

&gt; Source/WebCore/rendering/style/ExclusionShapeValue.h:66
&gt; +    void setImage(PassRefPtr&lt;StyleImage&gt; v)

nit: use full names for variables/parameters.

&gt; Source/WebCore/rendering/style/ExclusionShapeValue.h:74
&gt; +    ExclusionShapeValue(PassRefPtr&lt;BasicShape&gt; shape) : m_type(Shape), m_shape(shape) { }

nit: This is not WebKit style. You should have each member on a different line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891234</commentid>
    <comment_count>5</comment_count>
      <attachid>202289</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-20 10:28:10 -0700</bug_when>
    <thetext>Created attachment 202289
Patch

I made the ExclusionShapeValue.h changes you suggested.  I am going to revise the parsing tests in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891246</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-05-20 10:36:32 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=202289) [details]
&gt; Patch
&gt; 
&gt; I made the ExclusionShapeValue.h changes you suggested.  I am going to revise the parsing tests in a separate patch.

The test refactoring changes are covered by https://bugs.webkit.org/show_bug.cgi?id=116446</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891390</commentid>
    <comment_count>7</comment_count>
      <attachid>202289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-20 16:29:43 -0700</bug_when>
    <thetext>Comment on attachment 202289
Patch

Clearing flags on attachment: 202289

Committed r150387: &lt;http://trac.webkit.org/changeset/150387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891391</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-20 16:29:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202164</attachid>
            <date>2013-05-17 15:02:06 -0700</date>
            <delta_ts>2013-05-20 10:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>16610</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTliYTBjLi4yMjIzNzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDUt
MTcgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGQgQ1NTIHBhcnNpbmcgc3VwcG9ydCBmb3IgaW1hZ2UgVVJJIHNoYXBlLWluc2lk
ZSBhbmQgc2hhcGUtb3V0c2lkZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoZWNrIHRoYXQgc2hhcGUgdmFsdWVzIHNwZWNpZmllZCB3aXRo
IGEgVVJJIGFyZSBwYXJzZWQgY29ycmVjdGx5LgorICAgICAgICAKKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1z
aGFwZS1pbnNpZGUuanM6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9w
YXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qczoKKwogMjAxMy0wNS0xNiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGlucHV0IGlzIGxhcmdlbHkg
YnJva2VuIHdoZW4gdGhlcmUgYXJlIHN1YmZyYW1lcyBsb2FkaW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWlu
c2lkZS1leHBlY3RlZC50eHQKaW5kZXggOTNmNTgyZS4uOGU4NjY0ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hh
cGUtaW5zaWRlLWV4cGVjdGVkLnR4dApAQCAtMjMsNiArMjMsOCBAQCBQQVNTIHRlc3RDU1NUZXh0
KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIikgaXMg
InBvbHlnbwogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9seWdvbihldmVub2RkLCAxMHB4IDIw
cHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdvbihub256
ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q29tcHV0ZWRT
dHlsZSgicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIp
IGlzICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDU1NUZXh0KCJ1cmwoJ2ltYWdlJykiKSkgaXMgInVybChp
bWFnZSkiCitQQVNTIHJlbW92ZUJhc2VVUkwodGVzdENvbXB1dGVkU3R5bGUoInVybCgnaW1hZ2Un
KSIpKSBpcyAidXJsKGltYWdlKSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50OiBhdXRvLCBjaGlsZDog
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVk
KCJvdXRzaWRlLXNoYXBlIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlz
ICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4KSIsICJpbml0aWFsIikgaXMgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgs
IDMwcHgsIDQwcHgpLCBjaGlsZDogb3V0c2lkZS1zaGFwZSIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNp
ZGUtZXhwZWN0ZWQudHh0CmluZGV4IDZjNWI1NWUuLjM1NWJiMGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFw
ZS1vdXRzaWRlLWV4cGVjdGVkLnR4dApAQCAtMjEsNiArMjEsOCBAQCBQQVNTIHRlc3RDU1NUZXh0
KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIikgaXMg
InBvbHlnbwogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9seWdvbihldmVub2RkLCAxMHB4IDIw
cHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdvbihub256
ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q29tcHV0ZWRT
dHlsZSgicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIp
IGlzICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDU1NUZXh0KCJ1cmwoJ2ltYWdlJykiKSkgaXMgInVybChp
bWFnZSkiCitQQVNTIHJlbW92ZUJhc2VVUkwodGVzdENvbXB1dGVkU3R5bGUoInVybCgnaW1hZ2Un
KSIpKSBpcyAidXJsKGltYWdlKSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50OiBhdXRvLCBjaGlsZDog
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVk
KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiaW5pdGlhbCIpIGlzICJwYXJl
bnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iCiBQQVNT
IHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICIi
KSBpcyAicGFyZW50OiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBh
dXRvIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0
cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCmluZGV4IDg4ZGQ1
Y2UuLjU0MGJhZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3Jp
cHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMK
QEAgLTQ5LDYgKzQ5LDIwIEBAIGZ1bmN0aW9uIHRlc3QodmFsdWUsIGV4cGVjdGVkKSB7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJp
bmcgKyAnKScsIGV4cGVjdGVkKTsKIH0KIAorLy8gTmVlZCB0byByZW1vdmUgdGhlIGJhc2UgVVJM
IHRvIGF2b2lkIGhhdmluZyBsb2NhbCBwYXRocyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cy4KK2Z1
bmN0aW9uIHJlbW92ZUJhc2VVUkwoc3JjKSB7CisgICAgdmFyIHVybFJlZ2V4cCA9IC91cmxcKChb
XlwpXSopXCkvZzsKKyAgICByZXR1cm4gc3JjLnJlcGxhY2UodXJsUmVnZXhwLCBmdW5jdGlvbiht
YXRjaCwgdXJsKSB7CisgICAgICAgIHJldHVybiAidXJsKCIgKyB1cmwuc3Vic3RyKHVybC5sYXN0
SW5kZXhPZigiLyIpICsgMSkgKyAiKSI7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RMb2Nh
bFVSTCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyB2
YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgv
XG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3JlbW92ZUJhc2VVUkwodGVzdENTU1RleHQoJyArIHVuZXZhbGVkU3RyaW5n
ICsgJykpJywgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVtb3ZlQmFz
ZVVSTCh0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJpbmcgKyAnKSknLCBleHBlY3Rl
ZCk7Cit9CisKIGZ1bmN0aW9uIG5lZ2F0aXZlX3Rlc3QodmFsdWUpIHsKICAgICB2YXIgdW5ldmFs
ZWRTdHJpbmcgPSAnIicgKyB2YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIv
ZywgIlwiIikucmVwbGFjZSgvXG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICci
JzsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCcgKyB1bmV2YWxlZFN0
cmluZyArICcpJywgJycpOwpAQCAtNzEsNiArODUsOCBAQCB0ZXN0KCJwb2x5Z29uKDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAz
MAogdGVzdCgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4
KSIsICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIik7
CiB0ZXN0KCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgp
IiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKTsK
IAordGVzdExvY2FsVVJMKCJ1cmwoXCdpbWFnZVwnKSIsICJ1cmwoaW1hZ2UpIik7CisKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0YW5nbGUoMTBw
eCwgMjBweCwgMzBweCwgNDBweCkiKScsICJwYXJlbnQ6IGF1dG8sIGNoaWxkOiByZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5v
dEluaGVyaXRlZCgib3V0c2lkZS1zaGFwZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCkiKScsICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVy
aXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwiKScsICJw
YXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IG91dHNpZGUt
c2hhcGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQt
dGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzCmluZGV4
IDE2MmNkNmQuLmRiMmY4ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0
c2lkZS5qcwpAQCAtNDksNiArNDksMjAgQEAgZnVuY3Rpb24gdGVzdCh2YWx1ZSwgZXhwZWN0ZWQp
IHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCcgKyB1bmV2
YWxlZFN0cmluZyArICcpJywgZXhwZWN0ZWQpOwogfQogCisvLyBOZWVkIHRvIHJlbW92ZSB0aGUg
YmFzZSBVUkwgdG8gYXZvaWQgaGF2aW5nIGxvY2FsIHBhdGhzIGluIHRoZSBleHBlY3RlZCByZXN1
bHRzLgorZnVuY3Rpb24gcmVtb3ZlQmFzZVVSTChzcmMpIHsKKyAgICB2YXIgdXJsUmVnZXhwID0g
L3VybFwoKFteXCldKilcKS9nOworICAgIHJldHVybiBzcmMucmVwbGFjZSh1cmxSZWdleHAsIGZ1
bmN0aW9uKG1hdGNoLCB1cmwpIHsKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHVybC5zdWJzdHIo
dXJsLmxhc3RJbmRleE9mKCIvIikgKyAxKSArICIpIjsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
dGVzdExvY2FsVVJMKHZhbHVlLCBleHBlY3RlZCkgeworICAgIHZhciB1bmV2YWxlZFN0cmluZyA9
ICciJyArIHZhbHVlLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVwbGFjZSgvIi9nLCAiXCIiKS5y
ZXBsYWNlKC9cbi9nLCAiXFxuIikucmVwbGFjZSgvXHIvZywgIlxcciIpICsgJyInOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygncmVtb3ZlQmFzZVVSTCh0ZXN0Q1NTVGV4dCgnICsgdW5ldmFs
ZWRTdHJpbmcgKyAnKSknLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdy
ZW1vdmVCYXNlVVJMKHRlc3RDb21wdXRlZFN0eWxlKCcgKyB1bmV2YWxlZFN0cmluZyArICcpKScs
IGV4cGVjdGVkKTsKK30KKwogZnVuY3Rpb24gbmVnYXRpdmVfdGVzdCh2YWx1ZSkgewogICAgIHZh
ciB1bmV2YWxlZFN0cmluZyA9ICciJyArIHZhbHVlLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVw
bGFjZSgvIi9nLCAiXCIiKS5yZXBsYWNlKC9cbi9nLCAiXFxuIikucmVwbGFjZSgvXHIvZywgIlxc
ciIpICsgJyInOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoJyArIHVu
ZXZhbGVkU3RyaW5nICsgJyknLCAnJyk7CkBAIC03MCw2ICs4NCw4IEBAIHRlc3QoInBvbHlnb24o
MTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4
IDIwcHgsIDMwCiB0ZXN0KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0
MHB4IDUwcHgpIiwgInBvbHlnb24oZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHgg
NTBweCkiKTsKIHRlc3QoInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQw
cHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1
MHB4KSIpOwogCit0ZXN0TG9jYWxVUkwoInVybChcJ2ltYWdlXCcpIiwgInVybChpbWFnZSkiKTsK
Kwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJhdXRvIiwgInJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpJywgInBhcmVudDogYXV0bywgY2hpbGQ6IHJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAi
aW5pdGlhbCIpJywgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBj
aGlsZDogYXV0byIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiIiknLCAicGFyZW50OiByZWN0YW5n
bGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWNmYWUwNC4uNjI0MzBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTA1LTE3
ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVz
aW9uc10gQWRkIENTUyBwYXJzaW5nIHN1cHBvcnQgZm9yIGltYWdlIFVSSSBzaGFwZS1pbnNpZGUg
YW5kIHNoYXBlLW91dHNpZGUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTYzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBpbWFnZSBVUkkgdmFsdWVz
IGZvciB0aGUgc2hhcGUtaW5zaWRlIGFuZCBzaGFwZS1vdXRzaWRlIENTUyBwcm9wZXJ0aWVzLgor
ICAgICAgICBFeHRlbmRlZCB0aGUgRXhjbHVzaW9uU2hhcGVWYWx1ZSBjbGFzcyB0byBzdXBwb3J0
IHRyYWNraW5nIHRoZSBwcm9wZXJ0eSdzIFN0eWxlSW1hZ2UgdmFsdWUuCisKKyAgICAgICAgVGhl
IGV4aXN0aW5nIENTUyBwYXJzaW5nIHRlc3RzIHdlcmUgZXh0ZW5kZWQgdG8gY2hlY2sgVVJJIHZh
bHVlcy4KKworCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3Bl
cnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZFN0
eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5RXhjbHVzaW9u
U2hhcGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlSW1hZ2VWYWx1ZSk6CisgICAgICAgIChF
eGNsdXNpb25TaGFwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFs
dWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6OnNldElt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6OkV4Y2x1c2lvblNo
YXBlVmFsdWUpOgorCiAyMDEzLTA1LTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgZGVjbGFyYXRpb24gb2YgRWxlbWVudDo6ZGV0YWNoQXR0
ck5vZGVBdEluZGV4IGVycm9uZW91c2x5IGFkZGVkIGluIHIxNTAwNzIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFiNzE5
MjYuLmRjMTZiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNjc5LDEzICsyNjc5LDIzIEBAIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShD
U1NQcm9wZXJ0CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToKICAg
ICAgICAgICAgIGlmICghc3R5bGUtPnNoYXBlSW5zaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwot
ICAgICAgICAgICAgZWxzZSBpZiAoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBFeGNs
dXNpb25TaGFwZVZhbHVlOjpPVVRTSURFKQorICAgICAgICAgICAgaWYgKHN0eWxlLT5zaGFwZUlu
c2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6T1VUU0lERSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1Zh
bHVlT3V0c2lkZVNoYXBlKTsKKyAgICAgICAgICAgIGlmIChzdHlsZS0+c2hhcGVJbnNpZGUoKS0+
dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OklNQUdFKSB7CisgICAgICAgICAgICAgICAg
aWYgKHN0eWxlLT5zaGFwZUluc2lkZSgpLT5pbWFnZSgpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3R5bGUtPnNoYXBlSW5zaWRlKCktPmltYWdlKCktPmNzc1ZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZU5vbmUpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKHN0eWxlLT5zaGFw
ZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpOwogICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHlsZS0+c2hhcGVJbnNpZGUoKS0+c2hh
cGUoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZU91dHNpZGU6CiAgICAg
ICAgICAgICBpZiAoIXN0eWxlLT5zaGFwZU91dHNpZGUoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7Cisg
ICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlT3V0c2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9u
U2hhcGVWYWx1ZTo6SU1BR0UpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlT3V0
c2lkZSgpLT5pbWFnZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUtPnNoYXBl
T3V0c2lkZSgpLT5pbWFnZSgpLT5jc3NWYWx1ZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChzdHlsZS0+c2hhcGVPdXRzaWRlKCktPnR5cGUo
KSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSk7CiAgICAgICAgICAgICByZXR1cm4gdmFs
dWVGb3JCYXNpY1NoYXBlKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+c2hhcGUoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRXcmFwVGhyb3VnaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggNGVkZmJhYi4uNTA4ODU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAg
LTI5NjgsNyArMjk2OCwxMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0
eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9
IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpG
dW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGUocHJvcElkLCBpbXBv
cnRhbnQpOworICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1VSSSkgeworICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpj
cmVhdGUoY29tcGxldGVVUkwodmFsdWUtPnN0cmluZykpOworICAgICAgICAgICAgbV92YWx1ZUxp
c3QtPm5leHQoKTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRTaGFwZU1hcmdpbjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVQ
YWRkaW5nOgogICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ojpjc3NFeGNsdXNpb25zRW5hYmxlZCgpICYmICFpZCAmJiB2YWxpZFVuaXQodmFsdWUsIEZMZW5n
dGggfCBGTm9uTmVnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVp
bGRlci5jcHAKaW5kZXggMmY5NzRlMy4uMTY0ODM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMTk0OSw3ICsxOTQ5LDcgQEAgdGVtcGxh
dGUgPEV4Y2x1c2lvblNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0aW9uKSgp
IGNvbnN0LCB2b2lkIChSZW4KIGNsYXNzIEFwcGx5UHJvcGVydHlFeGNsdXNpb25TaGFwZSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBQYXNz
UmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1bmN0
aW9uKSh2YWx1ZSk7IH0KLSAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQs
IFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKKyAgICBzdGF0
aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIFN0eWxlUmVzb2x2ZXIq
IHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKSB7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
cHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsK
QEAgLTE5NjIsNyArMTk2MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgUmVmUHRyPEV4
Y2x1c2lvblNoYXBlVmFsdWU+IHNoYXBlID0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlU2hh
cGVWYWx1ZShiYXNpY1NoYXBlRm9yVmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgc3R5bGVS
ZXNvbHZlci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBwcmltaXRpdmVWYWx1ZS0+Z2V0U2hhcGVWYWx1
ZSgpKSk7CiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwg
c2hhcGUucmVsZWFzZSgpKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh2YWx1
ZS0+aXNJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxFeGNsdXNpb25TaGFwZVZh
bHVlPiBzaGFwZSA9IEV4Y2x1c2lvblNoYXBlVmFsdWU6OmNyZWF0ZUltYWdlVmFsdWUoc3R5bGVS
ZXNvbHZlci0+c3R5bGVJbWFnZShwcm9wZXJ0eSwgdmFsdWUpKTsKKyAgICAgICAgICAgIHNldFZh
bHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHNoYXBlLnJlbGVhc2UoKSk7CiAgICAgICAgIH0K
KwogICAgIH0KICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3MDhkMzMyLi45MzVlMzM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC00MTc0LDYgKzQxNzQsMTYg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlOgorICAgICAgICAg
ICAgaWYgKG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVJbnNpZGUoKSAmJiBtX3N0YXRlLnN0eWxlKCkt
PnNoYXBlSW5zaWRlKCktPmltYWdlKCkgJiYgbV9zdGF0ZS5zdHlsZSgpLT5zaGFwZUluc2lkZSgp
LT5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKQorICAgICAgICAgICAgICAgIG1fc3RhdGUuc3R5
bGUoKS0+c2hhcGVJbnNpZGUoKS0+c2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2Fz
dDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVJbnNpZGUoKS0+aW1h
Z2UoKSkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0U2hhcGVPdXRzaWRlOgorICAgICAgICAgICAgaWYgKG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVP
dXRzaWRlKCkgJiYgbV9zdGF0ZS5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKS0+aW1hZ2UoKSAmJiBt
X3N0YXRlLnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpLT5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgp
KQorICAgICAgICAgICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCktPnNldElt
YWdlKGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihtX3N0
YXRlLnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpLT5pbWFnZSgpKSkpOworICAgICAgICAgICAgYnJl
YWs7CisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaAppbmRleCA1YTUzM2FmLi5iNGRjNTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVl
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNkZWZpbmUgRXhjbHVzaW9uU2hhcGVWYWx1ZV9oCiAKICNp
bmNsdWRlICJCYXNpY1NoYXBlcy5oIgorI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCw3ICs0MSw4
IEBAIHB1YmxpYzoKICAgICBlbnVtIEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIHsKICAgICAgICAg
Ly8gVGhlIEFVVE8gdmFsdWUgaXMgZGVmaW5lZCBieSBhIG51bGwgRXhjbHVzaW9uU2hhcGVWYWx1
ZSoKICAgICAgICAgU0hBUEUsCi0gICAgICAgIE9VVFNJREUKKyAgICAgICAgT1VUU0lERSwKKyAg
ICAgICAgSU1BR0UKICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hh
cGVWYWx1ZT4gY3JlYXRlU2hhcGVWYWx1ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQpA
QCAtNTMsMTUgKzU1LDI0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBF
eGNsdXNpb25TaGFwZVZhbHVlKE9VVFNJREUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBjcmVhdGVJbWFnZVZhbHVlKFBhc3NSZWZQdHI8U3R5
bGVJbWFnZT4gaW1hZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV4Y2x1
c2lvblNoYXBlVmFsdWUoaW1hZ2UpKTsKKyAgICB9CisKICAgICBFeGNsdXNpb25TaGFwZVZhbHVl
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgQmFzaWNTaGFwZSogc2hh
cGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXBlLmdldCgpOyB9CisgICAgU3R5bGVJbWFnZSogaW1h
Z2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CisgICAgdm9pZCBzZXRJbWFnZShQ
YXNzUmVmUHRyPFN0eWxlSW1hZ2U+IHYpIHsgaWYgKG1faW1hZ2UgIT0gdikgbV9pbWFnZSA9IHY7
IH0KICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBvdGhlci50eXBlKCk7IH0KIAogcHJpdmF0ZToKICAg
ICBFeGNsdXNpb25TaGFwZVZhbHVlKFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gc2hhcGUpIDogbV90
eXBlKFNIQVBFKSwgbV9zaGFwZShzaGFwZSkgeyB9CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShF
eGNsdXNpb25TaGFwZVZhbHVlVHlwZSB0eXBlKSA6IG1fdHlwZSh0eXBlKSB7IH0KKyAgICBFeGNs
dXNpb25TaGFwZVZhbHVlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpIDogbV90eXBlKElN
QUdFKSwgbV9pbWFnZShpbWFnZSkgeyB9CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZVR5cGUgbV90
eXBlOwogICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3NoYXBlOworICAgIFJlZlB0cjxTdHlsZUlt
YWdlPiBtX2ltYWdlOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202166</attachid>
            <date>2013-05-17 15:39:19 -0700</date>
            <delta_ts>2013-05-20 10:28:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>21131</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTliYTBjLi4yMjIzNzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDUt
MTcgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGQgQ1NTIHBhcnNpbmcgc3VwcG9ydCBmb3IgaW1hZ2UgVVJJIHNoYXBlLWluc2lk
ZSBhbmQgc2hhcGUtb3V0c2lkZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoZWNrIHRoYXQgc2hhcGUgdmFsdWVzIHNwZWNpZmllZCB3aXRo
IGEgVVJJIGFyZSBwYXJzZWQgY29ycmVjdGx5LgorICAgICAgICAKKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1z
aGFwZS1pbnNpZGUuanM6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9w
YXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qczoKKwogMjAxMy0wNS0xNiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGlucHV0IGlzIGxhcmdlbHkg
YnJva2VuIHdoZW4gdGhlcmUgYXJlIHN1YmZyYW1lcyBsb2FkaW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWlu
c2lkZS1leHBlY3RlZC50eHQKaW5kZXggOTNmNTgyZS4uOGU4NjY0ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hh
cGUtaW5zaWRlLWV4cGVjdGVkLnR4dApAQCAtMjMsNiArMjMsOCBAQCBQQVNTIHRlc3RDU1NUZXh0
KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIikgaXMg
InBvbHlnbwogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9seWdvbihldmVub2RkLCAxMHB4IDIw
cHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdvbihub256
ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q29tcHV0ZWRT
dHlsZSgicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIp
IGlzICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDU1NUZXh0KCJ1cmwoJ2ltYWdlJykiKSkgaXMgInVybChp
bWFnZSkiCitQQVNTIHJlbW92ZUJhc2VVUkwodGVzdENvbXB1dGVkU3R5bGUoInVybCgnaW1hZ2Un
KSIpKSBpcyAidXJsKGltYWdlKSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50OiBhdXRvLCBjaGlsZDog
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVk
KCJvdXRzaWRlLXNoYXBlIiwgInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpIGlz
ICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBw
eCwgNDBweCkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAz
MHB4LCA0MHB4KSIsICJpbml0aWFsIikgaXMgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgs
IDMwcHgsIDQwcHgpLCBjaGlsZDogb3V0c2lkZS1zaGFwZSIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNp
ZGUtZXhwZWN0ZWQudHh0CmluZGV4IDZjNWI1NWUuLjM1NWJiMGUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFw
ZS1vdXRzaWRlLWV4cGVjdGVkLnR4dApAQCAtMjEsNiArMjEsOCBAQCBQQVNTIHRlc3RDU1NUZXh0
KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIikgaXMg
InBvbHlnbwogUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZSgicG9seWdvbihldmVub2RkLCAxMHB4IDIw
cHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdvbihub256
ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z29uKG5vbnpl
cm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgogUEFTUyB0ZXN0Q29tcHV0ZWRT
dHlsZSgicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIp
IGlzICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDU1NUZXh0KCJ1cmwoJ2ltYWdlJykiKSkgaXMgInVybChp
bWFnZSkiCitQQVNTIHJlbW92ZUJhc2VVUkwodGVzdENvbXB1dGVkU3R5bGUoInVybCgnaW1hZ2Un
KSIpKSBpcyAidXJsKGltYWdlKSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50OiBhdXRvLCBjaGlsZDog
cmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVk
KCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiaW5pdGlhbCIpIGlzICJwYXJl
bnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1dG8iCiBQQVNT
IHRlc3ROb3RJbmhlcml0ZWQoInJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICIi
KSBpcyAicGFyZW50OiByZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBh
dXRvIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0
cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCmluZGV4IDg4ZGQ1
Y2UuLjU0MGJhZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3Jp
cHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMK
QEAgLTQ5LDYgKzQ5LDIwIEBAIGZ1bmN0aW9uIHRlc3QodmFsdWUsIGV4cGVjdGVkKSB7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJp
bmcgKyAnKScsIGV4cGVjdGVkKTsKIH0KIAorLy8gTmVlZCB0byByZW1vdmUgdGhlIGJhc2UgVVJM
IHRvIGF2b2lkIGhhdmluZyBsb2NhbCBwYXRocyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cy4KK2Z1
bmN0aW9uIHJlbW92ZUJhc2VVUkwoc3JjKSB7CisgICAgdmFyIHVybFJlZ2V4cCA9IC91cmxcKChb
XlwpXSopXCkvZzsKKyAgICByZXR1cm4gc3JjLnJlcGxhY2UodXJsUmVnZXhwLCBmdW5jdGlvbiht
YXRjaCwgdXJsKSB7CisgICAgICAgIHJldHVybiAidXJsKCIgKyB1cmwuc3Vic3RyKHVybC5sYXN0
SW5kZXhPZigiLyIpICsgMSkgKyAiKSI7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RMb2Nh
bFVSTCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyB2
YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgv
XG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3JlbW92ZUJhc2VVUkwodGVzdENTU1RleHQoJyArIHVuZXZhbGVkU3RyaW5n
ICsgJykpJywgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVtb3ZlQmFz
ZVVSTCh0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJpbmcgKyAnKSknLCBleHBlY3Rl
ZCk7Cit9CisKIGZ1bmN0aW9uIG5lZ2F0aXZlX3Rlc3QodmFsdWUpIHsKICAgICB2YXIgdW5ldmFs
ZWRTdHJpbmcgPSAnIicgKyB2YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIv
ZywgIlwiIikucmVwbGFjZSgvXG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICci
JzsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCcgKyB1bmV2YWxlZFN0
cmluZyArICcpJywgJycpOwpAQCAtNzEsNiArODUsOCBAQCB0ZXN0KCJwb2x5Z29uKDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAz
MAogdGVzdCgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4
KSIsICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIik7
CiB0ZXN0KCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgp
IiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKTsK
IAordGVzdExvY2FsVVJMKCJ1cmwoXCdpbWFnZVwnKSIsICJ1cmwoaW1hZ2UpIik7CisKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0YW5nbGUoMTBw
eCwgMjBweCwgMzBweCwgNDBweCkiKScsICJwYXJlbnQ6IGF1dG8sIGNoaWxkOiByZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5v
dEluaGVyaXRlZCgib3V0c2lkZS1zaGFwZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwg
NDBweCkiKScsICJwYXJlbnQ6IG91dHNpZGUtc2hhcGUsIGNoaWxkOiByZWN0YW5nbGUoMTBweCwg
MjBweCwgMzBweCwgNDBweCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVy
aXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwiKScsICJw
YXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IG91dHNpZGUt
c2hhcGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQt
dGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzCmluZGV4
IDE2MmNkNmQuLmRiMmY4ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0
c2lkZS5qcwpAQCAtNDksNiArNDksMjAgQEAgZnVuY3Rpb24gdGVzdCh2YWx1ZSwgZXhwZWN0ZWQp
IHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDb21wdXRlZFN0eWxlKCcgKyB1bmV2
YWxlZFN0cmluZyArICcpJywgZXhwZWN0ZWQpOwogfQogCisvLyBOZWVkIHRvIHJlbW92ZSB0aGUg
YmFzZSBVUkwgdG8gYXZvaWQgaGF2aW5nIGxvY2FsIHBhdGhzIGluIHRoZSBleHBlY3RlZCByZXN1
bHRzLgorZnVuY3Rpb24gcmVtb3ZlQmFzZVVSTChzcmMpIHsKKyAgICB2YXIgdXJsUmVnZXhwID0g
L3VybFwoKFteXCldKilcKS9nOworICAgIHJldHVybiBzcmMucmVwbGFjZSh1cmxSZWdleHAsIGZ1
bmN0aW9uKG1hdGNoLCB1cmwpIHsKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHVybC5zdWJzdHIo
dXJsLmxhc3RJbmRleE9mKCIvIikgKyAxKSArICIpIjsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
dGVzdExvY2FsVVJMKHZhbHVlLCBleHBlY3RlZCkgeworICAgIHZhciB1bmV2YWxlZFN0cmluZyA9
ICciJyArIHZhbHVlLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVwbGFjZSgvIi9nLCAiXCIiKS5y
ZXBsYWNlKC9cbi9nLCAiXFxuIikucmVwbGFjZSgvXHIvZywgIlxcciIpICsgJyInOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygncmVtb3ZlQmFzZVVSTCh0ZXN0Q1NTVGV4dCgnICsgdW5ldmFs
ZWRTdHJpbmcgKyAnKSknLCBleHBlY3RlZCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdy
ZW1vdmVCYXNlVVJMKHRlc3RDb21wdXRlZFN0eWxlKCcgKyB1bmV2YWxlZFN0cmluZyArICcpKScs
IGV4cGVjdGVkKTsKK30KKwogZnVuY3Rpb24gbmVnYXRpdmVfdGVzdCh2YWx1ZSkgewogICAgIHZh
ciB1bmV2YWxlZFN0cmluZyA9ICciJyArIHZhbHVlLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVw
bGFjZSgvIi9nLCAiXCIiKS5yZXBsYWNlKC9cbi9nLCAiXFxuIikucmVwbGFjZSgvXHIvZywgIlxc
ciIpICsgJyInOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdENTU1RleHQoJyArIHVu
ZXZhbGVkU3RyaW5nICsgJyknLCAnJyk7CkBAIC03MCw2ICs4NCw4IEBAIHRlc3QoInBvbHlnb24o
MTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4
IDIwcHgsIDMwCiB0ZXN0KCJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0
MHB4IDUwcHgpIiwgInBvbHlnb24oZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHgg
NTBweCkiKTsKIHRlc3QoInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQw
cHggNTBweCkiLCAicG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1
MHB4KSIpOwogCit0ZXN0TG9jYWxVUkwoInVybChcJ2ltYWdlXCcpIiwgInVybChpbWFnZSkiKTsK
Kwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJhdXRvIiwgInJlY3Rh
bmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpJywgInBhcmVudDogYXV0bywgY2hpbGQ6IHJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAi
aW5pdGlhbCIpJywgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBj
aGlsZDogYXV0byIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Tm90SW5oZXJpdGVkKCJy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiIiknLCAicGFyZW50OiByZWN0YW5n
bGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGZlZTIyMy4uNjlkMGI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA1LTE3
ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhjbHVz
aW9uc10gQWRkIENTUyBwYXJzaW5nIHN1cHBvcnQgZm9yIGltYWdlIFVSSSBzaGFwZS1pbnNpZGUg
YW5kIHNoYXBlLW91dHNpZGUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTYzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBpbWFnZSBVUkkgdmFsdWVz
IGZvciB0aGUgc2hhcGUtaW5zaWRlIGFuZCBzaGFwZS1vdXRzaWRlIENTUyBwcm9wZXJ0aWVzLgor
ICAgICAgICBFeHRlbmRlZCB0aGUgRXhjbHVzaW9uU2hhcGVWYWx1ZSBjbGFzcyB0byBzdXBwb3J0
IHRyYWNraW5nIHRoZSBwcm9wZXJ0eSdzIFN0eWxlSW1hZ2UgdmFsdWUuCisKKyAgICAgICAgVGhl
IEV4Y2x1c2lvblNoYXBlVmFsdWU6OnR5cGUgZW51bXMgd2VyZSBjaGFuZ2VkIGZyb20gYWxsIHVw
cGVyIGNhc2UgdG8gIkludGVyY2FzZSIgYnkgb3JkZXIKKyAgICAgICAgb2YgdGhlIHN0eWxlIGJv
dC4KKworICAgICAgICBUaGUgZXhpc3RpbmcgQ1NTIHBhcnNpbmcgdGVzdHMgd2VyZSBleHRlbmRl
ZCB0byBjaGVjayBVUkkgdmFsdWVzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBj
c3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5RXhjbHVzaW9uU2hhcGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJl
c29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5n
SW1hZ2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5o
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlSW1hZ2VWYWx1
ZSk6CisgICAgICAgIChFeGNsdXNpb25TaGFwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
Y2x1c2lvblNoYXBlVmFsdWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNo
YXBlVmFsdWU6OnNldEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFs
dWU6OkV4Y2x1c2lvblNoYXBlVmFsdWUpOgorCiAyMDEzLTA1LTE4ICBDbGF1ZGlvIFNhYXZlZHJh
ICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTU10gTWlub3IgY2xlYW51cHMg
aW4gQ1NTIHZhcmlhYmxlcyBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBhYjcxOTI2Li42NjRmMWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMjY3OSwxNCArMjY3OSwyNCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGU6CiAgICAgICAgICAgICBpZiAoIXN0
eWxlLT5zaGFwZUluc2lkZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKHN0eWxlLT5zaGFwZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6
T1VUU0lERSkKKyAgICAgICAgICAgIGlmIChzdHlsZS0+c2hhcGVJbnNpZGUoKS0+dHlwZSgpID09
IEV4Y2x1c2lvblNoYXBlVmFsdWU6Ok91dHNpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU91dHNpZGVTaGFwZSk7
Ci0gICAgICAgICAgICBBU1NFUlQoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBFeGNs
dXNpb25TaGFwZVZhbHVlOjpTSEFQRSk7CisgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlSW5z
aWRlKCktPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpJbWFnZSkgeworICAgICAgICAg
ICAgICAgIGlmIChzdHlsZS0+c2hhcGVJbnNpZGUoKS0+aW1hZ2UoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0eWxlLT5zaGFwZUluc2lkZSgpLT5pbWFnZSgpLT5jc3NWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoQ1NTVmFsdWVOb25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChzdHls
ZS0+c2hhcGVJbnNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKTsK
ICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPnNoYXBlSW5zaWRl
KCktPnNoYXBlKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVPdXRzaWRl
OgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+c2hhcGVPdXRzaWRlKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1
dG8pOwotICAgICAgICAgICAgQVNTRVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09
IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIGlmIChzdHlsZS0+c2hh
cGVPdXRzaWRlKCktPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpJbWFnZSkgeworICAg
ICAgICAgICAgICAgIGlmIChzdHlsZS0+c2hhcGVPdXRzaWRlKCktPmltYWdlKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBzdHlsZS0+c2hhcGVPdXRzaWRlKCktPmltYWdlKCktPmNzc1Zh
bHVlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50
aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNT
RVJUKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6
OlNoYXBlKTsKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUtPnNo
YXBlT3V0c2lkZSgpLT5zaGFwZSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFdy
YXBUaHJvdWdoOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHN0eWxlLT53cmFwVGhyb3VnaCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMGJl
N2FiMy4uZGVlMDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI5NjEsNiArMjk2
MSwxMCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAg
ICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbikKICAg
ICAgICAgICAgIHJldHVybiBwYXJzZUJhc2ljU2hhcGUocHJvcElkLCBpbXBvcnRhbnQpOworICAg
ICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkg
eworICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoY29tcGxl
dGVVUkwodmFsdWUtPnN0cmluZykpOworICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsK
KyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hh
cGVNYXJnaW46CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlUGFkZGluZzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAppbmRleCAyZjk3NGUz
Li4xNjQ4MzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxk
ZXIuY3BwCkBAIC0xOTQ5LDcgKzE5NDksNyBAQCB0ZW1wbGF0ZSA8RXhjbHVzaW9uU2hhcGVWYWx1
ZSogKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVuY3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbgogY2xh
c3MgQXBwbHlQcm9wZXJ0eUV4Y2x1c2lvblNoYXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIFBhc3NSZWZQdHI8RXhjbHVzaW9uU2hhcGVW
YWx1ZT4gdmFsdWUpIHsgKHN0eWxlLT4qc2V0dGVyRnVuY3Rpb24pKHZhbHVlKTsgfQotICAgIHN0
YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQorICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFs
dWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
IHsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwpAQCAtMTk2Miw3ICsxOTYyLDExIEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gc2hh
cGUgPSBFeGNsdXNpb25TaGFwZVZhbHVlOjpjcmVhdGVTaGFwZVZhbHVlKGJhc2ljU2hhcGVGb3JW
YWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzdHlsZVJlc29sdmVyLT5yb290RWxlbWVudFN0
eWxlKCksIHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKTsKICAgICAgICAgICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBzaGFwZS5yZWxlYXNlKCkpOwogICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkgewor
ICAgICAgICAgICAgUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IHNoYXBlID0gRXhjbHVzaW9u
U2hhcGVWYWx1ZTo6Y3JlYXRlSW1hZ2VWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZUltYWdlKHBy
b3BlcnR5LCB2YWx1ZSkpOworICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5
bGUoKSwgc2hhcGUucmVsZWFzZSgpKTsKICAgICAgICAgfQorCiAgICAgfQogICAgIHN0YXRpYyBQ
cm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IDcwOGQzMzIuLjkzNWUzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKQEAgLTQxNzQsNiArNDE3NCwxNiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6
OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0U2hhcGVJbnNpZGU6CisgICAgICAgICAgICBpZiAobV9zdGF0ZS5zdHlsZSgp
LT5zaGFwZUluc2lkZSgpICYmIG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVJbnNpZGUoKS0+aW1hZ2Uo
KSAmJiBtX3N0YXRlLnN0eWxlKCktPnNoYXBlSW5zaWRlKCktPmltYWdlKCktPmlzUGVuZGluZ0lt
YWdlKCkpCisgICAgICAgICAgICAgICAgbV9zdGF0ZS5zdHlsZSgpLT5zaGFwZUluc2lkZSgpLT5z
ZXRJbWFnZShsb2FkUGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4o
bV9zdGF0ZS5zdHlsZSgpLT5zaGFwZUluc2lkZSgpLT5pbWFnZSgpKSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZU91dHNpZGU6CisgICAg
ICAgICAgICBpZiAobV9zdGF0ZS5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKSAmJiBtX3N0YXRlLnN0
eWxlKCktPnNoYXBlT3V0c2lkZSgpLT5pbWFnZSgpICYmIG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVP
dXRzaWRlKCktPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkpCisgICAgICAgICAgICAgICAgbV9z
dGF0ZS5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKS0+c2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZShz
dGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVPdXRz
aWRlKCktPmltYWdlKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcAppbmRleCA0MmFlNjA3Li5kMThiYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXAKIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0
cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIEV4
Y2x1c2lvblNoYXBlVmFsdWUqIGZyb20sIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHRvLCBkb3VibGUg
cHJvZ3Jlc3MpCiB7CiAgICAgLy8gRklYTUUgQnVnIDEwMjcyMzogU2hhcGUtaW5zaWRlIHNob3Vs
ZCBiZSBhYmxlIHRvIGFuaW1hdGUgYSB2YWx1ZSBvZiAnb3V0c2lkZS1zaGFwZScgd2hlbiBzaGFw
ZS1vdXRzaWRlIGlzIHNldCB0byBhIEJhc2ljU2hhcGUKLSAgICBpZiAoZnJvbS0+dHlwZSgpICE9
IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFIHx8IHRvLT50eXBlKCkgIT0gRXhjbHVzaW9uU2hh
cGVWYWx1ZTo6U0hBUEUpCisgICAgaWYgKGZyb20tPnR5cGUoKSAhPSBFeGNsdXNpb25TaGFwZVZh
bHVlOjpTaGFwZSB8fCB0by0+dHlwZSgpICE9IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKQog
ICAgICAgICByZXR1cm4gdG87CiAKICAgICBjb25zdCBCYXNpY1NoYXBlKiBmcm9tU2hhcGUgPSBm
cm9tLT5zaGFwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcAppbmRleCA0ZTYyZjhjLi4wN2QzZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcApAQCAtNDYsNyArNDYsNyBAQCBjb25z
dCBFeGNsdXNpb25TaGFwZSogRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0
dGVyLCBpbnRlcnZhbEdldHRlcgogICAgICAgICByZXR1cm4gZXhjbHVzaW9uU2hhcGU7CiAKICAg
ICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gKG1fcmVuZGVyZXItPnN0eWxlKCkt
PipzaGFwZUdldHRlcikoKTsKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYm
IHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFw
ZVZhbHVlLT5zaGFwZSgpIDogMDsKKyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVl
ICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTaGFwZSkgPyBz
aGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKIAogICAgIEFTU0VSVChzaGFwZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAK
aW5kZXggZDg1ZDE2OS4uZTcyM2U0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgTGlu
ZVNlZ21lbnRSYW5nZTo6TGluZVNlZ21lbnRSYW5nZShjb25zdCBJbmxpbmVJdGVyYXRvciYgc3Rh
cnQsIGNvbnN0IElubGluZUl0ZXIKIGJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0Vu
YWJsZWRGb3IoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKQogewogICAgIEV4Y2x1c2lvblNo
YXBlVmFsdWUqIHNoYXBlVmFsdWUgPSByZW5kZXJlci0+c3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUlu
c2lkZSgpOwotICAgIHJldHVybiAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0g
RXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7Cisg
ICAgcmV0dXJuIChzaGFwZVZhbHVlICYmIHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25T
aGFwZVZhbHVlOjpTaGFwZSkgPyBzaGFwZVZhbHVlLT5zaGFwZSgpIDogMDsKIH0KIAogYm9vbCBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKGZsb2F0IG1pblNl
Z21lbnRXaWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCBlZDczOGE4Li4yYzdmOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGJvb2wgRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJveCogYm94KQogewog
ICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHZhbHVlID0gYm94LT5zdHlsZSgpLT5zaGFwZU91dHNp
ZGUoKTsKLSAgICByZXR1cm4gKGJveC0+aXNGbG9hdGluZ1dpdGhTaGFwZU91dHNpZGUoKSAmJiB2
YWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHZhbHVlLT5zaGFw
ZSgpIDogMDsKKyAgICByZXR1cm4gKGJveC0+aXNGbG9hdGluZ1dpdGhTaGFwZU91dHNpZGUoKSAm
JiB2YWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKSA/IHZhbHVlLT5z
aGFwZSgpIDogMDsKIH0KIAogYm9vbCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpjb21wdXRl
U2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNo
YXBlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFw
ZVZhbHVlLmgKaW5kZXggNWE1MzNhZi4uYmUyNWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oCkBAIC0zMSw2ICszMSw3
IEBACiAjZGVmaW5lIEV4Y2x1c2lvblNoYXBlVmFsdWVfaAogCiAjaW5jbHVkZSAiQmFzaWNTaGFw
ZXMuaCIKKyNpbmNsdWRlICJTdHlsZUltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsOSArMzksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRXhjbHVzaW9uU2hhcGVWYWx1ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEV4
Y2x1c2lvblNoYXBlVmFsdWU+IHsKIHB1YmxpYzoKICAgICBlbnVtIEV4Y2x1c2lvblNoYXBlVmFs
dWVUeXBlIHsKLSAgICAgICAgLy8gVGhlIEFVVE8gdmFsdWUgaXMgZGVmaW5lZCBieSBhIG51bGwg
RXhjbHVzaW9uU2hhcGVWYWx1ZSoKLSAgICAgICAgU0hBUEUsCi0gICAgICAgIE9VVFNJREUKKyAg
ICAgICAgLy8gVGhlIEF1dG8gdmFsdWUgaXMgZGVmaW5lZCBieSBhIG51bGwgRXhjbHVzaW9uU2hh
cGVWYWx1ZSoKKyAgICAgICAgU2hhcGUsCisgICAgICAgIE91dHNpZGUsCisgICAgICAgIEltYWdl
CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IGNy
ZWF0ZVNoYXBlVmFsdWUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKQEAgLTUwLDE4ICs1
MiwzMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZh
bHVlPiBjcmVhdGVPdXRzaWRlVmFsdWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBFeGNsdXNpb25TaGFwZVZhbHVlKE9VVFNJREUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBFeGNsdXNpb25TaGFwZVZhbHVlKE91dHNpZGUpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxFeGNsdXNpb25TaGFwZVZhbHVlPiBjcmVhdGVJbWFnZVZhbHVlKFBhc3NS
ZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEV4Y2x1c2lvblNoYXBlVmFsdWUoaW1hZ2UpKTsKICAgICB9CiAKICAgICBFeGNsdXNpb25T
aGFwZVZhbHVlVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgQmFzaWNT
aGFwZSogc2hhcGUoKSBjb25zdCB7IHJldHVybiBtX3NoYXBlLmdldCgpOyB9CisgICAgU3R5bGVJ
bWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CisgICAgdm9pZCBz
ZXRJbWFnZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IHYpCisgICAgeworICAgICAgICBpZiAobV9p
bWFnZSAhPSB2KQorICAgICAgICAgICAgbV9pbWFnZSA9IHY7CisgICAgfQogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlJiBvdGhlcikgY29uc3QgeyByZXR1cm4g
dHlwZSgpID09IG90aGVyLnR5cGUoKTsgfQogCiBwcml2YXRlOgotICAgIEV4Y2x1c2lvblNoYXBl
VmFsdWUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkgOiBtX3R5cGUoU0hBUEUpLCBtX3No
YXBlKHNoYXBlKSB7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKFBhc3NSZWZQdHI8QmFzaWNT
aGFwZT4gc2hhcGUpIDogbV90eXBlKFNoYXBlKSwgbV9zaGFwZShzaGFwZSkgeyB9CiAgICAgRXhj
bHVzaW9uU2hhcGVWYWx1ZShFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSB0eXBlKSA6IG1fdHlwZSh0
eXBlKSB7IH0KKyAgICBFeGNsdXNpb25TaGFwZVZhbHVlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
aW1hZ2UpIDogbV90eXBlKEltYWdlKSwgbV9pbWFnZShpbWFnZSkgeyB9CiAgICAgRXhjbHVzaW9u
U2hhcGVWYWx1ZVR5cGUgbV90eXBlOwogICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3NoYXBlOwor
ICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5MDhlYzMwLi4zZWU5NThjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTQ4
MCw3ICsxNDgwLDcgQEAgcHVibGljOgogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHJlc29sdmVk
U2hhcGVJbnNpZGUoKSBjb25zdAogICAgIHsKICAgICAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSog
c2hhcGVJbnNpZGUgPSB0aGlzLT5zaGFwZUluc2lkZSgpOwotICAgICAgICBpZiAoc2hhcGVJbnNp
ZGUgJiYgc2hhcGVJbnNpZGUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpPVVRTSURF
KQorICAgICAgICBpZiAoc2hhcGVJbnNpZGUgJiYgc2hhcGVJbnNpZGUtPnR5cGUoKSA9PSBFeGNs
dXNpb25TaGFwZVZhbHVlOjpPdXRzaWRlKQogICAgICAgICAgICAgcmV0dXJuIHNoYXBlT3V0c2lk
ZSgpOwogICAgICAgICByZXR1cm4gc2hhcGVJbnNpZGU7CiAgICAgfQo=
</data>
<flag name="review"
          id="223587"
          type_id="1"
          status="+"
          setter="achicu"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202289</attachid>
            <date>2013-05-20 10:28:10 -0700</date>
            <delta_ts>2013-05-20 16:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>21308</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZDc2OTk4Li4wODdkYmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDUt
MTcgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBBZGQgQ1NTIHBhcnNpbmcgc3VwcG9ydCBmb3IgaW1hZ2UgVVJJIHNoYXBlLWluc2lk
ZSBhbmQgc2hhcGUtb3V0c2lkZSB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhhbmRy
dSBDaGljdWxpdGEuCisKKyAgICAgICAgQ2hlY2sgdGhhdCBzaGFwZSB2YWx1ZXMgc3BlY2lmaWVk
IHdpdGggYSBVUkkgYXJlIHBhcnNlZCBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1
c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFw
ZS1pbnNpZGUuanM6CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NjcmlwdC10ZXN0cy9wYXJz
aW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qczoKKwogMjAxMy0wNS0yMCAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVlbmFibGVk
IElOREVYRURfREFUQUJBU0UgYWZ0ZXIgcjE1MDM0NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUtZXhw
ZWN0ZWQudHh0CmluZGV4IDkzZjU4MmUuLjhlODY2NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lk
ZS1leHBlY3RlZC50eHQKQEAgLTIzLDYgKzIzLDggQEAgUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdv
bihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z28K
IFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBvbHlnb24oZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4
IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHgg
NDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdENTU1RleHQoInBvbHlnb24obm9uemVybywgMTBw
eCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMHB4
IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBv
bHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9s
eWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKK1BBU1MgcmVt
b3ZlQmFzZVVSTCh0ZXN0Q1NTVGV4dCgidXJsKCdpbWFnZScpIikpIGlzICJ1cmwoaW1hZ2UpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDb21wdXRlZFN0eWxlKCJ1cmwoJ2ltYWdlJykiKSkgaXMg
InVybChpbWFnZSkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoImF1dG8iLCAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMgInBhcmVudDogYXV0bywgY2hpbGQ6IHJlY3Rhbmds
ZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgib3V0c2lk
ZS1zaGFwZSIsICJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiKSBpcyAicGFyZW50
OiBvdXRzaWRlLXNoYXBlLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgp
IgogUEFTUyB0ZXN0Tm90SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBw
eCkiLCAiaW5pdGlhbCIpIGlzICJwYXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0
MHB4KSwgY2hpbGQ6IG91dHNpZGUtc2hhcGUiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLWV4cGVj
dGVkLnR4dAppbmRleCA2YzViNTVlLi4zNTViYjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lk
ZS1leHBlY3RlZC50eHQKQEAgLTIxLDYgKzIxLDggQEAgUEFTUyB0ZXN0Q1NTVGV4dCgicG9seWdv
bihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpIGlzICJwb2x5Z28K
IFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBvbHlnb24oZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4
IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHgg
NDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdENTU1RleHQoInBvbHlnb24obm9uemVybywgMTBw
eCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9seWdvbihub256ZXJvLCAxMHB4
IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKIFBBU1MgdGVzdENvbXB1dGVkU3R5bGUoInBv
bHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKSBpcyAicG9s
eWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIKK1BBU1MgcmVt
b3ZlQmFzZVVSTCh0ZXN0Q1NTVGV4dCgidXJsKCdpbWFnZScpIikpIGlzICJ1cmwoaW1hZ2UpIgor
UEFTUyByZW1vdmVCYXNlVVJMKHRlc3RDb21wdXRlZFN0eWxlKCJ1cmwoJ2ltYWdlJykiKSkgaXMg
InVybChpbWFnZSkiCiBQQVNTIHRlc3ROb3RJbmhlcml0ZWQoImF1dG8iLCAicmVjdGFuZ2xlKDEw
cHgsIDIwcHgsIDMwcHgsIDQwcHgpIikgaXMgInBhcmVudDogYXV0bywgY2hpbGQ6IHJlY3Rhbmds
ZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIKIFBBU1MgdGVzdE5vdEluaGVyaXRlZCgicmVjdGFu
Z2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwiKSBpcyAicGFyZW50OiByZWN0
YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBhdXRvIgogUEFTUyB0ZXN0Tm90
SW5oZXJpdGVkKCJyZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCkiLCAiIikgaXMgInBh
cmVudDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogYXV0byIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2lu
Zy13cmFwLXNoYXBlLWluc2lkZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zY3Jp
cHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLWluc2lkZS5qcwppbmRleCA4OGRkNWNlLi41NDBi
YWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3Rz
L3BhcnNpbmctd3JhcC1zaGFwZS1pbnNpZGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtaW5zaWRlLmpzCkBAIC00OSw2
ICs0OSwyMCBAQCBmdW5jdGlvbiB0ZXN0KHZhbHVlLCBleHBlY3RlZCkgewogICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdENvbXB1dGVkU3R5bGUoJyArIHVuZXZhbGVkU3RyaW5nICsgJykn
LCBleHBlY3RlZCk7CiB9CiAKKy8vIE5lZWQgdG8gcmVtb3ZlIHRoZSBiYXNlIFVSTCB0byBhdm9p
ZCBoYXZpbmcgbG9jYWwgcGF0aHMgaW4gdGhlIGV4cGVjdGVkIHJlc3VsdHMuCitmdW5jdGlvbiBy
ZW1vdmVCYXNlVVJMKHNyYykgeworICAgIHZhciB1cmxSZWdleHAgPSAvdXJsXCgoW15cKV0qKVwp
L2c7CisgICAgcmV0dXJuIHNyYy5yZXBsYWNlKHVybFJlZ2V4cCwgZnVuY3Rpb24obWF0Y2gsIHVy
bCkgeworICAgICAgICByZXR1cm4gInVybCgiICsgdXJsLnN1YnN0cih1cmwubGFzdEluZGV4T2Yo
Ii8iKSArIDEpICsgIikiOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0TG9jYWxVUkwodmFs
dWUsIGV4cGVjdGVkKSB7CisgICAgdmFyIHVuZXZhbGVkU3RyaW5nID0gJyInICsgdmFsdWUucmVw
bGFjZSgvXFwvZywgIlxcXFwiKS5yZXBsYWNlKC8iL2csICJcIiIpLnJlcGxhY2UoL1xuL2csICJc
XG4iKS5yZXBsYWNlKC9cci9nLCAiXFxyIikgKyAnIic7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdyZW1vdmVCYXNlVVJMKHRlc3RDU1NUZXh0KCcgKyB1bmV2YWxlZFN0cmluZyArICcpKScs
IGV4cGVjdGVkKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3JlbW92ZUJhc2VVUkwodGVz
dENvbXB1dGVkU3R5bGUoJyArIHVuZXZhbGVkU3RyaW5nICsgJykpJywgZXhwZWN0ZWQpOworfQor
CiBmdW5jdGlvbiBuZWdhdGl2ZV90ZXN0KHZhbHVlKSB7CiAgICAgdmFyIHVuZXZhbGVkU3RyaW5n
ID0gJyInICsgdmFsdWUucmVwbGFjZSgvXFwvZywgIlxcXFwiKS5yZXBsYWNlKC8iL2csICJcIiIp
LnJlcGxhY2UoL1xuL2csICJcXG4iKS5yZXBsYWNlKC9cci9nLCAiXFxyIikgKyAnIic7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q1NTVGV4dCgnICsgdW5ldmFsZWRTdHJpbmcgKyAn
KScsICcnKTsKQEAgLTcxLDYgKzg1LDggQEAgdGVzdCgicG9seWdvbigxMHB4IDIwcHgsIDMwcHgg
NDBweCwgNDBweCA1MHB4KSIsICJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzAKIHRlc3Qo
InBvbHlnb24oZXZlbm9kZCwgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiLCAicG9s
eWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIpOwogdGVzdCgi
cG9seWdvbihub256ZXJvLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4KSIsICJwb2x5
Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIik7CiAKK3Rlc3RM
b2NhbFVSTCgidXJsKFwnaW1hZ2VcJykiLCAidXJsKGltYWdlKSIpOworCiBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoImF1dG8iLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgs
IDMwcHgsIDQwcHgpIiknLCAicGFyZW50OiBhdXRvLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIw
cHgsIDMwcHgsIDQwcHgpIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0
ZWQoIm91dHNpZGUtc2hhcGUiLCAicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIikn
LCAicGFyZW50OiBvdXRzaWRlLXNoYXBlLCBjaGlsZDogcmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMw
cHgsIDQwcHgpIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3ROb3RJbmhlcml0ZWQoInJl
Y3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSIsICJpbml0aWFsIiknLCAicGFyZW50OiBy
ZWN0YW5nbGUoMTBweCwgMjBweCwgMzBweCwgNDBweCksIGNoaWxkOiBvdXRzaWRlLXNoYXBlIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0LXRlc3RzL3Bh
cnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NjcmlwdC10ZXN0cy9wYXJzaW5nLXdyYXAtc2hhcGUtb3V0c2lkZS5qcwppbmRleCAxNjJjZDZk
Li5kYjJmOGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2NyaXB0
LXRlc3RzL3BhcnNpbmctd3JhcC1zaGFwZS1vdXRzaWRlLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zY3JpcHQtdGVzdHMvcGFyc2luZy13cmFwLXNoYXBlLW91dHNpZGUuanMK
QEAgLTQ5LDYgKzQ5LDIwIEBAIGZ1bmN0aW9uIHRlc3QodmFsdWUsIGV4cGVjdGVkKSB7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJp
bmcgKyAnKScsIGV4cGVjdGVkKTsKIH0KIAorLy8gTmVlZCB0byByZW1vdmUgdGhlIGJhc2UgVVJM
IHRvIGF2b2lkIGhhdmluZyBsb2NhbCBwYXRocyBpbiB0aGUgZXhwZWN0ZWQgcmVzdWx0cy4KK2Z1
bmN0aW9uIHJlbW92ZUJhc2VVUkwoc3JjKSB7CisgICAgdmFyIHVybFJlZ2V4cCA9IC91cmxcKChb
XlwpXSopXCkvZzsKKyAgICByZXR1cm4gc3JjLnJlcGxhY2UodXJsUmVnZXhwLCBmdW5jdGlvbiht
YXRjaCwgdXJsKSB7CisgICAgICAgIHJldHVybiAidXJsKCIgKyB1cmwuc3Vic3RyKHVybC5sYXN0
SW5kZXhPZigiLyIpICsgMSkgKyAiKSI7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RMb2Nh
bFVSTCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAnIicgKyB2
YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgv
XG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3JlbW92ZUJhc2VVUkwodGVzdENTU1RleHQoJyArIHVuZXZhbGVkU3RyaW5n
ICsgJykpJywgZXhwZWN0ZWQpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncmVtb3ZlQmFz
ZVVSTCh0ZXN0Q29tcHV0ZWRTdHlsZSgnICsgdW5ldmFsZWRTdHJpbmcgKyAnKSknLCBleHBlY3Rl
ZCk7Cit9CisKIGZ1bmN0aW9uIG5lZ2F0aXZlX3Rlc3QodmFsdWUpIHsKICAgICB2YXIgdW5ldmFs
ZWRTdHJpbmcgPSAnIicgKyB2YWx1ZS5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIv
ZywgIlwiIikucmVwbGFjZSgvXG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICci
JzsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RDU1NUZXh0KCcgKyB1bmV2YWxlZFN0
cmluZyArICcpJywgJycpOwpAQCAtNzAsNiArODQsOCBAQCB0ZXN0KCJwb2x5Z29uKDEwcHggMjBw
eCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAz
MAogdGVzdCgicG9seWdvbihldmVub2RkLCAxMHB4IDIwcHgsIDMwcHggNDBweCwgNDBweCA1MHB4
KSIsICJwb2x5Z29uKGV2ZW5vZGQsIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgpIik7
CiB0ZXN0KCJwb2x5Z29uKG5vbnplcm8sIDEwcHggMjBweCwgMzBweCA0MHB4LCA0MHB4IDUwcHgp
IiwgInBvbHlnb24obm9uemVybywgMTBweCAyMHB4LCAzMHB4IDQwcHgsIDQwcHggNTBweCkiKTsK
IAordGVzdExvY2FsVVJMKCJ1cmwoXCdpbWFnZVwnKSIsICJ1cmwoaW1hZ2UpIik7CisKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgiYXV0byIsICJyZWN0YW5nbGUoMTBw
eCwgMjBweCwgMzBweCwgNDBweCkiKScsICJwYXJlbnQ6IGF1dG8sIGNoaWxkOiByZWN0YW5nbGUo
MTBweCwgMjBweCwgMzBweCwgNDBweCkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5v
dEluaGVyaXRlZCgicmVjdGFuZ2xlKDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgImluaXRpYWwi
KScsICJwYXJlbnQ6IHJlY3RhbmdsZSgxMHB4LCAyMHB4LCAzMHB4LCA0MHB4KSwgY2hpbGQ6IGF1
dG8iKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdE5vdEluaGVyaXRlZCgicmVjdGFuZ2xl
KDEwcHgsIDIwcHgsIDMwcHgsIDQwcHgpIiwgIiIpJywgInBhcmVudDogcmVjdGFuZ2xlKDEwcHgs
IDIwcHgsIDMwcHgsIDQwcHgpLCBjaGlsZDogYXV0byIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY1YzBjZGUu
LjNlNTM3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0wNS0xNyAgSGFucyBN
dWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFk
ZCBDU1MgcGFyc2luZyBzdXBwb3J0IGZvciBpbWFnZSBVUkkgc2hhcGUtaW5zaWRlIGFuZCBzaGFw
ZS1vdXRzaWRlIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE2MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGFuZHJ1IENoaWN1bGl0
YS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBpbWFnZSBVUkkgdmFsdWVzIGZv
ciB0aGUgc2hhcGUtaW5zaWRlIGFuZCBzaGFwZS1vdXRzaWRlIENTUyBwcm9wZXJ0aWVzLgorICAg
ICAgICBFeHRlbmRlZCB0aGUgRXhjbHVzaW9uU2hhcGVWYWx1ZSBjbGFzcyB0byBzdXBwb3J0IHRy
YWNraW5nIHRoZSBwcm9wZXJ0eSdzIFN0eWxlSW1hZ2UgdmFsdWUuCisKKyAgICAgICAgVGhlIEV4
Y2x1c2lvblNoYXBlVmFsdWU6OnR5cGUgZW51bXMgd2VyZSBjaGFuZ2VkIGZyb20gYWxsIHVwcGVy
IGNhc2UgdG8gIkludGVyY2FzZSIgYnkgb3JkZXIKKyAgICAgICAgb2YgdGhlIHN0eWxlIGJvdC4K
KworICAgICAgICBUaGUgZXhpc3RpbmcgQ1NTIHBhcnNpbmcgdGVzdHMgd2VyZSBleHRlbmRlZCB0
byBjaGVjayBVUkkgdmFsdWVzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3Mv
RGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3Bl
cnR5RXhjbHVzaW9uU2hhcGU6OmFwcGx5VmFsdWUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29s
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1h
Z2VzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVWYWx1ZTo6Y3JlYXRlSW1hZ2VWYWx1ZSk6
CisgICAgICAgIChFeGNsdXNpb25TaGFwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlVmFsdWU6OmltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBl
VmFsdWU6OnNldEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlVmFsdWU6
OkV4Y2x1c2lvblNoYXBlVmFsdWUpOgorCiAyMDEzLTA1LTIwICBMYW1hcnF1ZSBWLiBTb3V6YSAg
PExhbWFycXVlLlNvdXphQGJhc3lza29tLmNvbT4KIAogICAgICAgICAtd2Via2l0LXRleHQtdW5k
ZXJsaW5lLXBvc2l0aW9uIHNob3VsZCBub3QgYmUgaW5oZXJpdGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGFiNzE5MjYu
LjY2NGYxYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0yNjc5LDE0ICsyNjc5LDI0IEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQ
cm9wZXJ0CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToKICAgICAg
ICAgICAgIGlmICghc3R5bGUtPnNoYXBlSW5zaWRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwotICAg
ICAgICAgICAgZWxzZSBpZiAoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBFeGNsdXNp
b25TaGFwZVZhbHVlOjpPVVRTSURFKQorICAgICAgICAgICAgaWYgKHN0eWxlLT5zaGFwZUluc2lk
ZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6T3V0c2lkZSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
T3V0c2lkZVNoYXBlKTsKLSAgICAgICAgICAgIEFTU0VSVChzdHlsZS0+c2hhcGVJbnNpZGUoKS0+
dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKKyAgICAgICAgICAgIGlmIChz
dHlsZS0+c2hhcGVJbnNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OkltYWdl
KSB7CisgICAgICAgICAgICAgICAgaWYgKHN0eWxlLT5zaGFwZUluc2lkZSgpLT5pbWFnZSgpKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUtPnNoYXBlSW5zaWRlKCktPmltYWdlKCkt
PmNzc1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgQVNTRVJUKHN0eWxlLT5zaGFwZUluc2lkZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVW
YWx1ZTo6U2hhcGUpOwogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdHls
ZS0+c2hhcGVJbnNpZGUoKS0+c2hhcGUoKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRTaGFwZU91dHNpZGU6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT5zaGFwZU91dHNpZGUoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZh
bHVlKENTU1ZhbHVlQXV0byk7Ci0gICAgICAgICAgICBBU1NFUlQoc3R5bGUtPnNoYXBlT3V0c2lk
ZSgpLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpOworICAgICAgICAgICAg
aWYgKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6
OkltYWdlKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+aW1h
Z2UoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlLT5zaGFwZU91dHNpZGUoKS0+
aW1hZ2UoKS0+Y3NzVmFsdWUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBBU1NFUlQoc3R5bGUtPnNoYXBlT3V0c2lkZSgpLT50eXBlKCkgPT0gRXhjbHVz
aW9uU2hhcGVWYWx1ZTo6U2hhcGUpOwogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNT
aGFwZShzdHlsZS0+c2hhcGVPdXRzaWRlKCktPnNoYXBlKCkpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0V3JhcFRocm91Z2g6CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlVmFsdWUoc3R5bGUtPndyYXBUaHJvdWdoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAppbmRleCAzNDJkMDlkLi4wMTMxMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtMjk2MSw2ICsyOTYxLDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
OkZ1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZShwcm9wSWQsIGlt
cG9ydGFudCk7CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfVVJJKSB7CisgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU0ltYWdlVmFsdWU6
OmNyZWF0ZShjb21wbGV0ZVVSTCh2YWx1ZS0+c3RyaW5nKSk7CisgICAgICAgICAgICBtX3ZhbHVl
TGlzdC0+bmV4dCgpOworICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRTaGFwZU1hcmdpbjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVQ
YWRkaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3Bw
CmluZGV4IDJmOTc0ZTMuLjE2NDgzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZFN0eWxlQnVpbGRlci5jcHAKQEAgLTE5NDksNyArMTk0OSw3IEBAIHRlbXBsYXRlIDxFeGNs
dXNpb25TaGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwg
dm9pZCAoUmVuCiBjbGFzcyBBcHBseVByb3BlcnR5RXhjbHVzaW9uU2hhcGUgewogcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1JlZlB0cjxF
eGNsdXNpb25TaGFwZVZhbHVlPiB2YWx1ZSkgeyAoc3R5bGUtPipzZXR0ZXJGdW5jdGlvbikodmFs
dWUpOyB9Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJl
c29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCisgICAgc3RhdGljIHZvaWQg
YXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBTdHlsZVJlc29sdmVyKiBzdHlsZVJl
c29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgewogICAgICAgICBpZiAodmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2
ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CkBAIC0xOTYy
LDcgKzE5NjIsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFJlZlB0cjxFeGNsdXNpb25T
aGFwZVZhbHVlPiBzaGFwZSA9IEV4Y2x1c2lvblNoYXBlVmFsdWU6OmNyZWF0ZVNoYXBlVmFsdWUo
YmFzaWNTaGFwZUZvclZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHN0eWxlUmVzb2x2ZXIt
PnJvb3RFbGVtZW50U3R5bGUoKSwgcHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpOwog
ICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIHNoYXBlLnJl
bGVhc2UoKSk7CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWUtPmlzSW1h
Z2VWYWx1ZSgpKSB7CisgICAgICAgICAgICBSZWZQdHI8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gc2hh
cGUgPSBFeGNsdXNpb25TaGFwZVZhbHVlOjpjcmVhdGVJbWFnZVZhbHVlKHN0eWxlUmVzb2x2ZXIt
PnN0eWxlSW1hZ2UocHJvcGVydHksIHZhbHVlKSk7CisgICAgICAgICAgICBzZXRWYWx1ZShzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLCBzaGFwZS5yZWxlYXNlKCkpOwogICAgICAgICB9CisKICAgICB9
CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNzA4ZDMzMi4uOTM1ZTMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNDE3NCw2ICs0MTc0LDE2IEBAIHZvaWQg
U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToKKyAgICAgICAgICAgIGlmICht
X3N0YXRlLnN0eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgbV9zdGF0ZS5zdHlsZSgpLT5zaGFwZUlu
c2lkZSgpLT5pbWFnZSgpICYmIG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVJbnNpZGUoKS0+aW1hZ2Uo
KS0+aXNQZW5kaW5nSW1hZ2UoKSkKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNo
YXBlSW5zaWRlKCktPnNldEltYWdlKGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQ
ZW5kaW5nSW1hZ2UqPihtX3N0YXRlLnN0eWxlKCktPnNoYXBlSW5zaWRlKCktPmltYWdlKCkpKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBl
T3V0c2lkZToKKyAgICAgICAgICAgIGlmIChtX3N0YXRlLnN0eWxlKCktPnNoYXBlT3V0c2lkZSgp
ICYmIG1fc3RhdGUuc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCktPmltYWdlKCkgJiYgbV9zdGF0ZS5z
dHlsZSgpLT5zaGFwZU91dHNpZGUoKS0+aW1hZ2UoKS0+aXNQZW5kaW5nSW1hZ2UoKSkKKyAgICAg
ICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpLT5zZXRJbWFnZShsb2Fk
UGVuZGluZ0ltYWdlKHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlKj4obV9zdGF0ZS5zdHls
ZSgpLT5zaGFwZU91dHNpZGUoKS0+aW1hZ2UoKSkpKTsKKyAgICAgICAgICAgIGJyZWFrOworI2Vu
ZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDQyYWU2MDcuLmQxOGJjMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5j
cHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8Q2xpcFBhdGhP
cGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcAogc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmlt
YXRpb25CYXNlKiwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogZnJvbSwgRXhjbHVzaW9uU2hhcGVWYWx1
ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICAvLyBGSVhNRSBCdWcgMTAyNzIzOiBTaGFw
ZS1pbnNpZGUgc2hvdWxkIGJlIGFibGUgdG8gYW5pbWF0ZSBhIHZhbHVlIG9mICdvdXRzaWRlLXNo
YXBlJyB3aGVuIHNoYXBlLW91dHNpZGUgaXMgc2V0IHRvIGEgQmFzaWNTaGFwZQotICAgIGlmIChm
cm9tLT50eXBlKCkgIT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUgfHwgdG8tPnR5cGUoKSAh
PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkKKyAgICBpZiAoZnJvbS0+dHlwZSgpICE9IEV4
Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlIHx8IHRvLT50eXBlKCkgIT0gRXhjbHVzaW9uU2hhcGVW
YWx1ZTo6U2hhcGUpCiAgICAgICAgIHJldHVybiB0bzsKIAogICAgIGNvbnN0IEJhc2ljU2hhcGUq
IGZyb21TaGFwZSA9IGZyb20tPnNoYXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCmluZGV4IDRlNjJmOGMuLjA3ZDNlZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCkBAIC00Niw3
ICs0Niw3IEBAIGNvbnN0IEV4Y2x1c2lvblNoYXBlKiBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVy
VHlwZSwgc2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVyCiAgICAgICAgIHJldHVybiBleGNsdXNp
b25TaGFwZTsKIAogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSAobV9yZW5k
ZXJlci0+c3R5bGUoKS0+KnNoYXBlR2V0dGVyKSgpOwotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0g
KHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6
OlNIQVBFKSA/IHNoYXBlVmFsdWUtPnNoYXBlKCkgOiAwOworICAgIEJhc2ljU2hhcGUqIHNoYXBl
ID0gKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFs
dWU6OlNoYXBlKSA/IHNoYXBlVmFsdWUtPnNoYXBlKCkgOiAwOwogCiAgICAgQVNTRVJUKHNoYXBl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLmNwcAppbmRleCBkODVkMTY5Li5lNzIzZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBMaW5lU2VnbWVudFJhbmdlOjpMaW5lU2VnbWVudFJhbmdlKGNvbnN0IElubGlu
ZUl0ZXJhdG9yJiBzdGFydCwgY29uc3QgSW5saW5lSXRlcgogYm9vbCBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm86OmlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpCiB7CiAg
ICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLT5y
ZXNvbHZlZFNoYXBlSW5zaWRlKCk7Ci0gICAgcmV0dXJuIChzaGFwZVZhbHVlICYmIHNoYXBlVmFs
dWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVlLT5z
aGFwZSgpIDogMDsKKyAgICByZXR1cm4gKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+dHlwZSgp
ID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNoYXBlKSA/IHNoYXBlVmFsdWUtPnNoYXBlKCkgOiAw
OwogfQogCiBib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExpbmVU
b3AoZmxvYXQgbWluU2VnbWVudFdpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IGVkNzM4YTguLjJjN2Y4
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mby5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Ym9vbCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVy
Qm94KiBib3gpCiB7CiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogdmFsdWUgPSBib3gtPnN0eWxl
KCktPnNoYXBlT3V0c2lkZSgpOwotICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNoYXBl
T3V0c2lkZSgpICYmIHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUp
ID8gdmFsdWUtPnNoYXBlKCkgOiAwOworICAgIHJldHVybiAoYm94LT5pc0Zsb2F0aW5nV2l0aFNo
YXBlT3V0c2lkZSgpICYmIHZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U2hh
cGUpID8gdmFsdWUtPnNoYXBlKCkgOiAwOwogfQogCiBib29sIEV4Y2x1c2lvblNoYXBlT3V0c2lk
ZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRV
bml0IGxpbmVIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0V4Y2x1c2lvblNoYXBlVmFsdWUuaAppbmRleCA1YTUzM2FmLi45MTlkMzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRXhjbHVzaW9uU2hhcGVWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9FeGNsdXNpb25TaGFwZVZhbHVlLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNkZWZpbmUgRXhjbHVzaW9uU2hhcGVWYWx1ZV9oCiAKICNpbmNs
dWRlICJCYXNpY1NoYXBlcy5oIgorI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw5ICszOSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNsdXNpb25TaGFwZVZhbHVlIDogcHVibGlj
IFJlZkNvdW50ZWQ8RXhjbHVzaW9uU2hhcGVWYWx1ZT4gewogcHVibGljOgogICAgIGVudW0gRXhj
bHVzaW9uU2hhcGVWYWx1ZVR5cGUgewotICAgICAgICAvLyBUaGUgQVVUTyB2YWx1ZSBpcyBkZWZp
bmVkIGJ5IGEgbnVsbCBFeGNsdXNpb25TaGFwZVZhbHVlKgotICAgICAgICBTSEFQRSwKLSAgICAg
ICAgT1VUU0lERQorICAgICAgICAvLyBUaGUgQXV0byB2YWx1ZSBpcyBkZWZpbmVkIGJ5IGEgbnVs
bCBFeGNsdXNpb25TaGFwZVZhbHVlKgorICAgICAgICBTaGFwZSwKKyAgICAgICAgT3V0c2lkZSwK
KyAgICAgICAgSW1hZ2UKICAgICB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXhjbHVzaW9u
U2hhcGVWYWx1ZT4gY3JlYXRlU2hhcGVWYWx1ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBl
KQpAQCAtNTAsMTggKzUyLDQyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4
Y2x1c2lvblNoYXBlVmFsdWU+IGNyZWF0ZU91dHNpZGVWYWx1ZSgpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV4Y2x1c2lvblNoYXBlVmFsdWUoT1VUU0lERSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV4Y2x1c2lvblNoYXBlVmFsdWUoT3V0c2lkZSkpOworICAg
IH0KKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV4Y2x1c2lvblNoYXBlVmFsdWU+IGNyZWF0ZUlt
YWdlVmFsdWUoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRXhjbHVzaW9uU2hhcGVWYWx1ZShpbWFnZSkpOwogICAgIH0KIAog
ICAgIEV4Y2x1c2lvblNoYXBlVmFsdWVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KICAgICBCYXNpY1NoYXBlKiBzaGFwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUuZ2V0KCk7
IH0KKyAgICBTdHlsZUltYWdlKiBpbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7
IH0KKyAgICB2b2lkIHNldEltYWdlKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UpCisgICAg
eworICAgICAgICBpZiAobV9pbWFnZSAhPSBpbWFnZSkKKyAgICAgICAgICAgIG1faW1hZ2UgPSBp
bWFnZTsKKyAgICB9CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFs
dWUmIG90aGVyKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gb3RoZXIudHlwZSgpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNo
YXBlKSA6IG1fdHlwZShTSEFQRSksIG1fc2hhcGUoc2hhcGUpIHsgfQotICAgIEV4Y2x1c2lvblNo
YXBlVmFsdWUoRXhjbHVzaW9uU2hhcGVWYWx1ZVR5cGUgdHlwZSkgOiBtX3R5cGUodHlwZSkgeyB9
CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNoYXBlKQor
ICAgICAgICA6IG1fdHlwZShTaGFwZSkKKyAgICAgICAgLCBtX3NoYXBlKHNoYXBlKQorICAgIHsK
KyAgICB9CisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZShFeGNsdXNpb25TaGFwZVZhbHVlVHlwZSB0
eXBlKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgIHsKKyAgICB9CisgICAgRXhjbHVzaW9u
U2hhcGVWYWx1ZShQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlKQorICAgICAgICA6IG1fdHlw
ZShJbWFnZSkKKyAgICAgICAgLCBtX2ltYWdlKGltYWdlKQorICAgIHsKKyAgICB9CiAgICAgRXhj
bHVzaW9uU2hhcGVWYWx1ZVR5cGUgbV90eXBlOwogICAgIFJlZlB0cjxCYXNpY1NoYXBlPiBtX3No
YXBlOworICAgIFJlZlB0cjxTdHlsZUltYWdlPiBtX2ltYWdlOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NjNhYmFlLi5jMjli
NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtMTQ4MCw3ICsxNDgwLDcgQEAgcHVibGljOgogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHJl
c29sdmVkU2hhcGVJbnNpZGUoKSBjb25zdAogICAgIHsKICAgICAgICAgRXhjbHVzaW9uU2hhcGVW
YWx1ZSogc2hhcGVJbnNpZGUgPSB0aGlzLT5zaGFwZUluc2lkZSgpOwotICAgICAgICBpZiAoc2hh
cGVJbnNpZGUgJiYgc2hhcGVJbnNpZGUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpP
VVRTSURFKQorICAgICAgICBpZiAoc2hhcGVJbnNpZGUgJiYgc2hhcGVJbnNpZGUtPnR5cGUoKSA9
PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpPdXRzaWRlKQogICAgICAgICAgICAgcmV0dXJuIHNoYXBl
T3V0c2lkZSgpOwogICAgICAgICByZXR1cm4gc2hhcGVJbnNpZGU7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>