<?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>32799</bug_id>
          
          <creation_ts>2009-12-20 12:26:16 -0800</creation_ts>
          <short_desc>Cleanup: Rename CSS list-style-type markers to conform to WebKit Code Style Guidelines</short_desc>
          <delta_ts>2009-12-22 23:31:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>ian</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>173787</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-20 12:26:16 -0800</bug_when>
    <thetext>Following up on a suggestion by Darin &lt;https://bugs.webkit.org/show_bug.cgi?id=32138#c5&gt;, we should rename the enums in RenderStyleConstants::EListStyleType to conform to the WebKit Code Style Guidelines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173792</commentid>
    <comment_count>1</comment_count>
      <attachid>45288</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-20 12:41:09 -0800</bug_when>
    <thetext>Created attachment 45288
Patch

No functionality was changed. So, no tests included in patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173793</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 12:41:34 -0800</bug_when>
    <thetext>Attachment 45288 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSPrimitiveValueMappings.h:933:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListItem.cpp:54:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
WebCore/rendering/RenderListMarker.cpp:343:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:574:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:696:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:776:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:793:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:839:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173795</commentid>
    <comment_count>3</comment_count>
      <attachid>45289</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-20 12:55:12 -0800</bug_when>
    <thetext>Created attachment 45289
Patch with style-bot fixes (maybe we should do these fixes in a separate bug?)

An updated patch with more style corrections to make the style-bot happy.

I think I recall seeing a webkit-dev post about allowing switch indents when there are many cases. Maybe we can disagree with the style-bot (and not use this attachment) since the cleanup requires us to touch some switch statements that have many cases?

Also, if we do decide to go with the style-bot&apos;s suggestions then we may want to do these changes as part of a separate bug(s).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173861</commentid>
    <comment_count>4</comment_count>
      <attachid>45288</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-20 21:06:21 -0800</bug_when>
    <thetext>Comment on attachment 45288
Patch

I think that DecimalListStyle would be better than LDecimal and NoneListStyle better than LNone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173866</commentid>
    <comment_count>5</comment_count>
      <attachid>45306</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-20 22:01:44 -0800</bug_when>
    <thetext>Created attachment 45306
Patch

Updated patch based on Darin&apos;s suggestion to substitute DecimalListStyle for LDecimal and NoneListStyle for LNone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173867</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-20 22:02:55 -0800</bug_when>
    <thetext>Attachment 45306 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSPrimitiveValueMappings.h:939:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:343:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:574:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:696:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:776:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:793:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/rendering/RenderListMarker.cpp:839:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173873</commentid>
    <comment_count>7</comment_count>
      <attachid>45306</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-20 22:39:38 -0800</bug_when>
    <thetext>Comment on attachment 45306
Patch

Maybe more should ahve the ListStyle postfix, but this seems better than what we had before.  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174536</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-22 23:31:04 -0800</bug_when>
    <thetext>Committed in &lt;http://trac.webkit.org/changeset/52521&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45288</attachid>
            <date>2009-12-20 12:41:09 -0800</date>
            <delta_ts>2009-12-20 22:01:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32799.patch</filename>
            <type>text/plain</type>
            <size>18922</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjc5OQorCisgICAgICAgIFJl
bmFtZXMgZW51bXMgaW4gUmVuZGVyU3R5bGVDb25zdGFudHM6OkVMaXN0U3R5bGVUeXBlIHRvIGNv
bmZvcm0gdG8KKyAgICAgICAgdGhlIFdlYktpdCBDb2RlIFN0eWxlIEd1aWRlbGluZXMuCisKKyAg
ICAgICAgTm8gZnVuY3Rpb25hbGl0eSB3YXMgY2hhbmdlZC4gU28sIG5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVMaXN0U3R5bGVUeXBlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEl0ZW06OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaXN0TWFya2VyOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
aW5pdGlhbExpc3RTdHlsZVR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAwOS0xMi0yMCAgTWFy
dGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdtYWlsLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCShyZXZpc2lvbiA1MjM4NCkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtOTMwLDY3ICs5MzAsNjcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAgIDogbV90eXBlKENTU19J
REVOVCkKIHsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBMTk9ORToKKyAgICAgICAg
Y2FzZSBMTm9uZToKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBESVNDOgorICAgICAgICBjYXNlIERpc2M6
CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEaXNjOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ0lSQ0xFOgorICAgICAgICBjYXNlIENpcmNsZToKICAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFNRVUFSRToKKyAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTcXVhcmU7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBMREVDSU1BTDoKKyAgICAgICAgY2FzZSBMRGVjaW1hbDoKICAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlY2ltYWw7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBERUNJTUFMX0xFQURJTkdfWkVSTzoKKyAgICAgICAgY2FzZSBEZWNpbWFsTGVh
ZGluZ1plcm86CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsTGVh
ZGluZ1plcm87CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMT1dFUl9ST01BTjoK
KyAgICAgICAgY2FzZSBMb3dlclJvbWFuOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENT
U1ZhbHVlTG93ZXJSb21hbjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFVQUEVS
X1JPTUFOOgorICAgICAgICBjYXNlIFVwcGVyUm9tYW46CiAgICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVVcHBlclJvbWFuOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgTE9XRVJfR1JFRUs6CisgICAgICAgIGNhc2UgTG93ZXJHcmVlazoKICAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyR3JlZWs7CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBMT1dFUl9BTFBIQToKKyAgICAgICAgY2FzZSBMb3dlckFscGhhOgogICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJBbHBoYTsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIExPV0VSX0xBVElOOgorICAgICAgICBjYXNlIExvd2VyTGF0aW46
CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckxhdGluOwogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVVBQRVJfQUxQSEE6CisgICAgICAgIGNhc2UgVXBw
ZXJBbHBoYToKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyQWxwaGE7
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBVUFBFUl9MQVRJTjoKKyAgICAgICAg
Y2FzZSBVcHBlckxhdGluOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBw
ZXJMYXRpbjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEhFQlJFVzoKKyAgICAg
ICAgY2FzZSBIZWJyZXc6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIZWJy
ZXc7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBUk1FTklBTjoKKyAgICAgICAg
Y2FzZSBBcm1lbmlhbjoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVu
aWFuOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR0VPUkdJQU46CisgICAgICAg
IGNhc2UgR2VvcmdpYW46CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHZW9y
Z2lhbjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENKS19JREVPR1JBUEhJQzoK
KyAgICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUNqa0lkZW9ncmFwaGljOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgSElSQUdBTkE6CisgICAgICAgIGNhc2UgSGlyYWdhbmE6CiAgICAgICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVIaXJhZ2FuYTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEtBVEFLQU5BOgorICAgICAgICBjYXNlIEthdGFrYW5hOgogICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlS2F0YWthbmE7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBISVJBR0FOQV9JUk9IQToKKyAgICAgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgogICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlyYWdhbmFJcm9oYTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIEtBVEFLQU5BX0lST0hBOgorICAgICAgICBjYXNlIEthdGFr
YW5hSXJvaGE6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXRha2FuYUly
b2hhOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTAwMCw3ICsxMDAwLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogewogICAgIHN3aXRjaCAobV92
YWx1ZS5pZGVudCkgewogICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJl
dHVybiBMTk9ORTsKKyAgICAgICAgICAgIHJldHVybiBMTm9uZTsKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFTGlzdFN0eWxlVHlwZT4obV92YWx1ZS5p
ZGVudCAtIENTU1ZhbHVlRGlzYyk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RJdGVtLmNwcAkocmV2aXNpb24gNTIzODQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0SXRlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBSZW5kZXJM
aXN0SXRlbTo6c3R5bGVEaWRDaGFuZ2UoU3R5bAogewogICAgIFJlbmRlckJsb2NrOjpzdHlsZURp
ZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CiAKLSAgICBpZiAoc3R5bGUoKS0+bGlzdFN0eWxlVHlw
ZSgpICE9IExOT05FIHx8CisgICAgaWYgKHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKSAhPSBMTm9u
ZSB8fAogICAgICAgICAoc3R5bGUoKS0+bGlzdFN0eWxlSW1hZ2UoKSAmJiAhc3R5bGUoKS0+bGlz
dFN0eWxlSW1hZ2UoKS0+ZXJyb3JPY2N1cnJlZCgpKSkgewogICAgICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgpOwogICAgICAgICAvLyBUaGUg
bWFya2VyIGFsd2F5cyBpbmhlcml0cyBmcm9tIHRoZSBsaXN0IGl0ZW0sIHJlZ2FyZGxlc3Mgb2Yg
d2hlcmUgaXQgbWlnaHQgZW5kCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcAkocmV2aXNpb24gNTIzODQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQwLDQ2ICszNDAsNDYgQEAgc3RhdGljIFN0cmlu
ZyB0b0NKS0lkZW9ncmFwaGljKGludCBudW1iZQogU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0
U3R5bGVUeXBlIHR5cGUsIGludCB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAg
ICAgY2FzZSBMTk9ORToKKyAgICAgICAgY2FzZSBMTm9uZToKICAgICAgICAgICAgIHJldHVybiAi
IjsKIAogICAgICAgICAvLyBXZSB1c2UgdGhlIHNhbWUgY2hhcmFjdGVycyBmb3IgdGV4dCBzZWN1
cml0eS4KICAgICAgICAgLy8gU2VlIFJlbmRlclRleHQ6OnNldEludGVybmFsU3RyaW5nLgotICAg
ICAgICBjYXNlIENJUkNMRToKKyAgICAgICAgY2FzZSBDaXJjbGU6CiAgICAgICAgICAgICByZXR1
cm4gU3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7Ci0gICAgICAgIGNhc2UgRElTQzoKKyAgICAgICAg
Y2FzZSBEaXNjOgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygmYnVsbGV0LCAxKTsKLSAgICAg
ICAgY2FzZSBTUVVBUkU6CisgICAgICAgIGNhc2UgU3F1YXJlOgogICAgICAgICAgICAgLy8gVGhl
IENTUyAyLjEgdGVzdCBzdWl0ZSB1c2VzIFUrMjVFRSBCTEFDSyBNRURJVU0gU01BTEwgU1FVQVJF
CiAgICAgICAgICAgICAvLyBpbnN0ZWFkLCBidXQgSSB0aGluayB0aGlzIGxvb2tzIGJldHRlci4K
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoJmJsYWNrU3F1YXJlLCAxKTsKIAotICAgICAgICBj
YXNlIExERUNJTUFMOgorICAgICAgICBjYXNlIExEZWNpbWFsOgogICAgICAgICAgICAgcmV0dXJu
IFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKLSAgICAgICAgY2FzZSBERUNJTUFMX0xFQURJTkdfWkVS
TzoKKyAgICAgICAgY2FzZSBEZWNpbWFsTGVhZGluZ1plcm86CiAgICAgICAgICAgICBpZiAodmFs
dWUgPCAtOSB8fCB2YWx1ZSA+IDkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVt
YmVyKHZhbHVlKTsKICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDApCiAgICAgICAgICAgICAgICAg
cmV0dXJuICItMCIgKyBTdHJpbmc6Om51bWJlcigtdmFsdWUpOyAvLyAtMDEgdG8gLTA5CiAgICAg
ICAgICAgICByZXR1cm4gIjAiICsgU3RyaW5nOjpudW1iZXIodmFsdWUpOyAvLyAwMCB0byAwOQog
Ci0gICAgICAgIGNhc2UgTE9XRVJfQUxQSEE6Ci0gICAgICAgIGNhc2UgTE9XRVJfTEFUSU46IHsK
KyAgICAgICAgY2FzZSBMb3dlckFscGhhOgorICAgICAgICBjYXNlIExvd2VyTGF0aW46IHsKICAg
ICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsb3dlckxhdGluQWxwaGFiZXRbMjZdID0gewog
ICAgICAgICAgICAgICAgICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnLCAn
aScsICdqJywgJ2snLCAnbCcsICdtJywKICAgICAgICAgICAgICAgICAnbicsICdvJywgJ3AnLCAn
cScsICdyJywgJ3MnLCAndCcsICd1JywgJ3YnLCAndycsICd4JywgJ3knLCAneicKICAgICAgICAg
ICAgIH07CiAgICAgICAgICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZhbHVlLCBsb3dlckxhdGlu
QWxwaGFiZXQsIDI2KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIFVQUEVSX0FMUEhBOgotICAg
ICAgICBjYXNlIFVQUEVSX0xBVElOOiB7CisgICAgICAgIGNhc2UgVXBwZXJBbHBoYToKKyAgICAg
ICAgY2FzZSBVcHBlckxhdGluOiB7CiAgICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgdXBw
ZXJMYXRpbkFscGhhYmV0WzI2XSA9IHsKICAgICAgICAgICAgICAgICAnQScsICdCJywgJ0MnLCAn
RCcsICdFJywgJ0YnLCAnRycsICdIJywgJ0knLCAnSicsICdLJywgJ0wnLCAnTScsCiAgICAgICAg
ICAgICAgICAgJ04nLCAnTycsICdQJywgJ1EnLCAnUicsICdTJywgJ1QnLCAnVScsICdWJywgJ1cn
LCAnWCcsICdZJywgJ1onCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgcmV0dXJuIHRvQWxw
aGFiZXRpYyh2YWx1ZSwgdXBwZXJMYXRpbkFscGhhYmV0LCAyNik7CiAgICAgICAgIH0KLSAgICAg
ICAgY2FzZSBMT1dFUl9HUkVFSzogeworICAgICAgICBjYXNlIExvd2VyR3JlZWs6IHsKICAgICAg
ICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsb3dlckdyZWVrQWxwaGFiZXRbMjRdID0gewogICAg
ICAgICAgICAgICAgIDB4MDNCMSwgMHgwM0IyLCAweDAzQjMsIDB4MDNCNCwgMHgwM0I1LCAweDAz
QjYsIDB4MDNCNywgMHgwM0I4LAogICAgICAgICAgICAgICAgIDB4MDNCOSwgMHgwM0JBLCAweDAz
QkIsIDB4MDNCQywgMHgwM0JELCAweDAzQkUsIDB4MDNCRiwgMHgwM0MwLApAQCAtMzg4LDcgKzM4
OCw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXAKICAgICAgICAg
ICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGxvd2VyR3JlZWtBbHBoYWJldCwgMjQpOwog
ICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBISVJBR0FOQTogeworICAgICAgICBjYXNlIEhpcmFn
YW5hOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0YWJsZSBjb21lcyBmcm9tIHRoZSBD
U1MzIGRyYWZ0LCBhbmQgaXMgcHJvYmFibHkKICAgICAgICAgICAgIC8vIGluY29ycmVjdCwgZ2l2
ZW4gdGhlIGNvbW1lbnRzIGluIHRoYXQgZHJhZnQuCiAgICAgICAgICAgICBzdGF0aWMgY29uc3Qg
VUNoYXIgaGlyYWdhbmFBbHBoYWJldFs0OF0gPSB7CkBAIC00MDEsNyArNDAxLDcgQEAgU3RyaW5n
IGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cAogICAgICAgICAgICAgfTsKICAgICAg
ICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGhpcmFnYW5hQWxwaGFiZXQsIDQ4KTsK
ICAgICAgICAgfQotICAgICAgICBjYXNlIEhJUkFHQU5BX0lST0hBOiB7CisgICAgICAgIGNhc2Ug
SGlyYWdhbmFJcm9oYTogewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdGFibGUgY29tZXMg
ZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlzIHByb2JhYmx5CiAgICAgICAgICAgICAvLyBpbmNv
cnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0aGF0IGRyYWZ0LgogICAgICAgICAgICAgc3Rh
dGljIGNvbnN0IFVDaGFyIGhpcmFnYW5hSXJvaGFBbHBoYWJldFs0N10gPSB7CkBAIC00MTQsNyAr
NDE0LDcgQEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cAogICAgICAg
ICAgICAgfTsKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGhpcmFnYW5h
SXJvaGFBbHBoYWJldCwgNDcpOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgS0FUQUtBTkE6IHsK
KyAgICAgICAgY2FzZSBLYXRha2FuYTogewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgdGFi
bGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlzIHByb2JhYmx5CiAgICAgICAgICAg
ICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0aGF0IGRyYWZ0LgogICAgICAg
ICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGthdGFrYW5hQWxwaGFiZXRbNDhdID0gewpAQCAtNDI3
LDcgKzQyNyw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXAKICAg
ICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZhbHVlLCBrYXRh
a2FuYUFscGhhYmV0LCA0OCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBLQVRBS0FOQV9JUk9I
QTogeworICAgICAgICBjYXNlIEthdGFrYW5hSXJvaGE6IHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGlzIHRhYmxlIGNvbWVzIGZyb20gdGhlIENTUzMgZHJhZnQsIGFuZCBpcyBwcm9iYWJseQog
ICAgICAgICAgICAgLy8gaW5jb3JyZWN0LCBnaXZlbiB0aGUgY29tbWVudHMgaW4gdGhhdCBkcmFm
dC4KICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBrYXRha2FuYUlyb2hhQWxwaGFiZXRb
NDddID0gewpAQCAtNDQxLDcgKzQ0MSw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0
eWxlVHlwZSB0eXAKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGthdGFr
YW5hSXJvaGFBbHBoYWJldCwgNDcpOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBDSktfSURF
T0dSQVBISUM6IHsKKyAgICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzogewogICAgICAgICAgICAg
c3RhdGljIGNvbnN0IFVDaGFyIHRyYWRpdGlvbmFsQ2hpbmVzZUluZm9ybWFsVGFibGVbMTZdID0g
ewogICAgICAgICAgICAgICAgIDB4ODQyQywgMHg1MTA0LCAweDUxNDYsCiAgICAgICAgICAgICAg
ICAgMHg1MzQxLCAweDc2N0UsIDB4NTM0MywKQEAgLTQ1MSwxOSArNDUxLDE5IEBAIFN0cmluZyBs
aXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXAKICAgICAgICAgICAgIHJldHVybiB0b0NK
S0lkZW9ncmFwaGljKHZhbHVlLCB0cmFkaXRpb25hbENoaW5lc2VJbmZvcm1hbFRhYmxlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGNhc2UgTE9XRVJfUk9NQU46CisgICAgICAgIGNhc2UgTG93ZXJS
b21hbjoKICAgICAgICAgICAgIHJldHVybiB0b1JvbWFuKHZhbHVlLCBmYWxzZSk7Ci0gICAgICAg
IGNhc2UgVVBQRVJfUk9NQU46CisgICAgICAgIGNhc2UgVXBwZXJSb21hbjoKICAgICAgICAgICAg
IHJldHVybiB0b1JvbWFuKHZhbHVlLCB0cnVlKTsKIAotICAgICAgICBjYXNlIEFSTUVOSUFOOgor
ICAgICAgICBjYXNlIEFybWVuaWFuOgogICAgICAgICAgICAgLy8gQ1NTMyBzYXlzICJhcm1lbmlh
biIgbWVhbnMgImxvd2VyLWFybWVuaWFuIi4KICAgICAgICAgICAgIC8vIEJ1dCB0aGUgQ1NTMi4x
IHRlc3Qgc3VpdGUgY29udGFpbnMgdXBwZXJjYXNlIHRlc3QgcmVzdWx0cyBmb3IgImFybWVuaWFu
IiwKICAgICAgICAgICAgIC8vIHNvIHdlJ2xsIG1hdGNoIHRoZSB0ZXN0IHN1aXRlLgogICAgICAg
ICAgICAgcmV0dXJuIHRvQXJtZW5pYW4odmFsdWUsIHRydWUpOwotICAgICAgICBjYXNlIEdFT1JH
SUFOOgorICAgICAgICBjYXNlIEdlb3JnaWFuOgogICAgICAgICAgICAgcmV0dXJuIHRvR2Vvcmdp
YW4odmFsdWUpOwotICAgICAgICBjYXNlIEhFQlJFVzoKKyAgICAgICAgY2FzZSBIZWJyZXc6CiAg
ICAgICAgICAgICByZXR1cm4gdG9IZWJyZXcodmFsdWUpOwogICAgIH0KIApAQCAtNTcxLDM1ICs1
NzEsMzUgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWludEluZm8mIAogICAgIGNv
bnRleHQtPnNldEZpbGxDb2xvcihjb2xvciwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKIAogICAg
IHN3aXRjaCAoc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgRElTQzoK
KyAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VsbGlwc2UobWFy
a2VyKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBDSVJDTEU6CisgICAgICAg
IGNhc2UgQ2lyY2xlOgogICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjp0
cmFuc3BhcmVudCwgRGV2aWNlQ29sb3JTcGFjZSk7CiAgICAgICAgICAgICBjb250ZXh0LT5kcmF3
RWxsaXBzZShtYXJrZXIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFNRVUFS
RToKKyAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAgICBjb250ZXh0LT5kcmF3UmVjdCht
YXJrZXIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIExOT05FOgorICAgICAg
ICBjYXNlIExOb25lOgogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIEFSTUVOSUFO
OgotICAgICAgICBjYXNlIENKS19JREVPR1JBUEhJQzoKLSAgICAgICAgY2FzZSBERUNJTUFMX0xF
QURJTkdfWkVSTzoKLSAgICAgICAgY2FzZSBHRU9SR0lBTjoKLSAgICAgICAgY2FzZSBIRUJSRVc6
Ci0gICAgICAgIGNhc2UgSElSQUdBTkE6Ci0gICAgICAgIGNhc2UgSElSQUdBTkFfSVJPSEE6Ci0g
ICAgICAgIGNhc2UgS0FUQUtBTkE6Ci0gICAgICAgIGNhc2UgS0FUQUtBTkFfSVJPSEE6Ci0gICAg
ICAgIGNhc2UgTERFQ0lNQUw6Ci0gICAgICAgIGNhc2UgTE9XRVJfQUxQSEE6Ci0gICAgICAgIGNh
c2UgTE9XRVJfR1JFRUs6Ci0gICAgICAgIGNhc2UgTE9XRVJfTEFUSU46Ci0gICAgICAgIGNhc2Ug
TE9XRVJfUk9NQU46Ci0gICAgICAgIGNhc2UgVVBQRVJfQUxQSEE6Ci0gICAgICAgIGNhc2UgVVBQ
RVJfTEFUSU46Ci0gICAgICAgIGNhc2UgVVBQRVJfUk9NQU46CisgICAgICAgIGNhc2UgQXJtZW5p
YW46CisgICAgICAgIGNhc2UgQ0pLSWRlb2dyYXBoaWM6CisgICAgICAgIGNhc2UgRGVjaW1hbExl
YWRpbmdaZXJvOgorICAgICAgICBjYXNlIEdlb3JnaWFuOgorICAgICAgICBjYXNlIEhlYnJldzoK
KyAgICAgICAgY2FzZSBIaXJhZ2FuYToKKyAgICAgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgorICAg
ICAgICBjYXNlIEthdGFrYW5hOgorICAgICAgICBjYXNlIEthdGFrYW5hSXJvaGE6CisgICAgICAg
IGNhc2UgTERlY2ltYWw6CisgICAgICAgIGNhc2UgTG93ZXJBbHBoYToKKyAgICAgICAgY2FzZSBM
b3dlckdyZWVrOgorICAgICAgICBjYXNlIExvd2VyTGF0aW46CisgICAgICAgIGNhc2UgTG93ZXJS
b21hbjoKKyAgICAgICAgY2FzZSBVcHBlckFscGhhOgorICAgICAgICBjYXNlIFVwcGVyTGF0aW46
CisgICAgICAgIGNhc2UgVXBwZXJSb21hbjoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBpZiAobV90ZXh0LmlzRW1wdHkoKSkKQEAgLTY5MywzMSArNjkzLDMxIEBAIHZvaWQgUmVuZGVy
TGlzdE1hcmtlcjo6Y2FsY1ByZWZXaWR0aHMoKQogICAgIGludCB3aWR0aCA9IDA7CiAgICAgRUxp
c3RTdHlsZVR5cGUgdHlwZSA9IHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKTsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICAgICAgY2FzZSBMTk9ORToKKyAgICAgICAgY2FzZSBMTm9uZToKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgY2FzZSBESVNDOgot
ICAgICAgICBjYXNlIFNRVUFSRToKKyAgICAgICAgY2FzZSBDaXJjbGU6CisgICAgICAgIGNhc2Ug
RGlzYzoKKyAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAgICBtX3RleHQgPSBsaXN0TWFy
a2VyVGV4dCh0eXBlLCAwKTsgLy8gdmFsdWUgaXMgaWdub3JlZCBmb3IgdGhlc2UgdHlwZXMKICAg
ICAgICAgICAgIHdpZHRoID0gKGZvbnQuYXNjZW50KCkgKiAyIC8gMyArIDEpIC8gMiArIDI7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBUk1FTklBTjoKLSAgICAgICAgY2FzZSBD
SktfSURFT0dSQVBISUM6Ci0gICAgICAgIGNhc2UgREVDSU1BTF9MRUFESU5HX1pFUk86Ci0gICAg
ICAgIGNhc2UgR0VPUkdJQU46Ci0gICAgICAgIGNhc2UgSEVCUkVXOgotICAgICAgICBjYXNlIEhJ
UkFHQU5BOgotICAgICAgICBjYXNlIEhJUkFHQU5BX0lST0hBOgotICAgICAgICBjYXNlIEtBVEFL
QU5BOgotICAgICAgICBjYXNlIEtBVEFLQU5BX0lST0hBOgotICAgICAgICBjYXNlIExERUNJTUFM
OgotICAgICAgICBjYXNlIExPV0VSX0FMUEhBOgotICAgICAgICBjYXNlIExPV0VSX0dSRUVLOgot
ICAgICAgICBjYXNlIExPV0VSX0xBVElOOgotICAgICAgICBjYXNlIExPV0VSX1JPTUFOOgotICAg
ICAgICBjYXNlIFVQUEVSX0FMUEhBOgotICAgICAgICBjYXNlIFVQUEVSX0xBVElOOgotICAgICAg
ICBjYXNlIFVQUEVSX1JPTUFOOgorICAgICAgICBjYXNlIEFybWVuaWFuOgorICAgICAgICBjYXNl
IENKS0lkZW9ncmFwaGljOgorICAgICAgICBjYXNlIERlY2ltYWxMZWFkaW5nWmVybzoKKyAgICAg
ICAgY2FzZSBHZW9yZ2lhbjoKKyAgICAgICAgY2FzZSBIZWJyZXc6CisgICAgICAgIGNhc2UgSGly
YWdhbmE6CisgICAgICAgIGNhc2UgSGlyYWdhbmFJcm9oYToKKyAgICAgICAgY2FzZSBLYXRha2Fu
YToKKyAgICAgICAgY2FzZSBLYXRha2FuYUlyb2hhOgorICAgICAgICBjYXNlIExEZWNpbWFsOgor
ICAgICAgICBjYXNlIExvd2VyQWxwaGE6CisgICAgICAgIGNhc2UgTG93ZXJHcmVlazoKKyAgICAg
ICAgY2FzZSBMb3dlckxhdGluOgorICAgICAgICBjYXNlIExvd2VyUm9tYW46CisgICAgICAgIGNh
c2UgVXBwZXJBbHBoYToKKyAgICAgICAgY2FzZSBVcHBlckxhdGluOgorICAgICAgICBjYXNlIFVw
cGVyUm9tYW46CiAgICAgICAgICAgICBtX3RleHQgPSBsaXN0TWFya2VyVGV4dCh0eXBlLCBtX2xp
c3RJdGVtLT52YWx1ZSgpKTsKICAgICAgICAgICAgIGlmIChtX3RleHQuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIHdpZHRoID0gMDsKQEAgLTc1Miw5ICs3NTIsOSBAQCB2b2lkIFJlbmRlckxp
c3RNYXJrZXI6OnVwZGF0ZU1hcmdpbnMoKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG1hcmdpbkxlZnQgPSBjTWFya2VyUGFkZGluZzsKICAgICAgICAgfSBlbHNlIHN3aXRjaCAo
c3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIERJU0M6Ci0gICAg
ICAgICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgICAgIGNhc2UgU1FVQVJFOgorICAgICAgICAg
ICAgY2FzZSBEaXNjOgorICAgICAgICAgICAgY2FzZSBDaXJjbGU6CisgICAgICAgICAgICBjYXNl
IFNxdWFyZToKICAgICAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+ZGlyZWN0aW9uKCkgPT0gTFRS
KSB7CiAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQgPSAtMTsKICAgICAgICAgICAgICAg
ICAgICAgbWFyZ2luUmlnaHQgPSBmb250LmFzY2VudCgpIC0gbWluUHJlZldpZHRoKCkgKyAxOwpA
QCAtNzczLDEyICs3NzMsMTIgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5z
KCkKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBmb250
LmFzY2VudCgpICogMiAvIDM7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChzdHlsZSgpLT5saXN0
U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBESVNDOgotICAgICAgICAg
ICAgICAgICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBTUVVBUkU6
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRGlzYzoKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBDaXJjbGU6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgU3F1YXJlOgogICAgICAgICAgICAg
ICAgICAgICAgICAgbWFyZ2luTGVmdCA9IC1vZmZzZXQgLSBjTWFya2VyUGFkZGluZyAtIDE7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBM
Tk9ORToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBMTm9uZToKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
ICAgICAgICAgICAgbWFyZ2luTGVmdCA9IG1fdGV4dC5pc0VtcHR5KCkgPyAwIDogLW1pblByZWZX
aWR0aCgpIC0gb2Zmc2V0IC8gMjsKQEAgLTc5MCwxMiArNzkwLDEyIEBAIHZvaWQgUmVuZGVyTGlz
dE1hcmtlcjo6dXBkYXRlTWFyZ2lucygpCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICBpbnQgb2Zmc2V0ID0gZm9udC5hc2NlbnQoKSAqIDIgLyAzOwogICAgICAgICAgICAgICAg
IHN3aXRjaCAoc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgRElTQzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBDSVJDTEU6Ci0gICAgICAgICAg
ICAgICAgICAgIGNhc2UgU1FVQVJFOgorICAgICAgICAgICAgICAgICAgICBjYXNlIERpc2M6Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgQ2lyY2xlOgorICAgICAgICAgICAgICAgICAgICBjYXNl
IFNxdWFyZToKICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQgPSBvZmZzZXQgKyBj
TWFya2VyUGFkZGluZyArIDEgLSBtaW5QcmVmV2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIExOT05FOgorICAgICAgICAgICAg
ICAgICAgICBjYXNlIExOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5M
ZWZ0ID0gbV90ZXh0LmlzRW1wdHkoKSA/IDAgOiBvZmZzZXQgLyAyOwpAQCAtODM2LDM0ICs4MzYs
MzQgQEAgSW50UmVjdCBSZW5kZXJMaXN0TWFya2VyOjpnZXRSZWxhdGl2ZU1hcgogICAgICAgICBy
ZXR1cm4gSW50UmVjdCh4KCksIHkoKSwgbV9pbWFnZS0+aW1hZ2VTaXplKHRoaXMsIHN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSkud2lkdGgoKSwgbV9pbWFnZS0+aW1hZ2VTaXplKHRoaXMsIHN0eWxl
KCktPmVmZmVjdGl2ZVpvb20oKSkuaGVpZ2h0KCkpOwogCiAgICAgc3dpdGNoIChzdHlsZSgpLT5s
aXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBESVNDOgotICAgICAgICBjYXNlIENJUkNM
RToKLSAgICAgICAgY2FzZSBTUVVBUkU6IHsKKyAgICAgICAgY2FzZSBEaXNjOgorICAgICAgICBj
YXNlIENpcmNsZToKKyAgICAgICAgY2FzZSBTcXVhcmU6IHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBBcmUgdGhlc2UgcGFydGljdWxhciByb3VuZGluZyBydWxlcyBuZWNlc3Nhcnk/CiAgICAgICAg
ICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9udCgpOwogICAgICAgICAgICAgaW50
IGFzY2VudCA9IGZvbnQuYXNjZW50KCk7CiAgICAgICAgICAgICBpbnQgYnVsbGV0V2lkdGggPSAo
YXNjZW50ICogMiAvIDMgKyAxKSAvIDI7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVjdCh4KCkg
KyAxLCB5KCkgKyAzICogKGFzY2VudCAtIGFzY2VudCAqIDIgLyAzKSAvIDIsIGJ1bGxldFdpZHRo
LCBidWxsZXRXaWR0aCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBMTk9ORToKKyAgICAgICAg
Y2FzZSBMTm9uZToKICAgICAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgICAgIGNhc2Ug
QVJNRU5JQU46Ci0gICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSElDOgotICAgICAgICBjYXNlIERF
Q0lNQUxfTEVBRElOR19aRVJPOgotICAgICAgICBjYXNlIEdFT1JHSUFOOgotICAgICAgICBjYXNl
IEhFQlJFVzoKLSAgICAgICAgY2FzZSBISVJBR0FOQToKLSAgICAgICAgY2FzZSBISVJBR0FOQV9J
Uk9IQToKLSAgICAgICAgY2FzZSBLQVRBS0FOQToKLSAgICAgICAgY2FzZSBLQVRBS0FOQV9JUk9I
QToKLSAgICAgICAgY2FzZSBMREVDSU1BTDoKLSAgICAgICAgY2FzZSBMT1dFUl9BTFBIQToKLSAg
ICAgICAgY2FzZSBMT1dFUl9HUkVFSzoKLSAgICAgICAgY2FzZSBMT1dFUl9MQVRJTjoKLSAgICAg
ICAgY2FzZSBMT1dFUl9ST01BTjoKLSAgICAgICAgY2FzZSBVUFBFUl9BTFBIQToKLSAgICAgICAg
Y2FzZSBVUFBFUl9MQVRJTjoKLSAgICAgICAgY2FzZSBVUFBFUl9ST01BTjoKKyAgICAgICAgY2Fz
ZSBBcm1lbmlhbjoKKyAgICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoKKyAgICAgICAgY2FzZSBE
ZWNpbWFsTGVhZGluZ1plcm86CisgICAgICAgIGNhc2UgR2VvcmdpYW46CisgICAgICAgIGNhc2Ug
SGVicmV3OgorICAgICAgICBjYXNlIEhpcmFnYW5hOgorICAgICAgICBjYXNlIEhpcmFnYW5hSXJv
aGE6CisgICAgICAgIGNhc2UgS2F0YWthbmE6CisgICAgICAgIGNhc2UgS2F0YWthbmFJcm9oYToK
KyAgICAgICAgY2FzZSBMRGVjaW1hbDoKKyAgICAgICAgY2FzZSBMb3dlckFscGhhOgorICAgICAg
ICBjYXNlIExvd2VyR3JlZWs6CisgICAgICAgIGNhc2UgTG93ZXJMYXRpbjoKKyAgICAgICAgY2Fz
ZSBMb3dlclJvbWFuOgorICAgICAgICBjYXNlIFVwcGVyQWxwaGE6CisgICAgICAgIGNhc2UgVXBw
ZXJMYXRpbjoKKyAgICAgICAgY2FzZSBVcHBlclJvbWFuOgogICAgICAgICAgICAgaWYgKG1fdGV4
dC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKICAgICAgICAg
ICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBzdHlsZSgpLT5mb250KCk7CkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDUyMzg0KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTEwNiw3ICsxMTA2
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBFRW1wdHlDZWxsIGluaXRpYWxFbXB0eUNlbGxzKCkg
eyByZXR1cm4gU0hPVzsgfQogICAgIHN0YXRpYyBFRmxvYXQgaW5pdGlhbEZsb2F0aW5nKCkgeyBy
ZXR1cm4gRk5PTkU7IH0KICAgICBzdGF0aWMgRUxpc3RTdHlsZVBvc2l0aW9uIGluaXRpYWxMaXN0
U3R5bGVQb3NpdGlvbigpIHsgcmV0dXJuIE9VVFNJREU7IH0KLSAgICBzdGF0aWMgRUxpc3RTdHls
ZVR5cGUgaW5pdGlhbExpc3RTdHlsZVR5cGUoKSB7IHJldHVybiBESVNDOyB9CisgICAgc3RhdGlj
IEVMaXN0U3R5bGVUeXBlIGluaXRpYWxMaXN0U3R5bGVUeXBlKCkgeyByZXR1cm4gRGlzYzsgfQog
ICAgIHN0YXRpYyBFT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE9WSVNJQkxF
OyB9CiAgICAgc3RhdGljIEVPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1cm4gT1ZJ
U0lCTEU7IH0KICAgICBzdGF0aWMgRVBhZ2VCcmVhayBpbml0aWFsUGFnZUJyZWFrKCkgeyByZXR1
cm4gUEJBVVRPOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgJKHJldmlzaW9uIDUyMzg0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDExICsyMDQs
MTEgQEAgZW51bSBFUmVzaXplIHsKIH07CiAKIGVudW0gRUxpc3RTdHlsZVR5cGUgewotICAgICBE
SVNDLCBDSVJDTEUsIFNRVUFSRSwgTERFQ0lNQUwsIERFQ0lNQUxfTEVBRElOR19aRVJPLAotICAg
ICBMT1dFUl9ST01BTiwgVVBQRVJfUk9NQU4sIExPV0VSX0dSRUVLLAotICAgICBMT1dFUl9BTFBI
QSwgTE9XRVJfTEFUSU4sIFVQUEVSX0FMUEhBLCBVUFBFUl9MQVRJTiwKLSAgICAgSEVCUkVXLCBB
Uk1FTklBTiwgR0VPUkdJQU4sIENKS19JREVPR1JBUEhJQywKLSAgICAgSElSQUdBTkEsIEtBVEFL
QU5BLCBISVJBR0FOQV9JUk9IQSwgS0FUQUtBTkFfSVJPSEEsIExOT05FCisgICAgIERpc2MsIENp
cmNsZSwgU3F1YXJlLCBMRGVjaW1hbCwgRGVjaW1hbExlYWRpbmdaZXJvLAorICAgICBMb3dlclJv
bWFuLCBVcHBlclJvbWFuLCBMb3dlckdyZWVrLAorICAgICBMb3dlckFscGhhLCBMb3dlckxhdGlu
LCBVcHBlckFscGhhLCBVcHBlckxhdGluLAorICAgICBIZWJyZXcsIEFybWVuaWFuLCBHZW9yZ2lh
biwgQ0pLSWRlb2dyYXBoaWMsCisgICAgIEhpcmFnYW5hLCBLYXRha2FuYSwgSGlyYWdhbmFJcm9o
YSwgS2F0YWthbmFJcm9oYSwgTE5vbmUKIH07CiAKIGVudW0gU3R5bGVDb250ZW50VHlwZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45289</attachid>
            <date>2009-12-20 12:55:12 -0800</date>
            <delta_ts>2009-12-20 22:01:44 -0800</delta_ts>
            <desc>Patch with style-bot fixes (maybe we should do these fixes in a separate bug?)</desc>
            <filename>Bug32799_stylebotFixes.patch</filename>
            <type>text/plain</type>
            <size>29587</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjc5OQorCisgICAgICAgIFJl
bmFtZXMgZW51bXMgaW4gUmVuZGVyU3R5bGVDb25zdGFudHM6OkVMaXN0U3R5bGVUeXBlIHRvIGNv
bmZvcm0gdG8KKyAgICAgICAgdGhlIFdlYktpdCBDb2RlIFN0eWxlIEd1aWRlbGluZXMuCisKKyAg
ICAgICAgTm8gZnVuY3Rpb25hbGl0eSB3YXMgY2hhbmdlZC4gU28sIG5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVMaXN0U3R5bGVUeXBlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEl0ZW06OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaXN0TWFya2VyOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
aW5pdGlhbExpc3RTdHlsZVR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAwOS0xMi0yMCAgTWFy
dGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdtYWlsLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCShyZXZpc2lvbiA1MjM4NCkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtOTMwLDY5ICs5MzAsNjkgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTUwogICAgIDogbV90eXBlKENTU19J
REVOVCkKIHsKICAgICBzd2l0Y2ggKGUpIHsKLSAgICAgICAgY2FzZSBMTk9ORToKLSAgICAgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vbmU7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBESVNDOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlz
YzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNpcmNsZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIFNRVUFSRToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNx
dWFyZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIExERUNJTUFMOgotICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVjaW1hbDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIERFQ0lNQUxfTEVBRElOR19aRVJPOgotICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRGVjaW1hbExlYWRpbmdaZXJvOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgTE9XRVJfUk9NQU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0g
Q1NTVmFsdWVMb3dlclJvbWFuOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVVBQ
RVJfUk9NQU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlclJvbWFu
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTE9XRVJfR1JFRUs6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckdyZWVrOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgTE9XRVJfQUxQSEE6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVMb3dlckFscGhhOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TE9XRVJfTEFUSU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckxh
dGluOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVVBQRVJfQUxQSEE6Ci0gICAg
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckFscGhhOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgVVBQRVJfTEFUSU46Ci0gICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVVcHBlckxhdGluOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgSEVCUkVXOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGVicmV3Owot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQVJNRU5JQU46Ci0gICAgICAgICAgICBt
X3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVBcm1lbmlhbjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIEdFT1JHSUFOOgotICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
R2VvcmdpYW47Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDSktfSURFT0dSQVBI
SUM6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDamtJZGVvZ3JhcGhpYzsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEhJUkFHQU5BOgotICAgICAgICAgICAg
bV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlyYWdhbmE7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBLQVRBS0FOQToKLSAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZUthdGFrYW5hOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSElSQUdBTkFfSVJP
SEE6Ci0gICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIaXJhZ2FuYUlyb2hhOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgS0FUQUtBTkFfSVJPSEE6Ci0gICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXRha2FuYUlyb2hhOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBMTm9uZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXNjOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVEaXNjOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENpcmNsZToKKyAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2lyY2xlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNxdWFyZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU3F1YXJlOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExEZWNpbWFsOgorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEZWNpbWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERlY2ltYWxMZWFk
aW5nWmVybzoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGVjaW1hbExlYWRpbmda
ZXJvOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvd2VyUm9tYW46CisgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyUm9tYW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VXBwZXJSb21hbjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJSb21hbjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb3dlckdyZWVrOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVMb3dlckdyZWVrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvd2Vy
QWxwaGE6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyQWxwaGE7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTG93ZXJMYXRpbjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlTG93ZXJMYXRpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVcHBlckFscGhh
OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVVcHBlckFscGhhOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFVwcGVyTGF0aW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZVVwcGVyTGF0aW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSGVicmV3OgorICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIZWJyZXc7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXJtZW5pYW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVuaWFuOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdlb3JnaWFuOgorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVHZW9yZ2lhbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDSktJZGVvZ3Jh
cGhpYzoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ2prSWRlb2dyYXBoaWM7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSGlyYWdhbmE6CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZUhpcmFnYW5hOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEthdGFrYW5hOgor
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXRha2FuYTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVIaXJhZ2FuYUlyb2hhOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEthdGFrYW5hSXJvaGE6
CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUthdGFrYW5hSXJvaGE7CisgICAgICAg
IGJyZWFrOwogICAgIH0KIH0KIApAQCAtMTAwMCw3ICsxMDAwLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogewogICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkg
ewogICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVybiBMTk9ORTsK
KyAgICAgICAgICAgIHJldHVybiBMTm9uZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxFTGlzdFN0eWxlVHlwZT4obV92YWx1ZS5pZGVudCAtIENTU1Zh
bHVlRGlzYyk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAko
cmV2aXNpb24gNTIzODQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDggKzUxLDggQEAgdm9pZCBSZW5kZXJMaXN0SXRlbTo6c3R5
bGVEaWRDaGFuZ2UoU3R5bAogewogICAgIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShkaWZm
LCBvbGRTdHlsZSk7CiAKLSAgICBpZiAoc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpICE9IExOT05F
IHx8Ci0gICAgICAgIChzdHlsZSgpLT5saXN0U3R5bGVJbWFnZSgpICYmICFzdHlsZSgpLT5saXN0
U3R5bGVJbWFnZSgpLT5lcnJvck9jY3VycmVkKCkpKSB7CisgICAgaWYgKHN0eWxlKCktPmxpc3RT
dHlsZVR5cGUoKSAhPSBMTm9uZQorICAgICAgICB8fCAoc3R5bGUoKS0+bGlzdFN0eWxlSW1hZ2Uo
KSAmJiAhc3R5bGUoKS0+bGlzdFN0eWxlSW1hZ2UoKS0+ZXJyb3JPY2N1cnJlZCgpKSkgewogICAg
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZSgp
OwogICAgICAgICAvLyBUaGUgbWFya2VyIGFsd2F5cyBpbmhlcml0cyBmcm9tIHRoZSBsaXN0IGl0
ZW0sIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgaXQgbWlnaHQgZW5kCiAgICAgICAgIC8vIHVwIChlLmcu
LCBpbiBzb21lIGRlZXBseSBuZXN0ZWQgbGluZSBib3gpLiBTZWUgQ1NTMyBzcGVjLgpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9uIDUyMzg0KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0MCwxMzEgKzM0MCwxMzEgQEAgc3RhdGljIFN0cmluZyB0b0NKS0lkZW9ncmFwaGljKGludCBu
dW1iZQogU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cGUsIGludCB2YWx1
ZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgY2FzZSBMTk9ORToKLSAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICBjYXNlIExOb25lOgorICAgICAgICByZXR1cm4gIiI7CiAKLSAg
ICAgICAgLy8gV2UgdXNlIHRoZSBzYW1lIGNoYXJhY3RlcnMgZm9yIHRleHQgc2VjdXJpdHkuCi0g
ICAgICAgIC8vIFNlZSBSZW5kZXJUZXh0OjpzZXRJbnRlcm5hbFN0cmluZy4KLSAgICAgICAgY2Fz
ZSBDSVJDTEU6Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5nKCZ3aGl0ZUJ1bGxldCwgMSk7Ci0g
ICAgICAgIGNhc2UgRElTQzoKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoJmJ1bGxldCwgMSk7
Ci0gICAgICAgIGNhc2UgU1FVQVJFOgotICAgICAgICAgICAgLy8gVGhlIENTUyAyLjEgdGVzdCBz
dWl0ZSB1c2VzIFUrMjVFRSBCTEFDSyBNRURJVU0gU01BTEwgU1FVQVJFCi0gICAgICAgICAgICAv
LyBpbnN0ZWFkLCBidXQgSSB0aGluayB0aGlzIGxvb2tzIGJldHRlci4KLSAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoJmJsYWNrU3F1YXJlLCAxKTsKLQotICAgICAgICBjYXNlIExERUNJTUFMOgor
ICAgIC8vIFdlIHVzZSB0aGUgc2FtZSBjaGFyYWN0ZXJzIGZvciB0ZXh0IHNlY3VyaXR5LgorICAg
IC8vIFNlZSBSZW5kZXJUZXh0OjpzZXRJbnRlcm5hbFN0cmluZy4KKyAgICBjYXNlIENpcmNsZToK
KyAgICAgICAgcmV0dXJuIFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOworICAgIGNhc2UgRGlzYzoK
KyAgICAgICAgcmV0dXJuIFN0cmluZygmYnVsbGV0LCAxKTsKKyAgICBjYXNlIFNxdWFyZToKKyAg
ICAgICAgLy8gVGhlIENTUyAyLjEgdGVzdCBzdWl0ZSB1c2VzIFUrMjVFRSBCTEFDSyBNRURJVU0g
U01BTEwgU1FVQVJFCisgICAgICAgIC8vIGluc3RlYWQsIGJ1dCBJIHRoaW5rIHRoaXMgbG9va3Mg
YmV0dGVyLgorICAgICAgICByZXR1cm4gU3RyaW5nKCZibGFja1NxdWFyZSwgMSk7CisKKyAgICBj
YXNlIExEZWNpbWFsOgorICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIodmFsdWUpOworICAg
IGNhc2UgRGVjaW1hbExlYWRpbmdaZXJvOgorICAgICAgICBpZiAodmFsdWUgPCAtOSB8fCB2YWx1
ZSA+IDkpCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIodmFsdWUpOwotICAgICAg
ICBjYXNlIERFQ0lNQUxfTEVBRElOR19aRVJPOgotICAgICAgICAgICAgaWYgKHZhbHVlIDwgLTkg
fHwgdmFsdWUgPiA5KQotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6Om51bWJlcih2YWx1
ZSk7Ci0gICAgICAgICAgICBpZiAodmFsdWUgPCAwKQotICAgICAgICAgICAgICAgIHJldHVybiAi
LTAiICsgU3RyaW5nOjpudW1iZXIoLXZhbHVlKTsgLy8gLTAxIHRvIC0wOQotICAgICAgICAgICAg
cmV0dXJuICIwIiArIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsgLy8gMDAgdG8gMDkKLQotICAgICAg
ICBjYXNlIExPV0VSX0FMUEhBOgotICAgICAgICBjYXNlIExPV0VSX0xBVElOOiB7Ci0gICAgICAg
ICAgICBzdGF0aWMgY29uc3QgVUNoYXIgbG93ZXJMYXRpbkFscGhhYmV0WzI2XSA9IHsKLSAgICAg
ICAgICAgICAgICAnYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnLCAnZycsICdoJywgJ2knLCAn
aicsICdrJywgJ2wnLCAnbScsCi0gICAgICAgICAgICAgICAgJ24nLCAnbycsICdwJywgJ3EnLCAn
cicsICdzJywgJ3QnLCAndScsICd2JywgJ3cnLCAneCcsICd5JywgJ3onCi0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgbG93ZXJMYXRpbkFscGhh
YmV0LCAyNik7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBVUFBFUl9BTFBIQToKLSAgICAgICAg
Y2FzZSBVUFBFUl9MQVRJTjogewotICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHVwcGVy
TGF0aW5BbHBoYWJldFsyNl0gPSB7Ci0gICAgICAgICAgICAgICAgJ0EnLCAnQicsICdDJywgJ0Qn
LCAnRScsICdGJywgJ0cnLCAnSCcsICdJJywgJ0onLCAnSycsICdMJywgJ00nLAotICAgICAgICAg
ICAgICAgICdOJywgJ08nLCAnUCcsICdRJywgJ1InLCAnUycsICdUJywgJ1UnLCAnVicsICdXJywg
J1gnLCAnWScsICdaJwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVybiB0b0FscGhh
YmV0aWModmFsdWUsIHVwcGVyTGF0aW5BbHBoYWJldCwgMjYpOwotICAgICAgICB9Ci0gICAgICAg
IGNhc2UgTE9XRVJfR1JFRUs6IHsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsb3dl
ckdyZWVrQWxwaGFiZXRbMjRdID0gewotICAgICAgICAgICAgICAgIDB4MDNCMSwgMHgwM0IyLCAw
eDAzQjMsIDB4MDNCNCwgMHgwM0I1LCAweDAzQjYsIDB4MDNCNywgMHgwM0I4LAotICAgICAgICAg
ICAgICAgIDB4MDNCOSwgMHgwM0JBLCAweDAzQkIsIDB4MDNCQywgMHgwM0JELCAweDAzQkUsIDB4
MDNCRiwgMHgwM0MwLAotICAgICAgICAgICAgICAgIDB4MDNDMSwgMHgwM0MzLCAweDAzQzQsIDB4
MDNDNSwgMHgwM0M2LCAweDAzQzcsIDB4MDNDOCwgMHgwM0M5Ci0gICAgICAgICAgICB9OwotICAg
ICAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgbG93ZXJHcmVla0FscGhhYmV0LCAy
NCk7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIEhJUkFHQU5BOiB7Ci0gICAgICAgICAgICAv
LyBGSVhNRTogVGhpcyB0YWJsZSBjb21lcyBmcm9tIHRoZSBDU1MzIGRyYWZ0LCBhbmQgaXMgcHJv
YmFibHkKLSAgICAgICAgICAgIC8vIGluY29ycmVjdCwgZ2l2ZW4gdGhlIGNvbW1lbnRzIGluIHRo
YXQgZHJhZnQuCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgaGlyYWdhbmFBbHBoYWJl
dFs0OF0gPSB7Ci0gICAgICAgICAgICAgICAgMHgzMDQyLCAweDMwNDQsIDB4MzA0NiwgMHgzMDQ4
LCAweDMwNEEsIDB4MzA0QiwgMHgzMDRELCAweDMwNEYsCi0gICAgICAgICAgICAgICAgMHgzMDUx
LCAweDMwNTMsIDB4MzA1NSwgMHgzMDU3LCAweDMwNTksIDB4MzA1QiwgMHgzMDVELCAweDMwNUYs
Ci0gICAgICAgICAgICAgICAgMHgzMDYxLCAweDMwNjQsIDB4MzA2NiwgMHgzMDY4LCAweDMwNkEs
IDB4MzA2QiwgMHgzMDZDLCAweDMwNkQsCi0gICAgICAgICAgICAgICAgMHgzMDZFLCAweDMwNkYs
IDB4MzA3MiwgMHgzMDc1LCAweDMwNzgsIDB4MzA3QiwgMHgzMDdFLCAweDMwN0YsCi0gICAgICAg
ICAgICAgICAgMHgzMDgwLCAweDMwODEsIDB4MzA4MiwgMHgzMDg0LCAweDMwODYsIDB4MzA4OCwg
MHgzMDg5LCAweDMwOEEsCi0gICAgICAgICAgICAgICAgMHgzMDhCLCAweDMwOEMsIDB4MzA4RCwg
MHgzMDhGLCAweDMwOTAsIDB4MzA5MSwgMHgzMDkyLCAweDMwOTMKLSAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZhbHVlLCBoaXJhZ2FuYUFscGhhYmV0LCA0
OCk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBISVJBR0FOQV9JUk9IQTogewotICAgICAgICAg
ICAgLy8gRklYTUU6IFRoaXMgdGFibGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlz
IHByb2JhYmx5Ci0gICAgICAgICAgICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBp
biB0aGF0IGRyYWZ0LgotICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGhpcmFnYW5hSXJv
aGFBbHBoYWJldFs0N10gPSB7Ci0gICAgICAgICAgICAgICAgMHgzMDQ0LCAweDMwOEQsIDB4MzA2
RiwgMHgzMDZCLCAweDMwN0IsIDB4MzA3OCwgMHgzMDY4LCAweDMwNjEsCi0gICAgICAgICAgICAg
ICAgMHgzMDhBLCAweDMwNkMsIDB4MzA4QiwgMHgzMDkyLCAweDMwOEYsIDB4MzA0QiwgMHgzMDg4
LCAweDMwNUYsCi0gICAgICAgICAgICAgICAgMHgzMDhDLCAweDMwNUQsIDB4MzA2NCwgMHgzMDZE
LCAweDMwNkEsIDB4MzA4OSwgMHgzMDgwLCAweDMwNDYsCi0gICAgICAgICAgICAgICAgMHgzMDkw
LCAweDMwNkUsIDB4MzA0QSwgMHgzMDRGLCAweDMwODQsIDB4MzA3RSwgMHgzMDUxLCAweDMwNzUs
Ci0gICAgICAgICAgICAgICAgMHgzMDUzLCAweDMwNDgsIDB4MzA2NiwgMHgzMDQyLCAweDMwNTUs
IDB4MzA0RCwgMHgzMDg2LCAweDMwODEsCi0gICAgICAgICAgICAgICAgMHgzMDdGLCAweDMwNTcs
IDB4MzA5MSwgMHgzMDcyLCAweDMwODIsIDB4MzA1QiwgMHgzMDU5Ci0gICAgICAgICAgICB9Owot
ICAgICAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgaGlyYWdhbmFJcm9oYUFscGhh
YmV0LCA0Nyk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBLQVRBS0FOQTogewotICAgICAgICAg
ICAgLy8gRklYTUU6IFRoaXMgdGFibGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlz
IHByb2JhYmx5Ci0gICAgICAgICAgICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBp
biB0aGF0IGRyYWZ0LgotICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGthdGFrYW5hQWxw
aGFiZXRbNDhdID0gewotICAgICAgICAgICAgICAgIDB4MzBBMiwgMHgzMEE0LCAweDMwQTYsIDB4
MzBBOCwgMHgzMEFBLCAweDMwQUIsIDB4MzBBRCwgMHgzMEFGLAotICAgICAgICAgICAgICAgIDB4
MzBCMSwgMHgzMEIzLCAweDMwQjUsIDB4MzBCNywgMHgzMEI5LCAweDMwQkIsIDB4MzBCRCwgMHgz
MEJGLAotICAgICAgICAgICAgICAgIDB4MzBDMSwgMHgzMEM0LCAweDMwQzYsIDB4MzBDOCwgMHgz
MENBLCAweDMwQ0IsIDB4MzBDQywgMHgzMENELAotICAgICAgICAgICAgICAgIDB4MzBDRSwgMHgz
MENGLCAweDMwRDIsIDB4MzBENSwgMHgzMEQ4LCAweDMwREIsIDB4MzBERSwgMHgzMERGLAotICAg
ICAgICAgICAgICAgIDB4MzBFMCwgMHgzMEUxLCAweDMwRTIsIDB4MzBFNCwgMHgzMEU2LCAweDMw
RTgsIDB4MzBFOSwgMHgzMEVBLAotICAgICAgICAgICAgICAgIDB4MzBFQiwgMHgzMEVDLCAweDMw
RUQsIDB4MzBFRiwgMHgzMEYwLCAweDMwRjEsIDB4MzBGMiwgMHgzMEYzCi0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwga2F0YWthbmFBbHBoYWJl
dCwgNDgpOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgS0FUQUtBTkFfSVJPSEE6IHsKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRhYmxlIGNvbWVzIGZyb20gdGhlIENTUzMgZHJhZnQsIGFu
ZCBpcyBwcm9iYWJseQotICAgICAgICAgICAgLy8gaW5jb3JyZWN0LCBnaXZlbiB0aGUgY29tbWVu
dHMgaW4gdGhhdCBkcmFmdC4KLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBrYXRha2Fu
YUlyb2hhQWxwaGFiZXRbNDddID0gewotICAgICAgICAgICAgICAgIDB4MzBBNCwgMHgzMEVELCAw
eDMwQ0YsIDB4MzBDQiwgMHgzMERCLCAweDMwRDgsIDB4MzBDOCwgMHgzMEMxLAotICAgICAgICAg
ICAgICAgIDB4MzBFQSwgMHgzMENDLCAweDMwRUIsIDB4MzBGMiwgMHgzMEVGLCAweDMwQUIsIDB4
MzBFOCwgMHgzMEJGLAotICAgICAgICAgICAgICAgIDB4MzBFQywgMHgzMEJELCAweDMwQzQsIDB4
MzBDRCwgMHgzMENBLCAweDMwRTksIDB4MzBFMCwgMHgzMEE2LAotICAgICAgICAgICAgICAgIDB4
MzBGMCwgMHgzMENFLCAweDMwQUEsIDB4MzBBRiwgMHgzMEU0LCAweDMwREUsIDB4MzBCMSwgMHgz
MEQ1LAotICAgICAgICAgICAgICAgIDB4MzBCMywgMHgzMEE4LCAweDMwQzYsIDB4MzBBMiwgMHgz
MEI1LCAweDMwQUQsIDB4MzBFNiwgMHgzMEUxLAotICAgICAgICAgICAgICAgIDB4MzBERiwgMHgz
MEI3LCAweDMwRjEsIDB4MzBEMiwgMHgzMEUyLCAweDMwQkIsIDB4MzBCOQotICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGthdGFrYW5hSXJvaGFB
bHBoYWJldCwgNDcpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBDSktfSURFT0dSQVBISUM6
IHsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciB0cmFkaXRpb25hbENoaW5lc2VJbmZv
cm1hbFRhYmxlWzE2XSA9IHsKLSAgICAgICAgICAgICAgICAweDg0MkMsIDB4NTEwNCwgMHg1MTQ2
LAotICAgICAgICAgICAgICAgIDB4NTM0MSwgMHg3NjdFLCAweDUzNDMsCi0gICAgICAgICAgICAg
ICAgMHg5NkY2LCAweDRFMDAsIDB4NEU4QywgMHg0RTA5LCAweDU2REIsCi0gICAgICAgICAgICAg
ICAgMHg0RTk0LCAweDUxNkQsIDB4NEUwMywgMHg1MTZCLCAweDRFNUQKLSAgICAgICAgICAgIH07
Ci0gICAgICAgICAgICByZXR1cm4gdG9DSktJZGVvZ3JhcGhpYyh2YWx1ZSwgdHJhZGl0aW9uYWxD
aGluZXNlSW5mb3JtYWxUYWJsZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIExPV0VSX1JP
TUFOOgotICAgICAgICAgICAgcmV0dXJuIHRvUm9tYW4odmFsdWUsIGZhbHNlKTsKLSAgICAgICAg
Y2FzZSBVUFBFUl9ST01BTjoKLSAgICAgICAgICAgIHJldHVybiB0b1JvbWFuKHZhbHVlLCB0cnVl
KTsKLQotICAgICAgICBjYXNlIEFSTUVOSUFOOgotICAgICAgICAgICAgLy8gQ1NTMyBzYXlzICJh
cm1lbmlhbiIgbWVhbnMgImxvd2VyLWFybWVuaWFuIi4KLSAgICAgICAgICAgIC8vIEJ1dCB0aGUg
Q1NTMi4xIHRlc3Qgc3VpdGUgY29udGFpbnMgdXBwZXJjYXNlIHRlc3QgcmVzdWx0cyBmb3IgImFy
bWVuaWFuIiwKLSAgICAgICAgICAgIC8vIHNvIHdlJ2xsIG1hdGNoIHRoZSB0ZXN0IHN1aXRlLgot
ICAgICAgICAgICAgcmV0dXJuIHRvQXJtZW5pYW4odmFsdWUsIHRydWUpOwotICAgICAgICBjYXNl
IEdFT1JHSUFOOgotICAgICAgICAgICAgcmV0dXJuIHRvR2VvcmdpYW4odmFsdWUpOwotICAgICAg
ICBjYXNlIEhFQlJFVzoKLSAgICAgICAgICAgIHJldHVybiB0b0hlYnJldyh2YWx1ZSk7CisgICAg
ICAgIGlmICh2YWx1ZSA8IDApCisgICAgICAgICAgICByZXR1cm4gIi0wIiArIFN0cmluZzo6bnVt
YmVyKC12YWx1ZSk7IC8vIC0wMSB0byAtMDkKKyAgICAgICAgcmV0dXJuICIwIiArIFN0cmluZzo6
bnVtYmVyKHZhbHVlKTsgLy8gMDAgdG8gMDkKKworICAgIGNhc2UgTG93ZXJBbHBoYToKKyAgICBj
YXNlIExvd2VyTGF0aW46IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGxvd2VyTGF0aW5B
bHBoYWJldFsyNl0gPSB7CisgICAgICAgICAgICAnYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2Yn
LCAnZycsICdoJywgJ2knLCAnaicsICdrJywgJ2wnLCAnbScsCisgICAgICAgICAgICAnbicsICdv
JywgJ3AnLCAncScsICdyJywgJ3MnLCAndCcsICd1JywgJ3YnLCAndycsICd4JywgJ3knLCAneicK
KyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgbG93ZXJMYXRp
bkFscGhhYmV0LCAyNik7CisgICAgfQorICAgIGNhc2UgVXBwZXJBbHBoYToKKyAgICBjYXNlIFVw
cGVyTGF0aW46IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHVwcGVyTGF0aW5BbHBoYWJl
dFsyNl0gPSB7CisgICAgICAgICAgICAnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLCAnRycs
ICdIJywgJ0knLCAnSicsICdLJywgJ0wnLCAnTScsCisgICAgICAgICAgICAnTicsICdPJywgJ1An
LCAnUScsICdSJywgJ1MnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWicKKyAgICAg
ICAgfTsKKyAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgdXBwZXJMYXRpbkFscGhh
YmV0LCAyNik7CisgICAgfQorICAgIGNhc2UgTG93ZXJHcmVlazogeworICAgICAgICBzdGF0aWMg
Y29uc3QgVUNoYXIgbG93ZXJHcmVla0FscGhhYmV0WzI0XSA9IHsKKyAgICAgICAgICAgIDB4MDNC
MSwgMHgwM0IyLCAweDAzQjMsIDB4MDNCNCwgMHgwM0I1LCAweDAzQjYsIDB4MDNCNywgMHgwM0I4
LAorICAgICAgICAgICAgMHgwM0I5LCAweDAzQkEsIDB4MDNCQiwgMHgwM0JDLCAweDAzQkQsIDB4
MDNCRSwgMHgwM0JGLCAweDAzQzAsCisgICAgICAgICAgICAweDAzQzEsIDB4MDNDMywgMHgwM0M0
LCAweDAzQzUsIDB4MDNDNiwgMHgwM0M3LCAweDAzQzgsIDB4MDNDOQorICAgICAgICB9OworICAg
ICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZhbHVlLCBsb3dlckdyZWVrQWxwaGFiZXQsIDI0KTsK
KyAgICB9CisKKyAgICBjYXNlIEhpcmFnYW5hOiB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRh
YmxlIGNvbWVzIGZyb20gdGhlIENTUzMgZHJhZnQsIGFuZCBpcyBwcm9iYWJseQorICAgICAgICAv
LyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0aGF0IGRyYWZ0LgorICAgICAgICBz
dGF0aWMgY29uc3QgVUNoYXIgaGlyYWdhbmFBbHBoYWJldFs0OF0gPSB7CisgICAgICAgICAgICAw
eDMwNDIsIDB4MzA0NCwgMHgzMDQ2LCAweDMwNDgsIDB4MzA0QSwgMHgzMDRCLCAweDMwNEQsIDB4
MzA0RiwKKyAgICAgICAgICAgIDB4MzA1MSwgMHgzMDUzLCAweDMwNTUsIDB4MzA1NywgMHgzMDU5
LCAweDMwNUIsIDB4MzA1RCwgMHgzMDVGLAorICAgICAgICAgICAgMHgzMDYxLCAweDMwNjQsIDB4
MzA2NiwgMHgzMDY4LCAweDMwNkEsIDB4MzA2QiwgMHgzMDZDLCAweDMwNkQsCisgICAgICAgICAg
ICAweDMwNkUsIDB4MzA2RiwgMHgzMDcyLCAweDMwNzUsIDB4MzA3OCwgMHgzMDdCLCAweDMwN0Us
IDB4MzA3RiwKKyAgICAgICAgICAgIDB4MzA4MCwgMHgzMDgxLCAweDMwODIsIDB4MzA4NCwgMHgz
MDg2LCAweDMwODgsIDB4MzA4OSwgMHgzMDhBLAorICAgICAgICAgICAgMHgzMDhCLCAweDMwOEMs
IDB4MzA4RCwgMHgzMDhGLCAweDMwOTAsIDB4MzA5MSwgMHgzMDkyLCAweDMwOTMKKyAgICAgICAg
fTsKKyAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgaGlyYWdhbmFBbHBoYWJldCwg
NDgpOworICAgIH0KKyAgICBjYXNlIEhpcmFnYW5hSXJvaGE6IHsKKyAgICAgICAgLy8gRklYTUU6
IFRoaXMgdGFibGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlzIHByb2JhYmx5Cisg
ICAgICAgIC8vIGluY29ycmVjdCwgZ2l2ZW4gdGhlIGNvbW1lbnRzIGluIHRoYXQgZHJhZnQuCisg
ICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBoaXJhZ2FuYUlyb2hhQWxwaGFiZXRbNDddID0gewor
ICAgICAgICAgICAgMHgzMDQ0LCAweDMwOEQsIDB4MzA2RiwgMHgzMDZCLCAweDMwN0IsIDB4MzA3
OCwgMHgzMDY4LCAweDMwNjEsCisgICAgICAgICAgICAweDMwOEEsIDB4MzA2QywgMHgzMDhCLCAw
eDMwOTIsIDB4MzA4RiwgMHgzMDRCLCAweDMwODgsIDB4MzA1RiwKKyAgICAgICAgICAgIDB4MzA4
QywgMHgzMDVELCAweDMwNjQsIDB4MzA2RCwgMHgzMDZBLCAweDMwODksIDB4MzA4MCwgMHgzMDQ2
LAorICAgICAgICAgICAgMHgzMDkwLCAweDMwNkUsIDB4MzA0QSwgMHgzMDRGLCAweDMwODQsIDB4
MzA3RSwgMHgzMDUxLCAweDMwNzUsCisgICAgICAgICAgICAweDMwNTMsIDB4MzA0OCwgMHgzMDY2
LCAweDMwNDIsIDB4MzA1NSwgMHgzMDRELCAweDMwODYsIDB4MzA4MSwKKyAgICAgICAgICAgIDB4
MzA3RiwgMHgzMDU3LCAweDMwOTEsIDB4MzA3MiwgMHgzMDgyLCAweDMwNUIsIDB4MzA1OQorICAg
ICAgICB9OworICAgICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZhbHVlLCBoaXJhZ2FuYUlyb2hh
QWxwaGFiZXQsIDQ3KTsKKyAgICB9CisgICAgY2FzZSBLYXRha2FuYTogeworICAgICAgICAvLyBG
SVhNRTogVGhpcyB0YWJsZSBjb21lcyBmcm9tIHRoZSBDU1MzIGRyYWZ0LCBhbmQgaXMgcHJvYmFi
bHkKKyAgICAgICAgLy8gaW5jb3JyZWN0LCBnaXZlbiB0aGUgY29tbWVudHMgaW4gdGhhdCBkcmFm
dC4KKyAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGthdGFrYW5hQWxwaGFiZXRbNDhdID0gewor
ICAgICAgICAgICAgMHgzMEEyLCAweDMwQTQsIDB4MzBBNiwgMHgzMEE4LCAweDMwQUEsIDB4MzBB
QiwgMHgzMEFELCAweDMwQUYsCisgICAgICAgICAgICAweDMwQjEsIDB4MzBCMywgMHgzMEI1LCAw
eDMwQjcsIDB4MzBCOSwgMHgzMEJCLCAweDMwQkQsIDB4MzBCRiwKKyAgICAgICAgICAgIDB4MzBD
MSwgMHgzMEM0LCAweDMwQzYsIDB4MzBDOCwgMHgzMENBLCAweDMwQ0IsIDB4MzBDQywgMHgzMENE
LAorICAgICAgICAgICAgMHgzMENFLCAweDMwQ0YsIDB4MzBEMiwgMHgzMEQ1LCAweDMwRDgsIDB4
MzBEQiwgMHgzMERFLCAweDMwREYsCisgICAgICAgICAgICAweDMwRTAsIDB4MzBFMSwgMHgzMEUy
LCAweDMwRTQsIDB4MzBFNiwgMHgzMEU4LCAweDMwRTksIDB4MzBFQSwKKyAgICAgICAgICAgIDB4
MzBFQiwgMHgzMEVDLCAweDMwRUQsIDB4MzBFRiwgMHgzMEYwLCAweDMwRjEsIDB4MzBGMiwgMHgz
MEYzCisgICAgICAgIH07CisgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGthdGFr
YW5hQWxwaGFiZXQsIDQ4KTsKKyAgICB9CisgICAgY2FzZSBLYXRha2FuYUlyb2hhOiB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIHRhYmxlIGNvbWVzIGZyb20gdGhlIENTUzMgZHJhZnQsIGFuZCBp
cyBwcm9iYWJseQorICAgICAgICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0
aGF0IGRyYWZ0LgorICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIga2F0YWthbmFJcm9oYUFscGhh
YmV0WzQ3XSA9IHsKKyAgICAgICAgICAgIDB4MzBBNCwgMHgzMEVELCAweDMwQ0YsIDB4MzBDQiwg
MHgzMERCLCAweDMwRDgsIDB4MzBDOCwgMHgzMEMxLAorICAgICAgICAgICAgMHgzMEVBLCAweDMw
Q0MsIDB4MzBFQiwgMHgzMEYyLCAweDMwRUYsIDB4MzBBQiwgMHgzMEU4LCAweDMwQkYsCisgICAg
ICAgICAgICAweDMwRUMsIDB4MzBCRCwgMHgzMEM0LCAweDMwQ0QsIDB4MzBDQSwgMHgzMEU5LCAw
eDMwRTAsIDB4MzBBNiwKKyAgICAgICAgICAgIDB4MzBGMCwgMHgzMENFLCAweDMwQUEsIDB4MzBB
RiwgMHgzMEU0LCAweDMwREUsIDB4MzBCMSwgMHgzMEQ1LAorICAgICAgICAgICAgMHgzMEIzLCAw
eDMwQTgsIDB4MzBDNiwgMHgzMEEyLCAweDMwQjUsIDB4MzBBRCwgMHgzMEU2LCAweDMwRTEsCisg
ICAgICAgICAgICAweDMwREYsIDB4MzBCNywgMHgzMEYxLCAweDMwRDIsIDB4MzBFMiwgMHgzMEJC
LCAweDMwQjkKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwg
a2F0YWthbmFJcm9oYUFscGhhYmV0LCA0Nyk7CisgICAgfQorCisgICAgY2FzZSBDSktJZGVvZ3Jh
cGhpYzogeworICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgdHJhZGl0aW9uYWxDaGluZXNlSW5m
b3JtYWxUYWJsZVsxNl0gPSB7CisgICAgICAgICAgICAweDg0MkMsIDB4NTEwNCwgMHg1MTQ2LAor
ICAgICAgICAgICAgMHg1MzQxLCAweDc2N0UsIDB4NTM0MywKKyAgICAgICAgICAgIDB4OTZGNiwg
MHg0RTAwLCAweDRFOEMsIDB4NEUwOSwgMHg1NkRCLAorICAgICAgICAgICAgMHg0RTk0LCAweDUx
NkQsIDB4NEUwMywgMHg1MTZCLCAweDRFNUQKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHRv
Q0pLSWRlb2dyYXBoaWModmFsdWUsIHRyYWRpdGlvbmFsQ2hpbmVzZUluZm9ybWFsVGFibGUpOwor
ICAgIH0KKworICAgIGNhc2UgTG93ZXJSb21hbjoKKyAgICAgICAgcmV0dXJuIHRvUm9tYW4odmFs
dWUsIGZhbHNlKTsKKyAgICBjYXNlIFVwcGVyUm9tYW46CisgICAgICAgIHJldHVybiB0b1JvbWFu
KHZhbHVlLCB0cnVlKTsKKworICAgIGNhc2UgQXJtZW5pYW46CisgICAgICAgIC8vIENTUzMgc2F5
cyAiYXJtZW5pYW4iIG1lYW5zICJsb3dlci1hcm1lbmlhbiIuCisgICAgICAgIC8vIEJ1dCB0aGUg
Q1NTMi4xIHRlc3Qgc3VpdGUgY29udGFpbnMgdXBwZXJjYXNlIHRlc3QgcmVzdWx0cyBmb3IgImFy
bWVuaWFuIiwKKyAgICAgICAgLy8gc28gd2UnbGwgbWF0Y2ggdGhlIHRlc3Qgc3VpdGUuCisgICAg
ICAgIHJldHVybiB0b0FybWVuaWFuKHZhbHVlLCB0cnVlKTsKKyAgICBjYXNlIEdlb3JnaWFuOgor
ICAgICAgICByZXR1cm4gdG9HZW9yZ2lhbih2YWx1ZSk7CisgICAgY2FzZSBIZWJyZXc6CisgICAg
ICAgIHJldHVybiB0b0hlYnJldyh2YWx1ZSk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC01NzEsMzYgKzU3MSwzNiBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnBhaW50
KFBhaW50SW5mbyYgCiAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGNvbG9yLCBzdHlsZSgpLT5j
b2xvclNwYWNlKCkpOwogCiAgICAgc3dpdGNoIChzdHlsZSgpLT5saXN0U3R5bGVUeXBlKCkpIHsK
LSAgICAgICAgY2FzZSBESVNDOgotICAgICAgICAgICAgY29udGV4dC0+ZHJhd0VsbGlwc2UobWFy
a2VyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBDSVJDTEU6Ci0gICAgICAg
ICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6OnRyYW5zcGFyZW50LCBEZXZpY2VDb2xv
clNwYWNlKTsKLSAgICAgICAgICAgIGNvbnRleHQtPmRyYXdFbGxpcHNlKG1hcmtlcik7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgU1FVQVJFOgotICAgICAgICAgICAgY29udGV4
dC0+ZHJhd1JlY3QobWFya2VyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBM
Tk9ORToKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBBUk1FTklBTjoKLSAgICAg
ICAgY2FzZSBDSktfSURFT0dSQVBISUM6Ci0gICAgICAgIGNhc2UgREVDSU1BTF9MRUFESU5HX1pF
Uk86Ci0gICAgICAgIGNhc2UgR0VPUkdJQU46Ci0gICAgICAgIGNhc2UgSEVCUkVXOgotICAgICAg
ICBjYXNlIEhJUkFHQU5BOgotICAgICAgICBjYXNlIEhJUkFHQU5BX0lST0hBOgotICAgICAgICBj
YXNlIEtBVEFLQU5BOgotICAgICAgICBjYXNlIEtBVEFLQU5BX0lST0hBOgotICAgICAgICBjYXNl
IExERUNJTUFMOgotICAgICAgICBjYXNlIExPV0VSX0FMUEhBOgotICAgICAgICBjYXNlIExPV0VS
X0dSRUVLOgotICAgICAgICBjYXNlIExPV0VSX0xBVElOOgotICAgICAgICBjYXNlIExPV0VSX1JP
TUFOOgotICAgICAgICBjYXNlIFVQUEVSX0FMUEhBOgotICAgICAgICBjYXNlIFVQUEVSX0xBVElO
OgotICAgICAgICBjYXNlIFVQUEVSX1JPTUFOOgotICAgICAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBEaXNjOgorICAgICAgICBjb250ZXh0LT5kcmF3RWxsaXBzZShtYXJrZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBDaXJjbGU6CisgICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihD
b2xvcjo6dHJhbnNwYXJlbnQsIERldmljZUNvbG9yU3BhY2UpOworICAgICAgICBjb250ZXh0LT5k
cmF3RWxsaXBzZShtYXJrZXIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBTcXVhcmU6Cisg
ICAgICAgIGNvbnRleHQtPmRyYXdSZWN0KG1hcmtlcik7CisgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIExOb25lOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBBcm1lbmlhbjoKKyAgICBjYXNl
IENKS0lkZW9ncmFwaGljOgorICAgIGNhc2UgRGVjaW1hbExlYWRpbmdaZXJvOgorICAgIGNhc2Ug
R2VvcmdpYW46CisgICAgY2FzZSBIZWJyZXc6CisgICAgY2FzZSBIaXJhZ2FuYToKKyAgICBjYXNl
IEhpcmFnYW5hSXJvaGE6CisgICAgY2FzZSBLYXRha2FuYToKKyAgICBjYXNlIEthdGFrYW5hSXJv
aGE6CisgICAgY2FzZSBMRGVjaW1hbDoKKyAgICBjYXNlIExvd2VyQWxwaGE6CisgICAgY2FzZSBM
b3dlckdyZWVrOgorICAgIGNhc2UgTG93ZXJMYXRpbjoKKyAgICBjYXNlIExvd2VyUm9tYW46Cisg
ICAgY2FzZSBVcHBlckFscGhhOgorICAgIGNhc2UgVXBwZXJMYXRpbjoKKyAgICBjYXNlIFVwcGVy
Um9tYW46CisgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAobV90ZXh0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjkzLDQxICs2OTMsNDEgQEAgdm9pZCBSZW5kZXJMaXN0TWFy
a2VyOjpjYWxjUHJlZldpZHRocygpCiAgICAgaW50IHdpZHRoID0gMDsKICAgICBFTGlzdFN0eWxl
VHlwZSB0eXBlID0gc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpOwogICAgIHN3aXRjaCAodHlwZSkg
ewotICAgICAgICBjYXNlIExOT05FOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q0lSQ0xFOgotICAgICAgICBjYXNlIERJU0M6Ci0gICAgICAgIGNhc2UgU1FVQVJFOgotICAgICAg
ICAgICAgbV90ZXh0ID0gbGlzdE1hcmtlclRleHQodHlwZSwgMCk7IC8vIHZhbHVlIGlzIGlnbm9y
ZWQgZm9yIHRoZXNlIHR5cGVzCi0gICAgICAgICAgICB3aWR0aCA9IChmb250LmFzY2VudCgpICog
MiAvIDMgKyAxKSAvIDIgKyAyOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQVJN
RU5JQU46Ci0gICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSElDOgotICAgICAgICBjYXNlIERFQ0lN
QUxfTEVBRElOR19aRVJPOgotICAgICAgICBjYXNlIEdFT1JHSUFOOgotICAgICAgICBjYXNlIEhF
QlJFVzoKLSAgICAgICAgY2FzZSBISVJBR0FOQToKLSAgICAgICAgY2FzZSBISVJBR0FOQV9JUk9I
QToKLSAgICAgICAgY2FzZSBLQVRBS0FOQToKLSAgICAgICAgY2FzZSBLQVRBS0FOQV9JUk9IQToK
LSAgICAgICAgY2FzZSBMREVDSU1BTDoKLSAgICAgICAgY2FzZSBMT1dFUl9BTFBIQToKLSAgICAg
ICAgY2FzZSBMT1dFUl9HUkVFSzoKLSAgICAgICAgY2FzZSBMT1dFUl9MQVRJTjoKLSAgICAgICAg
Y2FzZSBMT1dFUl9ST01BTjoKLSAgICAgICAgY2FzZSBVUFBFUl9BTFBIQToKLSAgICAgICAgY2Fz
ZSBVUFBFUl9MQVRJTjoKLSAgICAgICAgY2FzZSBVUFBFUl9ST01BTjoKLSAgICAgICAgICAgIG1f
dGV4dCA9IGxpc3RNYXJrZXJUZXh0KHR5cGUsIG1fbGlzdEl0ZW0tPnZhbHVlKCkpOwotICAgICAg
ICAgICAgaWYgKG1fdGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgd2lkdGggPSAwOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaW50IGl0ZW1XaWR0aCA9IGZvbnQu
d2lkdGgobV90ZXh0KTsKLSAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciBwZXJpb2RTcGFjZVsy
XSA9IHsgJy4nLCAnICcgfTsKLSAgICAgICAgICAgICAgICBpbnQgcGVyaW9kU3BhY2VXaWR0aCA9
IGZvbnQud2lkdGgoVGV4dFJ1bihwZXJpb2RTcGFjZSwgMikpOwotICAgICAgICAgICAgICAgIHdp
ZHRoID0gaXRlbVdpZHRoICsgcGVyaW9kU3BhY2VXaWR0aDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTE5vbmU6CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q2lyY2xlOgorICAgIGNhc2UgRGlzYzoKKyAgICBjYXNlIFNxdWFyZToKKyAgICAgICAgbV90ZXh0
ID0gbGlzdE1hcmtlclRleHQodHlwZSwgMCk7IC8vIHZhbHVlIGlzIGlnbm9yZWQgZm9yIHRoZXNl
IHR5cGVzCisgICAgICAgIHdpZHRoID0gKGZvbnQuYXNjZW50KCkgKiAyIC8gMyArIDEpIC8gMiAr
IDI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXJtZW5pYW46CisgICAgY2FzZSBDSktJZGVv
Z3JhcGhpYzoKKyAgICBjYXNlIERlY2ltYWxMZWFkaW5nWmVybzoKKyAgICBjYXNlIEdlb3JnaWFu
OgorICAgIGNhc2UgSGVicmV3OgorICAgIGNhc2UgSGlyYWdhbmE6CisgICAgY2FzZSBIaXJhZ2Fu
YUlyb2hhOgorICAgIGNhc2UgS2F0YWthbmE6CisgICAgY2FzZSBLYXRha2FuYUlyb2hhOgorICAg
IGNhc2UgTERlY2ltYWw6CisgICAgY2FzZSBMb3dlckFscGhhOgorICAgIGNhc2UgTG93ZXJHcmVl
azoKKyAgICBjYXNlIExvd2VyTGF0aW46CisgICAgY2FzZSBMb3dlclJvbWFuOgorICAgIGNhc2Ug
VXBwZXJBbHBoYToKKyAgICBjYXNlIFVwcGVyTGF0aW46CisgICAgY2FzZSBVcHBlclJvbWFuOgor
ICAgICAgICBtX3RleHQgPSBsaXN0TWFya2VyVGV4dCh0eXBlLCBtX2xpc3RJdGVtLT52YWx1ZSgp
KTsKKyAgICAgICAgaWYgKG1fdGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICB3aWR0aCA9IDA7
CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGl0ZW1XaWR0aCA9IGZvbnQud2lkdGgo
bV90ZXh0KTsKKyAgICAgICAgICAgIGNvbnN0IFVDaGFyIHBlcmlvZFNwYWNlWzJdID0geyAnLics
ICcgJyB9OworICAgICAgICAgICAgaW50IHBlcmlvZFNwYWNlV2lkdGggPSBmb250LndpZHRoKFRl
eHRSdW4ocGVyaW9kU3BhY2UsIDIpKTsKKyAgICAgICAgICAgIHdpZHRoID0gaXRlbVdpZHRoICsg
cGVyaW9kU3BhY2VXaWR0aDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKICAgICB9CiAKICAg
ICBtX21pblByZWZXaWR0aCA9IHdpZHRoOwpAQCAtNzUyLDkgKzc1Miw5IEBAIHZvaWQgUmVuZGVy
TGlzdE1hcmtlcjo6dXBkYXRlTWFyZ2lucygpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbWFyZ2luTGVmdCA9IGNNYXJrZXJQYWRkaW5nOwogICAgICAgICB9IGVsc2Ugc3dpdGNo
IChzdHlsZSgpLT5saXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgICAgIGNhc2UgRElTQzoKLSAg
ICAgICAgICAgIGNhc2UgQ0lSQ0xFOgotICAgICAgICAgICAgY2FzZSBTUVVBUkU6CisgICAgICAg
ICAgICBjYXNlIERpc2M6CisgICAgICAgICAgICBjYXNlIENpcmNsZToKKyAgICAgICAgICAgIGNh
c2UgU3F1YXJlOgogICAgICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBM
VFIpIHsKICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdCA9IC0xOwogICAgICAgICAgICAg
ICAgICAgICBtYXJnaW5SaWdodCA9IGZvbnQuYXNjZW50KCkgLSBtaW5QcmVmV2lkdGgoKSArIDE7
CkBAIC03NzMsMTUgKzc3MywxNSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZU1hcmdp
bnMoKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZv
bnQuYXNjZW50KCkgKiAyIC8gMzsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlKCktPmxp
c3RTdHlsZVR5cGUoKSkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIERJU0M6Ci0gICAgICAg
ICAgICAgICAgICAgIGNhc2UgQ0lSQ0xFOgotICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVUFS
RToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQgPSAtb2Zmc2V0IC0gY01hcmtl
clBhZGRpbmcgLSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIGNhc2UgTE5PTkU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdp
bkxlZnQgPSBtX3RleHQuaXNFbXB0eSgpID8gMCA6IC1taW5QcmVmV2lkdGgoKSAtIG9mZnNldCAv
IDI7CisgICAgICAgICAgICAgICAgY2FzZSBEaXNjOgorICAgICAgICAgICAgICAgIGNhc2UgQ2ly
Y2xlOgorICAgICAgICAgICAgICAgIGNhc2UgU3F1YXJlOgorICAgICAgICAgICAgICAgICAgICBt
YXJnaW5MZWZ0ID0gLW9mZnNldCAtIGNNYXJrZXJQYWRkaW5nIC0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBMTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgbWFyZ2luTGVmdCA9IG1fdGV4dC5pc0VtcHR5KCkgPyAwIDogLW1pblByZWZXaWR0aCgpIC0g
b2Zmc2V0IC8gMjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0g
ZWxzZSB7CkBAIC03OTAsMTUgKzc5MCwxNSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0
ZU1hcmdpbnMoKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaW50IG9mZnNl
dCA9IGZvbnQuYXNjZW50KCkgKiAyIC8gMzsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxl
KCktPmxpc3RTdHlsZVR5cGUoKSkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIERJU0M6Ci0g
ICAgICAgICAgICAgICAgICAgIGNhc2UgQ0lSQ0xFOgotICAgICAgICAgICAgICAgICAgICBjYXNl
IFNRVUFSRToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQgPSBvZmZzZXQgKyBj
TWFya2VyUGFkZGluZyArIDEgLSBtaW5QcmVmV2lkdGgoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIExOT05FOgotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gbV90ZXh0LmlzRW1wdHkoKSA/IDAgOiBvZmZz
ZXQgLyAyOworICAgICAgICAgICAgICAgIGNhc2UgRGlzYzoKKyAgICAgICAgICAgICAgICBjYXNl
IENpcmNsZToKKyAgICAgICAgICAgICAgICBjYXNlIFNxdWFyZToKKyAgICAgICAgICAgICAgICAg
ICAgbWFyZ2luTGVmdCA9IG9mZnNldCArIGNNYXJrZXJQYWRkaW5nICsgMSAtIG1pblByZWZXaWR0
aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIExO
b25lOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gbV90ZXh0LmlzRW1wdHkoKSA/IDAg
OiBvZmZzZXQgLyAyOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtODM2LDQxICs4MzYsNDEgQEAgSW50UmVjdCBSZW5kZXJMaXN0TWFya2VyOjpnZXRSZWxh
dGl2ZU1hcgogICAgICAgICByZXR1cm4gSW50UmVjdCh4KCksIHkoKSwgbV9pbWFnZS0+aW1hZ2VT
aXplKHRoaXMsIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkud2lkdGgoKSwgbV9pbWFnZS0+aW1h
Z2VTaXplKHRoaXMsIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkuaGVpZ2h0KCkpOwogCiAgICAg
c3dpdGNoIChzdHlsZSgpLT5saXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBESVNDOgot
ICAgICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgY2FzZSBTUVVBUkU6IHsKLSAgICAgICAgICAg
IC8vIEZJWE1FOiBBcmUgdGhlc2UgcGFydGljdWxhciByb3VuZGluZyBydWxlcyBuZWNlc3Nhcnk/
Ci0gICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9udCgpOwotICAgICAg
ICAgICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KCk7Ci0gICAgICAgICAgICBpbnQgYnVsbGV0
V2lkdGggPSAoYXNjZW50ICogMiAvIDMgKyAxKSAvIDI7Ci0gICAgICAgICAgICByZXR1cm4gSW50
UmVjdCh4KCkgKyAxLCB5KCkgKyAzICogKGFzY2VudCAtIGFzY2VudCAqIDIgLyAzKSAvIDIsIGJ1
bGxldFdpZHRoLCBidWxsZXRXaWR0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBMTk9ORToK
KyAgICBjYXNlIERpc2M6CisgICAgY2FzZSBDaXJjbGU6CisgICAgY2FzZSBTcXVhcmU6IHsKKyAg
ICAgICAgLy8gRklYTUU6IEFyZSB0aGVzZSBwYXJ0aWN1bGFyIHJvdW5kaW5nIHJ1bGVzIG5lY2Vz
c2FyeT8KKyAgICAgICAgY29uc3QgRm9udCYgZm9udCA9IHN0eWxlKCktPmZvbnQoKTsKKyAgICAg
ICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KCk7CisgICAgICAgIGludCBidWxsZXRXaWR0aCA9
IChhc2NlbnQgKiAyIC8gMyArIDEpIC8gMjsKKyAgICAgICAgcmV0dXJuIEludFJlY3QoeCgpICsg
MSwgeSgpICsgMyAqIChhc2NlbnQgLSBhc2NlbnQgKiAyIC8gMykgLyAyLCBidWxsZXRXaWR0aCwg
YnVsbGV0V2lkdGgpOworICAgIH0KKyAgICBjYXNlIExOb25lOgorICAgICAgICByZXR1cm4gSW50
UmVjdCgpOworICAgIGNhc2UgQXJtZW5pYW46CisgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoKKyAg
ICBjYXNlIERlY2ltYWxMZWFkaW5nWmVybzoKKyAgICBjYXNlIEdlb3JnaWFuOgorICAgIGNhc2Ug
SGVicmV3OgorICAgIGNhc2UgSGlyYWdhbmE6CisgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgorICAg
IGNhc2UgS2F0YWthbmE6CisgICAgY2FzZSBLYXRha2FuYUlyb2hhOgorICAgIGNhc2UgTERlY2lt
YWw6CisgICAgY2FzZSBMb3dlckFscGhhOgorICAgIGNhc2UgTG93ZXJHcmVlazoKKyAgICBjYXNl
IExvd2VyTGF0aW46CisgICAgY2FzZSBMb3dlclJvbWFuOgorICAgIGNhc2UgVXBwZXJBbHBoYToK
KyAgICBjYXNlIFVwcGVyTGF0aW46CisgICAgY2FzZSBVcHBlclJvbWFuOgorICAgICAgICBpZiAo
bV90ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgICAg
IGNhc2UgQVJNRU5JQU46Ci0gICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSElDOgotICAgICAgICBj
YXNlIERFQ0lNQUxfTEVBRElOR19aRVJPOgotICAgICAgICBjYXNlIEdFT1JHSUFOOgotICAgICAg
ICBjYXNlIEhFQlJFVzoKLSAgICAgICAgY2FzZSBISVJBR0FOQToKLSAgICAgICAgY2FzZSBISVJB
R0FOQV9JUk9IQToKLSAgICAgICAgY2FzZSBLQVRBS0FOQToKLSAgICAgICAgY2FzZSBLQVRBS0FO
QV9JUk9IQToKLSAgICAgICAgY2FzZSBMREVDSU1BTDoKLSAgICAgICAgY2FzZSBMT1dFUl9BTFBI
QToKLSAgICAgICAgY2FzZSBMT1dFUl9HUkVFSzoKLSAgICAgICAgY2FzZSBMT1dFUl9MQVRJTjoK
LSAgICAgICAgY2FzZSBMT1dFUl9ST01BTjoKLSAgICAgICAgY2FzZSBVUFBFUl9BTFBIQToKLSAg
ICAgICAgY2FzZSBVUFBFUl9MQVRJTjoKLSAgICAgICAgY2FzZSBVUFBFUl9ST01BTjoKLSAgICAg
ICAgICAgIGlmIChtX3RleHQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBJbnRS
ZWN0KCk7Ci0gICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9udCgpOwot
ICAgICAgICAgICAgaW50IGl0ZW1XaWR0aCA9IGZvbnQud2lkdGgobV90ZXh0KTsKLSAgICAgICAg
ICAgIGNvbnN0IFVDaGFyIHBlcmlvZFNwYWNlWzJdID0geyAnLicsICcgJyB9OwotICAgICAgICAg
ICAgaW50IHBlcmlvZFNwYWNlV2lkdGggPSBmb250LndpZHRoKFRleHRSdW4ocGVyaW9kU3BhY2Us
IDIpKTsKLSAgICAgICAgICAgIHJldHVybiBJbnRSZWN0KHgoKSwgeSgpICsgZm9udC5hc2NlbnQo
KSwgaXRlbVdpZHRoICsgcGVyaW9kU3BhY2VXaWR0aCwgZm9udC5oZWlnaHQoKSk7CisgICAgICAg
IGNvbnN0IEZvbnQmIGZvbnQgPSBzdHlsZSgpLT5mb250KCk7CisgICAgICAgIGludCBpdGVtV2lk
dGggPSBmb250LndpZHRoKG1fdGV4dCk7CisgICAgICAgIGNvbnN0IFVDaGFyIHBlcmlvZFNwYWNl
WzJdID0geyAnLicsICcgJyB9OworICAgICAgICBpbnQgcGVyaW9kU3BhY2VXaWR0aCA9IGZvbnQu
d2lkdGgoVGV4dFJ1bihwZXJpb2RTcGFjZSwgMikpOworICAgICAgICByZXR1cm4gSW50UmVjdCh4
KCksIHkoKSArIGZvbnQuYXNjZW50KCksIGl0ZW1XaWR0aCArIHBlcmlvZFNwYWNlV2lkdGgsIGZv
bnQuaGVpZ2h0KCkpOwogICAgIH0KIAogICAgIHJldHVybiBJbnRSZWN0KCk7CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDUyMzg0KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTEwNiw3
ICsxMTA2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBFRW1wdHlDZWxsIGluaXRpYWxFbXB0eUNl
bGxzKCkgeyByZXR1cm4gU0hPVzsgfQogICAgIHN0YXRpYyBFRmxvYXQgaW5pdGlhbEZsb2F0aW5n
KCkgeyByZXR1cm4gRk5PTkU7IH0KICAgICBzdGF0aWMgRUxpc3RTdHlsZVBvc2l0aW9uIGluaXRp
YWxMaXN0U3R5bGVQb3NpdGlvbigpIHsgcmV0dXJuIE9VVFNJREU7IH0KLSAgICBzdGF0aWMgRUxp
c3RTdHlsZVR5cGUgaW5pdGlhbExpc3RTdHlsZVR5cGUoKSB7IHJldHVybiBESVNDOyB9CisgICAg
c3RhdGljIEVMaXN0U3R5bGVUeXBlIGluaXRpYWxMaXN0U3R5bGVUeXBlKCkgeyByZXR1cm4gRGlz
YzsgfQogICAgIHN0YXRpYyBFT3ZlcmZsb3cgaW5pdGlhbE92ZXJmbG93WCgpIHsgcmV0dXJuIE9W
SVNJQkxFOyB9CiAgICAgc3RhdGljIEVPdmVyZmxvdyBpbml0aWFsT3ZlcmZsb3dZKCkgeyByZXR1
cm4gT1ZJU0lCTEU7IH0KICAgICBzdGF0aWMgRVBhZ2VCcmVhayBpbml0aWFsUGFnZUJyZWFrKCkg
eyByZXR1cm4gUEJBVVRPOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgJKHJldmlzaW9uIDUyMzg0KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDEx
ICsyMDQsMTEgQEAgZW51bSBFUmVzaXplIHsKIH07CiAKIGVudW0gRUxpc3RTdHlsZVR5cGUgewot
ICAgICBESVNDLCBDSVJDTEUsIFNRVUFSRSwgTERFQ0lNQUwsIERFQ0lNQUxfTEVBRElOR19aRVJP
LAotICAgICBMT1dFUl9ST01BTiwgVVBQRVJfUk9NQU4sIExPV0VSX0dSRUVLLAotICAgICBMT1dF
Ul9BTFBIQSwgTE9XRVJfTEFUSU4sIFVQUEVSX0FMUEhBLCBVUFBFUl9MQVRJTiwKLSAgICAgSEVC
UkVXLCBBUk1FTklBTiwgR0VPUkdJQU4sIENKS19JREVPR1JBUEhJQywKLSAgICAgSElSQUdBTkEs
IEtBVEFLQU5BLCBISVJBR0FOQV9JUk9IQSwgS0FUQUtBTkFfSVJPSEEsIExOT05FCisgICAgIERp
c2MsIENpcmNsZSwgU3F1YXJlLCBMRGVjaW1hbCwgRGVjaW1hbExlYWRpbmdaZXJvLAorICAgICBM
b3dlclJvbWFuLCBVcHBlclJvbWFuLCBMb3dlckdyZWVrLAorICAgICBMb3dlckFscGhhLCBMb3dl
ckxhdGluLCBVcHBlckFscGhhLCBVcHBlckxhdGluLAorICAgICBIZWJyZXcsIEFybWVuaWFuLCBH
ZW9yZ2lhbiwgQ0pLSWRlb2dyYXBoaWMsCisgICAgIEhpcmFnYW5hLCBLYXRha2FuYSwgSGlyYWdh
bmFJcm9oYSwgS2F0YWthbmFJcm9oYSwgTE5vbmUKIH07CiAKIGVudW0gU3R5bGVDb250ZW50VHlw
ZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45306</attachid>
            <date>2009-12-20 22:01:44 -0800</date>
            <delta_ts>2009-12-20 22:39:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32799_1.patch</filename>
            <type>text/plain</type>
            <size>19188</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjc5OQorCisgICAgICAgIFJl
bmFtZXMgZW51bXMgaW4gUmVuZGVyU3R5bGVDb25zdGFudHM6OkVMaXN0U3R5bGVUeXBlIHRvIGNv
bmZvcm0gdG8KKyAgICAgICAgdGhlIFdlYktpdCBDb2RlIFN0eWxlIEd1aWRlbGluZXMuCisKKyAg
ICAgICAgTm8gZnVuY3Rpb25hbGl0eSB3YXMgY2hhbmdlZC4gU28sIG5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVMaXN0U3R5bGVUeXBlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEl0ZW06OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0TWFya2VyVGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaXN0TWFya2VyOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVNYXJnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OmdldFJlbGF0aXZlTWFya2VyUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
aW5pdGlhbExpc3RTdHlsZVR5cGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAwOS0xMi0yMCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsg
Um93ZS4KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlz
aW9uIDUyNDI4KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MzAsNjcgKzkzMCw2NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgOiBtX3R5cGUoQ1NTX0lERU5UKQogewogICAgIHN3aXRj
aCAoZSkgewotICAgICAgICBjYXNlIExOT05FOgorICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6
CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb25lOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgRElTQzoKKyAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGlzYzsKICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENJUkNMRToKKyAgICAgICAgY2FzZSBDaXJjbGU6CiAgICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVDaXJjbGU7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBTUVVBUkU6CisgICAgICAgIGNhc2UgU3F1YXJlOgogICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlU3F1YXJlOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TERFQ0lNQUw6CisgICAgICAgIGNhc2UgRGVjaW1hbExpc3RTdHlsZToKICAgICAgICAgICAgIG1f
dmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURlY2ltYWw7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBERUNJTUFMX0xFQURJTkdfWkVSTzoKKyAgICAgICAgY2FzZSBEZWNpbWFsTGVhZGlu
Z1plcm86CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVEZWNpbWFsTGVhZGlu
Z1plcm87CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBMT1dFUl9ST01BTjoKKyAg
ICAgICAgY2FzZSBMb3dlclJvbWFuOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTG93ZXJSb21hbjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFVQUEVSX1JP
TUFOOgorICAgICAgICBjYXNlIFVwcGVyUm9tYW46CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVVcHBlclJvbWFuOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
TE9XRVJfR1JFRUs6CisgICAgICAgIGNhc2UgTG93ZXJHcmVlazoKICAgICAgICAgICAgIG1fdmFs
dWUuaWRlbnQgPSBDU1NWYWx1ZUxvd2VyR3JlZWs7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBMT1dFUl9BTFBIQToKKyAgICAgICAgY2FzZSBMb3dlckFscGhhOgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTG93ZXJBbHBoYTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIExPV0VSX0xBVElOOgorICAgICAgICBjYXNlIExvd2VyTGF0aW46CiAg
ICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVMb3dlckxhdGluOwogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVVBQRVJfQUxQSEE6CisgICAgICAgIGNhc2UgVXBwZXJB
bHBoYToKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVVwcGVyQWxwaGE7CiAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBVUFBFUl9MQVRJTjoKKyAgICAgICAgY2Fz
ZSBVcHBlckxhdGluOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVXBwZXJM
YXRpbjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEhFQlJFVzoKKyAgICAgICAg
Y2FzZSBIZWJyZXc6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIZWJyZXc7
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBBUk1FTklBTjoKKyAgICAgICAgY2Fz
ZSBBcm1lbmlhbjoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUFybWVuaWFu
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR0VPUkdJQU46CisgICAgICAgIGNh
c2UgR2VvcmdpYW46CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVHZW9yZ2lh
bjsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENKS19JREVPR1JBUEhJQzoKKyAg
ICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBD
U1NWYWx1ZUNqa0lkZW9ncmFwaGljOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
SElSQUdBTkE6CisgICAgICAgIGNhc2UgSGlyYWdhbmE6CiAgICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVIaXJhZ2FuYTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IEtBVEFLQU5BOgorICAgICAgICBjYXNlIEthdGFrYW5hOgogICAgICAgICAgICAgbV92YWx1ZS5p
ZGVudCA9IENTU1ZhbHVlS2F0YWthbmE7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBISVJBR0FOQV9JUk9IQToKKyAgICAgICAgY2FzZSBIaXJhZ2FuYUlyb2hhOgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGlyYWdhbmFJcm9oYTsKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEtBVEFLQU5BX0lST0hBOgorICAgICAgICBjYXNlIEthdGFrYW5h
SXJvaGE6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVLYXRha2FuYUlyb2hh
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTAwMCw3ICsxMDAwLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZQogewogICAgIHN3aXRjaCAobV92YWx1
ZS5pZGVudCkgewogICAgICAgICBjYXNlIENTU1ZhbHVlTm9uZToKLSAgICAgICAgICAgIHJldHVy
biBMTk9ORTsKKyAgICAgICAgICAgIHJldHVybiBOb25lTGlzdFN0eWxlOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVMaXN0U3R5bGVUeXBlPihtX3Zh
bHVlLmlkZW50IC0gQ1NTVmFsdWVEaXNjKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0SXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEl0ZW0uY3BwCShyZXZpc2lvbiA1MjQyOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsOCBAQCB2b2lkIFJl
bmRlckxpc3RJdGVtOjpzdHlsZURpZENoYW5nZShTdHlsCiB7CiAgICAgUmVuZGVyQmxvY2s6OnN0
eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKIAotICAgIGlmIChzdHlsZSgpLT5saXN0U3R5
bGVUeXBlKCkgIT0gTE5PTkUgfHwKLSAgICAgICAgKHN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCkg
JiYgIXN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCktPmVycm9yT2NjdXJyZWQoKSkpIHsKKyAgICBp
ZiAoc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpICE9IE5vbmVMaXN0U3R5bGUKKyAgICAgICAgfHwg
KHN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCkgJiYgIXN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCkt
PmVycm9yT2NjdXJyZWQoKSkpIHsKICAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHls
ZSA9IFJlbmRlclN0eWxlOjpjcmVhdGUoKTsKICAgICAgICAgLy8gVGhlIG1hcmtlciBhbHdheXMg
aW5oZXJpdHMgZnJvbSB0aGUgbGlzdCBpdGVtLCByZWdhcmRsZXNzIG9mIHdoZXJlIGl0IG1pZ2h0
IGVuZAogICAgICAgICAvLyB1cCAoZS5nLiwgaW4gc29tZSBkZWVwbHkgbmVzdGVkIGxpbmUgYm94
KS4gU2VlIENTUzMgc3BlYy4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
Y3BwCShyZXZpc2lvbiA1MjQyOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJr
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDAsNDYgKzM0MCw0NiBAQCBzdGF0aWMgU3RyaW5n
IHRvQ0pLSWRlb2dyYXBoaWMoaW50IG51bWJlCiBTdHJpbmcgbGlzdE1hcmtlclRleHQoRUxpc3RT
dHlsZVR5cGUgdHlwZSwgaW50IHZhbHVlKQogewogICAgIHN3aXRjaCAodHlwZSkgewotICAgICAg
ICBjYXNlIExOT05FOgorICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAgICAgICAgICAgICBy
ZXR1cm4gIiI7CiAKICAgICAgICAgLy8gV2UgdXNlIHRoZSBzYW1lIGNoYXJhY3RlcnMgZm9yIHRl
eHQgc2VjdXJpdHkuCiAgICAgICAgIC8vIFNlZSBSZW5kZXJUZXh0OjpzZXRJbnRlcm5hbFN0cmlu
Zy4KLSAgICAgICAgY2FzZSBDSVJDTEU6CisgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZygmd2hpdGVCdWxsZXQsIDEpOwotICAgICAgICBjYXNlIERJU0M6Cisg
ICAgICAgIGNhc2UgRGlzYzoKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoJmJ1bGxldCwgMSk7
Ci0gICAgICAgIGNhc2UgU1FVQVJFOgorICAgICAgICBjYXNlIFNxdWFyZToKICAgICAgICAgICAg
IC8vIFRoZSBDU1MgMi4xIHRlc3Qgc3VpdGUgdXNlcyBVKzI1RUUgQkxBQ0sgTUVESVVNIFNNQUxM
IFNRVUFSRQogICAgICAgICAgICAgLy8gaW5zdGVhZCwgYnV0IEkgdGhpbmsgdGhpcyBsb29rcyBi
ZXR0ZXIuCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCZibGFja1NxdWFyZSwgMSk7CiAKLSAg
ICAgICAgY2FzZSBMREVDSU1BTDoKKyAgICAgICAgY2FzZSBEZWNpbWFsTGlzdFN0eWxlOgogICAg
ICAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKLSAgICAgICAgY2FzZSBERUNJ
TUFMX0xFQURJTkdfWkVSTzoKKyAgICAgICAgY2FzZSBEZWNpbWFsTGVhZGluZ1plcm86CiAgICAg
ICAgICAgICBpZiAodmFsdWUgPCAtOSB8fCB2YWx1ZSA+IDkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZzo6bnVtYmVyKHZhbHVlKTsKICAgICAgICAgICAgIGlmICh2YWx1ZSA8IDApCiAg
ICAgICAgICAgICAgICAgcmV0dXJuICItMCIgKyBTdHJpbmc6Om51bWJlcigtdmFsdWUpOyAvLyAt
MDEgdG8gLTA5CiAgICAgICAgICAgICByZXR1cm4gIjAiICsgU3RyaW5nOjpudW1iZXIodmFsdWUp
OyAvLyAwMCB0byAwOQogCi0gICAgICAgIGNhc2UgTE9XRVJfQUxQSEE6Ci0gICAgICAgIGNhc2Ug
TE9XRVJfTEFUSU46IHsKKyAgICAgICAgY2FzZSBMb3dlckFscGhhOgorICAgICAgICBjYXNlIExv
d2VyTGF0aW46IHsKICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsb3dlckxhdGluQWxw
aGFiZXRbMjZdID0gewogICAgICAgICAgICAgICAgICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAn
ZicsICdnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCcsICdtJywKICAgICAgICAgICAgICAgICAn
bicsICdvJywgJ3AnLCAncScsICdyJywgJ3MnLCAndCcsICd1JywgJ3YnLCAndycsICd4JywgJ3kn
LCAneicKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1cm4gdG9BbHBoYWJldGljKHZh
bHVlLCBsb3dlckxhdGluQWxwaGFiZXQsIDI2KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIFVQ
UEVSX0FMUEhBOgotICAgICAgICBjYXNlIFVQUEVSX0xBVElOOiB7CisgICAgICAgIGNhc2UgVXBw
ZXJBbHBoYToKKyAgICAgICAgY2FzZSBVcHBlckxhdGluOiB7CiAgICAgICAgICAgICBzdGF0aWMg
Y29uc3QgVUNoYXIgdXBwZXJMYXRpbkFscGhhYmV0WzI2XSA9IHsKICAgICAgICAgICAgICAgICAn
QScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLCAnRycsICdIJywgJ0knLCAnSicsICdLJywgJ0wn
LCAnTScsCiAgICAgICAgICAgICAgICAgJ04nLCAnTycsICdQJywgJ1EnLCAnUicsICdTJywgJ1Qn
LCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onCiAgICAgICAgICAgICB9OwogICAgICAgICAg
ICAgcmV0dXJuIHRvQWxwaGFiZXRpYyh2YWx1ZSwgdXBwZXJMYXRpbkFscGhhYmV0LCAyNik7CiAg
ICAgICAgIH0KLSAgICAgICAgY2FzZSBMT1dFUl9HUkVFSzogeworICAgICAgICBjYXNlIExvd2Vy
R3JlZWs6IHsKICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBsb3dlckdyZWVrQWxwaGFi
ZXRbMjRdID0gewogICAgICAgICAgICAgICAgIDB4MDNCMSwgMHgwM0IyLCAweDAzQjMsIDB4MDNC
NCwgMHgwM0I1LCAweDAzQjYsIDB4MDNCNywgMHgwM0I4LAogICAgICAgICAgICAgICAgIDB4MDNC
OSwgMHgwM0JBLCAweDAzQkIsIDB4MDNCQywgMHgwM0JELCAweDAzQkUsIDB4MDNCRiwgMHgwM0Mw
LApAQCAtMzg4LDcgKzM4OCw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlw
ZSB0eXAKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGxvd2VyR3JlZWtB
bHBoYWJldCwgMjQpOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBISVJBR0FOQTogeworICAg
ICAgICBjYXNlIEhpcmFnYW5hOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB0YWJsZSBj
b21lcyBmcm9tIHRoZSBDU1MzIGRyYWZ0LCBhbmQgaXMgcHJvYmFibHkKICAgICAgICAgICAgIC8v
IGluY29ycmVjdCwgZ2l2ZW4gdGhlIGNvbW1lbnRzIGluIHRoYXQgZHJhZnQuCiAgICAgICAgICAg
ICBzdGF0aWMgY29uc3QgVUNoYXIgaGlyYWdhbmFBbHBoYWJldFs0OF0gPSB7CkBAIC00MDEsNyAr
NDAxLDcgQEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVUeXBlIHR5cAogICAgICAg
ICAgICAgfTsKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWModmFsdWUsIGhpcmFnYW5h
QWxwaGFiZXQsIDQ4KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIEhJUkFHQU5BX0lST0hBOiB7
CisgICAgICAgIGNhc2UgSGlyYWdhbmFJcm9oYTogewogICAgICAgICAgICAgLy8gRklYTUU6IFRo
aXMgdGFibGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlzIHByb2JhYmx5CiAgICAg
ICAgICAgICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0aGF0IGRyYWZ0Lgog
ICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGhpcmFnYW5hSXJvaGFBbHBoYWJldFs0N10g
PSB7CkBAIC00MTQsNyArNDE0LDcgQEAgU3RyaW5nIGxpc3RNYXJrZXJUZXh0KEVMaXN0U3R5bGVU
eXBlIHR5cAogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0aWMo
dmFsdWUsIGhpcmFnYW5hSXJvaGFBbHBoYWJldCwgNDcpOwogICAgICAgICB9Ci0gICAgICAgIGNh
c2UgS0FUQUtBTkE6IHsKKyAgICAgICAgY2FzZSBLYXRha2FuYTogewogICAgICAgICAgICAgLy8g
RklYTUU6IFRoaXMgdGFibGUgY29tZXMgZnJvbSB0aGUgQ1NTMyBkcmFmdCwgYW5kIGlzIHByb2Jh
Ymx5CiAgICAgICAgICAgICAvLyBpbmNvcnJlY3QsIGdpdmVuIHRoZSBjb21tZW50cyBpbiB0aGF0
IGRyYWZ0LgogICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGthdGFrYW5hQWxwaGFiZXRb
NDhdID0gewpAQCAtNDI3LDcgKzQyNyw3IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0
eWxlVHlwZSB0eXAKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICByZXR1cm4gdG9BbHBoYWJl
dGljKHZhbHVlLCBrYXRha2FuYUFscGhhYmV0LCA0OCk7CiAgICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBLQVRBS0FOQV9JUk9IQTogeworICAgICAgICBjYXNlIEthdGFrYW5hSXJvaGE6IHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHRhYmxlIGNvbWVzIGZyb20gdGhlIENTUzMgZHJhZnQsIGFu
ZCBpcyBwcm9iYWJseQogICAgICAgICAgICAgLy8gaW5jb3JyZWN0LCBnaXZlbiB0aGUgY29tbWVu
dHMgaW4gdGhhdCBkcmFmdC4KICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBrYXRha2Fu
YUlyb2hhQWxwaGFiZXRbNDddID0gewpAQCAtNDQxLDcgKzQ0MSw3IEBAIFN0cmluZyBsaXN0TWFy
a2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXAKICAgICAgICAgICAgIHJldHVybiB0b0FscGhhYmV0
aWModmFsdWUsIGthdGFrYW5hSXJvaGFBbHBoYWJldCwgNDcpOwogICAgICAgICB9CiAKLSAgICAg
ICAgY2FzZSBDSktfSURFT0dSQVBISUM6IHsKKyAgICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzog
ewogICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHRyYWRpdGlvbmFsQ2hpbmVzZUluZm9y
bWFsVGFibGVbMTZdID0gewogICAgICAgICAgICAgICAgIDB4ODQyQywgMHg1MTA0LCAweDUxNDYs
CiAgICAgICAgICAgICAgICAgMHg1MzQxLCAweDc2N0UsIDB4NTM0MywKQEAgLTQ1MSwxOSArNDUx
LDE5IEBAIFN0cmluZyBsaXN0TWFya2VyVGV4dChFTGlzdFN0eWxlVHlwZSB0eXAKICAgICAgICAg
ICAgIHJldHVybiB0b0NKS0lkZW9ncmFwaGljKHZhbHVlLCB0cmFkaXRpb25hbENoaW5lc2VJbmZv
cm1hbFRhYmxlKTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2UgTE9XRVJfUk9NQU46CisgICAg
ICAgIGNhc2UgTG93ZXJSb21hbjoKICAgICAgICAgICAgIHJldHVybiB0b1JvbWFuKHZhbHVlLCBm
YWxzZSk7Ci0gICAgICAgIGNhc2UgVVBQRVJfUk9NQU46CisgICAgICAgIGNhc2UgVXBwZXJSb21h
bjoKICAgICAgICAgICAgIHJldHVybiB0b1JvbWFuKHZhbHVlLCB0cnVlKTsKIAotICAgICAgICBj
YXNlIEFSTUVOSUFOOgorICAgICAgICBjYXNlIEFybWVuaWFuOgogICAgICAgICAgICAgLy8gQ1NT
MyBzYXlzICJhcm1lbmlhbiIgbWVhbnMgImxvd2VyLWFybWVuaWFuIi4KICAgICAgICAgICAgIC8v
IEJ1dCB0aGUgQ1NTMi4xIHRlc3Qgc3VpdGUgY29udGFpbnMgdXBwZXJjYXNlIHRlc3QgcmVzdWx0
cyBmb3IgImFybWVuaWFuIiwKICAgICAgICAgICAgIC8vIHNvIHdlJ2xsIG1hdGNoIHRoZSB0ZXN0
IHN1aXRlLgogICAgICAgICAgICAgcmV0dXJuIHRvQXJtZW5pYW4odmFsdWUsIHRydWUpOwotICAg
ICAgICBjYXNlIEdFT1JHSUFOOgorICAgICAgICBjYXNlIEdlb3JnaWFuOgogICAgICAgICAgICAg
cmV0dXJuIHRvR2VvcmdpYW4odmFsdWUpOwotICAgICAgICBjYXNlIEhFQlJFVzoKKyAgICAgICAg
Y2FzZSBIZWJyZXc6CiAgICAgICAgICAgICByZXR1cm4gdG9IZWJyZXcodmFsdWUpOwogICAgIH0K
IApAQCAtNTcxLDM1ICs1NzEsMzUgQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpwYWludChQYWlu
dEluZm8mIAogICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihjb2xvciwgc3R5bGUoKS0+Y29sb3JT
cGFjZSgpKTsKIAogICAgIHN3aXRjaCAoc3R5bGUoKS0+bGlzdFN0eWxlVHlwZSgpKSB7Ci0gICAg
ICAgIGNhc2UgRElTQzoKKyAgICAgICAgY2FzZSBEaXNjOgogICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0VsbGlwc2UobWFya2VyKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBD
SVJDTEU6CisgICAgICAgIGNhc2UgQ2lyY2xlOgogICAgICAgICAgICAgY29udGV4dC0+c2V0Rmls
bENvbG9yKENvbG9yOjp0cmFuc3BhcmVudCwgRGV2aWNlQ29sb3JTcGFjZSk7CiAgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3RWxsaXBzZShtYXJrZXIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBjYXNlIFNRVUFSRToKKyAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAgICBjb250
ZXh0LT5kcmF3UmVjdChtYXJrZXIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNl
IExOT05FOgorICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGNhc2UgQVJNRU5JQU46Ci0gICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSElDOgot
ICAgICAgICBjYXNlIERFQ0lNQUxfTEVBRElOR19aRVJPOgotICAgICAgICBjYXNlIEdFT1JHSUFO
OgotICAgICAgICBjYXNlIEhFQlJFVzoKLSAgICAgICAgY2FzZSBISVJBR0FOQToKLSAgICAgICAg
Y2FzZSBISVJBR0FOQV9JUk9IQToKLSAgICAgICAgY2FzZSBLQVRBS0FOQToKLSAgICAgICAgY2Fz
ZSBLQVRBS0FOQV9JUk9IQToKLSAgICAgICAgY2FzZSBMREVDSU1BTDoKLSAgICAgICAgY2FzZSBM
T1dFUl9BTFBIQToKLSAgICAgICAgY2FzZSBMT1dFUl9HUkVFSzoKLSAgICAgICAgY2FzZSBMT1dF
Ul9MQVRJTjoKLSAgICAgICAgY2FzZSBMT1dFUl9ST01BTjoKLSAgICAgICAgY2FzZSBVUFBFUl9B
TFBIQToKLSAgICAgICAgY2FzZSBVUFBFUl9MQVRJTjoKLSAgICAgICAgY2FzZSBVUFBFUl9ST01B
TjoKKyAgICAgICAgY2FzZSBBcm1lbmlhbjoKKyAgICAgICAgY2FzZSBDSktJZGVvZ3JhcGhpYzoK
KyAgICAgICAgY2FzZSBEZWNpbWFsTGVhZGluZ1plcm86CisgICAgICAgIGNhc2UgR2VvcmdpYW46
CisgICAgICAgIGNhc2UgSGVicmV3OgorICAgICAgICBjYXNlIEhpcmFnYW5hOgorICAgICAgICBj
YXNlIEhpcmFnYW5hSXJvaGE6CisgICAgICAgIGNhc2UgS2F0YWthbmE6CisgICAgICAgIGNhc2Ug
S2F0YWthbmFJcm9oYToKKyAgICAgICAgY2FzZSBEZWNpbWFsTGlzdFN0eWxlOgorICAgICAgICBj
YXNlIExvd2VyQWxwaGE6CisgICAgICAgIGNhc2UgTG93ZXJHcmVlazoKKyAgICAgICAgY2FzZSBM
b3dlckxhdGluOgorICAgICAgICBjYXNlIExvd2VyUm9tYW46CisgICAgICAgIGNhc2UgVXBwZXJB
bHBoYToKKyAgICAgICAgY2FzZSBVcHBlckxhdGluOgorICAgICAgICBjYXNlIFVwcGVyUm9tYW46
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKG1fdGV4dC5pc0VtcHR5KCkpCkBA
IC02OTMsMzEgKzY5MywzMSBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OmNhbGNQcmVmV2lkdGhz
KCkKICAgICBpbnQgd2lkdGggPSAwOwogICAgIEVMaXN0U3R5bGVUeXBlIHR5cGUgPSBzdHlsZSgp
LT5saXN0U3R5bGVUeXBlKCk7CiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgIGNhc2UgTE5P
TkU6CisgICAgICAgIGNhc2UgTm9uZUxpc3RTdHlsZToKICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENJUkNMRToKLSAgICAgICAgY2FzZSBESVNDOgotICAgICAgICBjYXNlIFNRVUFS
RToKKyAgICAgICAgY2FzZSBDaXJjbGU6CisgICAgICAgIGNhc2UgRGlzYzoKKyAgICAgICAgY2Fz
ZSBTcXVhcmU6CiAgICAgICAgICAgICBtX3RleHQgPSBsaXN0TWFya2VyVGV4dCh0eXBlLCAwKTsg
Ly8gdmFsdWUgaXMgaWdub3JlZCBmb3IgdGhlc2UgdHlwZXMKICAgICAgICAgICAgIHdpZHRoID0g
KGZvbnQuYXNjZW50KCkgKiAyIC8gMyArIDEpIC8gMiArIDI7CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBBUk1FTklBTjoKLSAgICAgICAgY2FzZSBDSktfSURFT0dSQVBISUM6Ci0g
ICAgICAgIGNhc2UgREVDSU1BTF9MRUFESU5HX1pFUk86Ci0gICAgICAgIGNhc2UgR0VPUkdJQU46
Ci0gICAgICAgIGNhc2UgSEVCUkVXOgotICAgICAgICBjYXNlIEhJUkFHQU5BOgotICAgICAgICBj
YXNlIEhJUkFHQU5BX0lST0hBOgotICAgICAgICBjYXNlIEtBVEFLQU5BOgotICAgICAgICBjYXNl
IEtBVEFLQU5BX0lST0hBOgotICAgICAgICBjYXNlIExERUNJTUFMOgotICAgICAgICBjYXNlIExP
V0VSX0FMUEhBOgotICAgICAgICBjYXNlIExPV0VSX0dSRUVLOgotICAgICAgICBjYXNlIExPV0VS
X0xBVElOOgotICAgICAgICBjYXNlIExPV0VSX1JPTUFOOgotICAgICAgICBjYXNlIFVQUEVSX0FM
UEhBOgotICAgICAgICBjYXNlIFVQUEVSX0xBVElOOgotICAgICAgICBjYXNlIFVQUEVSX1JPTUFO
OgorICAgICAgICBjYXNlIEFybWVuaWFuOgorICAgICAgICBjYXNlIENKS0lkZW9ncmFwaGljOgor
ICAgICAgICBjYXNlIERlY2ltYWxMZWFkaW5nWmVybzoKKyAgICAgICAgY2FzZSBHZW9yZ2lhbjoK
KyAgICAgICAgY2FzZSBIZWJyZXc6CisgICAgICAgIGNhc2UgSGlyYWdhbmE6CisgICAgICAgIGNh
c2UgSGlyYWdhbmFJcm9oYToKKyAgICAgICAgY2FzZSBLYXRha2FuYToKKyAgICAgICAgY2FzZSBL
YXRha2FuYUlyb2hhOgorICAgICAgICBjYXNlIERlY2ltYWxMaXN0U3R5bGU6CisgICAgICAgIGNh
c2UgTG93ZXJBbHBoYToKKyAgICAgICAgY2FzZSBMb3dlckdyZWVrOgorICAgICAgICBjYXNlIExv
d2VyTGF0aW46CisgICAgICAgIGNhc2UgTG93ZXJSb21hbjoKKyAgICAgICAgY2FzZSBVcHBlckFs
cGhhOgorICAgICAgICBjYXNlIFVwcGVyTGF0aW46CisgICAgICAgIGNhc2UgVXBwZXJSb21hbjoK
ICAgICAgICAgICAgIG1fdGV4dCA9IGxpc3RNYXJrZXJUZXh0KHR5cGUsIG1fbGlzdEl0ZW0tPnZh
bHVlKCkpOwogICAgICAgICAgICAgaWYgKG1fdGV4dC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAg
ICAgd2lkdGggPSAwOwpAQCAtNzUyLDkgKzc1Miw5IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6
dXBkYXRlTWFyZ2lucygpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbWFyZ2lu
TGVmdCA9IGNNYXJrZXJQYWRkaW5nOwogICAgICAgICB9IGVsc2Ugc3dpdGNoIChzdHlsZSgpLT5s
aXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgICAgIGNhc2UgRElTQzoKLSAgICAgICAgICAgIGNh
c2UgQ0lSQ0xFOgotICAgICAgICAgICAgY2FzZSBTUVVBUkU6CisgICAgICAgICAgICBjYXNlIERp
c2M6CisgICAgICAgICAgICBjYXNlIENpcmNsZToKKyAgICAgICAgICAgIGNhc2UgU3F1YXJlOgog
ICAgICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIpIHsKICAgICAg
ICAgICAgICAgICAgICAgbWFyZ2luTGVmdCA9IC0xOwogICAgICAgICAgICAgICAgICAgICBtYXJn
aW5SaWdodCA9IGZvbnQuYXNjZW50KCkgLSBtaW5QcmVmV2lkdGgoKSArIDE7CkBAIC03NzMsMTIg
Kzc3MywxMiBAQCB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZU1hcmdpbnMoKQogICAgICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZvbnQuYXNjZW50KCkg
KiAyIC8gMzsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlKCktPmxpc3RTdHlsZVR5cGUo
KSkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIERJU0M6Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgQ0lSQ0xFOgotICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVUFSRToKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBEaXNjOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENpcmNsZToK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBTcXVhcmU6CiAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXJnaW5MZWZ0ID0gLW9mZnNldCAtIGNNYXJrZXJQYWRkaW5nIC0gMTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIExOT05FOgorICAg
ICAgICAgICAgICAgICAgICBjYXNlIE5vbmVMaXN0U3R5bGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hcmdpbkxlZnQgPSBtX3RleHQuaXNFbXB0eSgpID8gMCA6IC1taW5QcmVmV2lk
dGgoKSAtIG9mZnNldCAvIDI7CkBAIC03OTAsMTIgKzc5MCwxMiBAQCB2b2lkIFJlbmRlckxpc3RN
YXJrZXI6OnVwZGF0ZU1hcmdpbnMoKQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAg
ICAgaW50IG9mZnNldCA9IGZvbnQuYXNjZW50KCkgKiAyIC8gMzsKICAgICAgICAgICAgICAgICBz
d2l0Y2ggKHN0eWxlKCktPmxpc3RTdHlsZVR5cGUoKSkgewotICAgICAgICAgICAgICAgICAgICBj
YXNlIERJU0M6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgQ0lSQ0xFOgotICAgICAgICAgICAg
ICAgICAgICBjYXNlIFNRVUFSRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBEaXNjOgorICAg
ICAgICAgICAgICAgICAgICBjYXNlIENpcmNsZToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBT
cXVhcmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0ID0gb2Zmc2V0ICsgY01h
cmtlclBhZGRpbmcgKyAxIC0gbWluUHJlZldpZHRoKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBMTk9ORToKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBt
YXJnaW5MZWZ0ID0gbV90ZXh0LmlzRW1wdHkoKSA/IDAgOiBvZmZzZXQgLyAyOwpAQCAtODM2LDM0
ICs4MzYsMzQgQEAgSW50UmVjdCBSZW5kZXJMaXN0TWFya2VyOjpnZXRSZWxhdGl2ZU1hcgogICAg
ICAgICByZXR1cm4gSW50UmVjdCh4KCksIHkoKSwgbV9pbWFnZS0+aW1hZ2VTaXplKHRoaXMsIHN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkud2lkdGgoKSwgbV9pbWFnZS0+aW1hZ2VTaXplKHRoaXMs
IHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkuaGVpZ2h0KCkpOwogCiAgICAgc3dpdGNoIChzdHls
ZSgpLT5saXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBESVNDOgotICAgICAgICBjYXNl
IENJUkNMRToKLSAgICAgICAgY2FzZSBTUVVBUkU6IHsKKyAgICAgICAgY2FzZSBEaXNjOgorICAg
ICAgICBjYXNlIENpcmNsZToKKyAgICAgICAgY2FzZSBTcXVhcmU6IHsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBBcmUgdGhlc2UgcGFydGljdWxhciByb3VuZGluZyBydWxlcyBuZWNlc3Nhcnk/CiAg
ICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9udCgpOwogICAgICAgICAg
ICAgaW50IGFzY2VudCA9IGZvbnQuYXNjZW50KCk7CiAgICAgICAgICAgICBpbnQgYnVsbGV0V2lk
dGggPSAoYXNjZW50ICogMiAvIDMgKyAxKSAvIDI7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVj
dCh4KCkgKyAxLCB5KCkgKyAzICogKGFzY2VudCAtIGFzY2VudCAqIDIgLyAzKSAvIDIsIGJ1bGxl
dFdpZHRoLCBidWxsZXRXaWR0aCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBMTk9ORToKKyAg
ICAgICAgY2FzZSBOb25lTGlzdFN0eWxlOgogICAgICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsK
LSAgICAgICAgY2FzZSBBUk1FTklBTjoKLSAgICAgICAgY2FzZSBDSktfSURFT0dSQVBISUM6Ci0g
ICAgICAgIGNhc2UgREVDSU1BTF9MRUFESU5HX1pFUk86Ci0gICAgICAgIGNhc2UgR0VPUkdJQU46
Ci0gICAgICAgIGNhc2UgSEVCUkVXOgotICAgICAgICBjYXNlIEhJUkFHQU5BOgotICAgICAgICBj
YXNlIEhJUkFHQU5BX0lST0hBOgotICAgICAgICBjYXNlIEtBVEFLQU5BOgotICAgICAgICBjYXNl
IEtBVEFLQU5BX0lST0hBOgotICAgICAgICBjYXNlIExERUNJTUFMOgotICAgICAgICBjYXNlIExP
V0VSX0FMUEhBOgotICAgICAgICBjYXNlIExPV0VSX0dSRUVLOgotICAgICAgICBjYXNlIExPV0VS
X0xBVElOOgotICAgICAgICBjYXNlIExPV0VSX1JPTUFOOgotICAgICAgICBjYXNlIFVQUEVSX0FM
UEhBOgotICAgICAgICBjYXNlIFVQUEVSX0xBVElOOgotICAgICAgICBjYXNlIFVQUEVSX1JPTUFO
OgorICAgICAgICBjYXNlIEFybWVuaWFuOgorICAgICAgICBjYXNlIENKS0lkZW9ncmFwaGljOgor
ICAgICAgICBjYXNlIERlY2ltYWxMZWFkaW5nWmVybzoKKyAgICAgICAgY2FzZSBHZW9yZ2lhbjoK
KyAgICAgICAgY2FzZSBIZWJyZXc6CisgICAgICAgIGNhc2UgSGlyYWdhbmE6CisgICAgICAgIGNh
c2UgSGlyYWdhbmFJcm9oYToKKyAgICAgICAgY2FzZSBLYXRha2FuYToKKyAgICAgICAgY2FzZSBL
YXRha2FuYUlyb2hhOgorICAgICAgICBjYXNlIERlY2ltYWxMaXN0U3R5bGU6CisgICAgICAgIGNh
c2UgTG93ZXJBbHBoYToKKyAgICAgICAgY2FzZSBMb3dlckdyZWVrOgorICAgICAgICBjYXNlIExv
d2VyTGF0aW46CisgICAgICAgIGNhc2UgTG93ZXJSb21hbjoKKyAgICAgICAgY2FzZSBVcHBlckFs
cGhhOgorICAgICAgICBjYXNlIFVwcGVyTGF0aW46CisgICAgICAgIGNhc2UgVXBwZXJSb21hbjoK
ICAgICAgICAgICAgIGlmIChtX3RleHQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBJbnRSZWN0KCk7CiAgICAgICAgICAgICBjb25zdCBGb250JiBmb250ID0gc3R5bGUoKS0+Zm9u
dCgpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA1
MjQyOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMDYsNyArMTEwNiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRUVtcHR5Q2Vs
bCBpbml0aWFsRW1wdHlDZWxscygpIHsgcmV0dXJuIFNIT1c7IH0KICAgICBzdGF0aWMgRUZsb2F0
IGluaXRpYWxGbG9hdGluZygpIHsgcmV0dXJuIEZOT05FOyB9CiAgICAgc3RhdGljIEVMaXN0U3R5
bGVQb3NpdGlvbiBpbml0aWFsTGlzdFN0eWxlUG9zaXRpb24oKSB7IHJldHVybiBPVVRTSURFOyB9
Ci0gICAgc3RhdGljIEVMaXN0U3R5bGVUeXBlIGluaXRpYWxMaXN0U3R5bGVUeXBlKCkgeyByZXR1
cm4gRElTQzsgfQorICAgIHN0YXRpYyBFTGlzdFN0eWxlVHlwZSBpbml0aWFsTGlzdFN0eWxlVHlw
ZSgpIHsgcmV0dXJuIERpc2M7IH0KICAgICBzdGF0aWMgRU92ZXJmbG93IGluaXRpYWxPdmVyZmxv
d1goKSB7IHJldHVybiBPVklTSUJMRTsgfQogICAgIHN0YXRpYyBFT3ZlcmZsb3cgaW5pdGlhbE92
ZXJmbG93WSgpIHsgcmV0dXJuIE9WSVNJQkxFOyB9CiAgICAgc3RhdGljIEVQYWdlQnJlYWsgaW5p
dGlhbFBhZ2VCcmVhaygpIHsgcmV0dXJuIFBCQVVUTzsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA1MjQyOCkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNCwxMSArMjA0LDExIEBAIGVudW0gRVJlc2l6ZSB7CiB9OwogCiBlbnVtIEVM
aXN0U3R5bGVUeXBlIHsKLSAgICAgRElTQywgQ0lSQ0xFLCBTUVVBUkUsIExERUNJTUFMLCBERUNJ
TUFMX0xFQURJTkdfWkVSTywKLSAgICAgTE9XRVJfUk9NQU4sIFVQUEVSX1JPTUFOLCBMT1dFUl9H
UkVFSywKLSAgICAgTE9XRVJfQUxQSEEsIExPV0VSX0xBVElOLCBVUFBFUl9BTFBIQSwgVVBQRVJf
TEFUSU4sCi0gICAgIEhFQlJFVywgQVJNRU5JQU4sIEdFT1JHSUFOLCBDSktfSURFT0dSQVBISUMs
Ci0gICAgIEhJUkFHQU5BLCBLQVRBS0FOQSwgSElSQUdBTkFfSVJPSEEsIEtBVEFLQU5BX0lST0hB
LCBMTk9ORQorICAgICBEaXNjLCBDaXJjbGUsIFNxdWFyZSwgRGVjaW1hbExpc3RTdHlsZSwgRGVj
aW1hbExlYWRpbmdaZXJvLAorICAgICBMb3dlclJvbWFuLCBVcHBlclJvbWFuLCBMb3dlckdyZWVr
LAorICAgICBMb3dlckFscGhhLCBMb3dlckxhdGluLCBVcHBlckFscGhhLCBVcHBlckxhdGluLAor
ICAgICBIZWJyZXcsIEFybWVuaWFuLCBHZW9yZ2lhbiwgQ0pLSWRlb2dyYXBoaWMsCisgICAgIEhp
cmFnYW5hLCBLYXRha2FuYSwgSGlyYWdhbmFJcm9oYSwgS2F0YWthbmFJcm9oYSwgTm9uZUxpc3RT
dHlsZQogfTsKIAogZW51bSBTdHlsZUNvbnRlbnRUeXBlIHsK
</data>
<flag name="review"
          id="27317"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>