<?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>133917</bug_id>
          
          <creation_ts>2014-06-14 14:28:29 -0700</creation_ts>
          <short_desc>Bring in a copy of std::optional for platforms that don&apos;t yet have it</short_desc>
          <delta_ts>2014-06-20 11:18:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015705</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 14:28:29 -0700</bug_when>
    <thetext>Bring in a copy of std::optional for platforms that don&apos;t yet have it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015706</commentid>
    <comment_count>1</comment_count>
      <attachid>233121</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 14:30:08 -0700</bug_when>
    <thetext>Created attachment 233121
Patch

See how close we are</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015708</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-14 14:32:31 -0700</bug_when>
    <thetext>Attachment 233121 did not pass style-queue:

ERROR: Source/WTF/wtf/StdLibExtras.h:410:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:414:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:415:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:418:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:422:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:424:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:426:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:427:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:428:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:430:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:440:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:441:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:453:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:454:  Wrong number of spaces before statement. (expected: 26)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:462:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:467:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:475:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:480:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:482:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:484:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:485:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:486:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:488:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:491:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:492:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:504:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:505:  Wrong number of spaces before statement. (expected: 26)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:513:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:514:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:514:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:518:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:519:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:519:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:523:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:524:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:524:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:524:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:525:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:525:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:531:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:532:  __base is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:534:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:537:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:539:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:541:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:547:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:547:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:551:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:551:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:553:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:554:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:554:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:555:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:558:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:559:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:560:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:561:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:562:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:566:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:569:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:570:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:571:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:572:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:573:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:577:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:581:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:583:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:595:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:599:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:600:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:613:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:617:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:621:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:622:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:633:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:634:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:635:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:635:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:636:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:636:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:637:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:638:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:639:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:647:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:655:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:656:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:657:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:658:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:659:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:670:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:671:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:672:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:673:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:674:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:688:  Use &apos;using namespace std;&apos; instead of &apos;using std::swap;&apos;.  [build/using_std] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:690:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:694:  An else sho
uld appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:695:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:697:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:701:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:702:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:715:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:715:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:761:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:763:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:765:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:767:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  value_or is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:773:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:775:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:777:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:779:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:820:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:820:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:828:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:837:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:846:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:855:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:883:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:883:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:892:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:892:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:917:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 150 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015719</commentid>
    <comment_count>3</comment_count>
      <attachid>233126</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 14:45:48 -0700</bug_when>
    <thetext>Created attachment 233126
Patch

Take2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015720</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-14 14:48:59 -0700</bug_when>
    <thetext>Attachment 233126 did not pass style-queue:

ERROR: Source/WTF/wtf/StdLibExtras.h:410:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:414:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:415:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:418:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:422:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:424:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:426:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:427:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:428:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:430:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:440:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:441:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:460:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:460:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:462:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:462:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:465:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:465:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:467:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:467:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:471:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:472:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:472:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:472:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:478:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:480:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:482:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:483:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:484:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:486:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:489:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:490:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:509:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:509:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:511:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:511:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:514:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:514:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:515:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:516:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:516:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:520:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:521:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:521:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:521:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:528:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:529:  __base is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:531:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:534:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:536:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:538:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:544:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:544:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:545:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:546:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:547:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:551:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:551:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:555:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:556:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:557:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:558:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:559:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:563:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:567:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:568:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:569:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:570:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:574:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:580:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:592:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:596:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:597:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:612:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:616:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:617:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:628:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:629:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:630:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:630:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:631:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:631:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:632:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:633:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:634:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:642:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:650:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:651:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:652:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:653:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:654:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:665:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:667:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:668:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:669:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:683:  Use &apos;using namespace std;&apos; instead of &apos;using std::swap;&apos;.  [build/using_std] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:685:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:689:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:690:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:692:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:696:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:697:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:711:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:757:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:759:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:761:  Weird number of spa
ces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:763:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  value_or is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:769:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:771:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:773:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:775:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:816:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:816:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:879:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:879:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:888:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:888:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:913:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 138 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015722</commentid>
    <comment_count>5</comment_count>
      <attachid>233127</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 14:58:35 -0700</bug_when>
    <thetext>Created attachment 233127
Patch

Take3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015723</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-14 14:59:46 -0700</bug_when>
    <thetext>Attachment 233127 did not pass style-queue:

ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:412:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:412:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:415:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:416:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:419:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:423:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:425:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:427:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:428:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:429:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:431:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:441:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:442:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:462:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:467:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:472:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:479:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:481:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:483:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:484:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:485:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:487:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:490:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:491:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:511:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:515:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:515:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:516:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:521:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:523:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:523:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:529:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:530:  __base is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:532:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:535:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:537:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:539:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:545:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:545:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:546:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:547:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:551:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:553:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:556:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:557:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:558:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:559:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:560:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:564:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:567:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:568:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:569:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:570:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:571:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:575:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:581:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:593:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:597:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:598:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:613:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:617:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:618:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:629:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:630:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:631:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:631:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:632:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:632:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:633:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:634:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:635:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:643:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:651:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:652:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:653:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:654:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:655:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:667:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:668:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:669:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:670:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:684:  Use &apos;using namespace std;&apos; instead of &apos;using std::swap;&apos;.  [build/using_std] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:686:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:690:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:691:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:693:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:697:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:698:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:712:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:758:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:760:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:762:  Weird number of spa
ces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:764:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  value_or is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:769:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:771:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:773:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:775:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:817:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:817:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:880:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:880:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:889:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:889:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:914:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 138 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015726</commentid>
    <comment_count>7</comment_count>
      <attachid>233129</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 15:20:27 -0700</bug_when>
    <thetext>Created attachment 233129
Patch

Take4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015727</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-14 15:21:28 -0700</bug_when>
    <thetext>Attachment 233129 did not pass style-queue:

ERROR: Source/WTF/wtf/StdLibExtras.h:411:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:412:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:412:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:415:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:416:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:419:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:423:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:425:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:427:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:428:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:429:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:431:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:441:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:442:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:461:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:462:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:463:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:466:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:467:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:472:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:473:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:479:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:481:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:483:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:484:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:485:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:487:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:490:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:491:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:511:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:515:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:515:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:516:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:521:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:522:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:523:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:523:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:529:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:530:  __base is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:532:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:535:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:537:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:539:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:545:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:545:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:546:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:547:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:552:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:553:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:553:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:554:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:554:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:555:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:556:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:556:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:557:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:560:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:561:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:562:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:563:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:564:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:568:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:571:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:572:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:573:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:574:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:575:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:579:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:585:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:597:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:601:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:602:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:617:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:621:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:622:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:633:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:634:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:635:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:635:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:636:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:636:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:637:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:638:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:639:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:647:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:655:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:656:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:657:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:658:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:659:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:670:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:671:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:672:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:673:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:674:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:688:  Use &apos;using namespace std;&apos; instead of &apos;using std::swap;&apos;.  [build/using_std] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:690:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:694:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:695:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:697:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:701:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:702:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:716:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:762:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:764:  Weird number of spaces at line-star
t.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:766:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:768:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  value_or is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:772:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:773:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:775:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:777:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:779:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:821:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:821:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:884:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:884:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:893:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:893:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:918:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 139 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015745</commentid>
    <comment_count>9</comment_count>
      <attachid>233134</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 19:28:26 -0700</bug_when>
    <thetext>Created attachment 233134
Patch

Take5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015746</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-14 19:30:56 -0700</bug_when>
    <thetext>Attachment 233134 did not pass style-queue:

ERROR: Source/WTF/wtf/StdLibExtras.h:439:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:440:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:440:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:443:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:444:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:447:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:451:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:453:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:455:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:456:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:457:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:459:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:468:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:469:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:488:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:488:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:489:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:490:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:490:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:493:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:493:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:494:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:495:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:495:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:499:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:500:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:500:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:500:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:501:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:501:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:506:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:508:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:510:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:511:  __null_state_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:512:  __val_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:514:  __engaged_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:517:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:518:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:537:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:537:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:538:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:539:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:539:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:542:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:542:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:543:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:544:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:544:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:548:  __optional_storage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:549:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:550:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:556:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:557:  __base is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:559:  value_type is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:562:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:564:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:572:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:572:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:573:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:574:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:575:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:579:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:580:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:580:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:581:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:581:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:582:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:583:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:583:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:584:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:587:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:588:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:589:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:590:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:591:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:595:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:598:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:599:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:600:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:601:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:602:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:606:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:612:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:624:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:628:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:629:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:644:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:648:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:649:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:660:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:661:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:662:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:662:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:663:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:663:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:664:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:665:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:666:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:674:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:682:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:683:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:684:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:685:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:686:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:697:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:698:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:699:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:700:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:701:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:715:  Use &apos;using namespace std;&apos; instead of &apos;using std::swap;&apos;.  [build/using_std] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:717:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:721:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:722:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:724:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:728:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:729:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:787:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:789:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:791:  Weird num
ber of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:793:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:797:  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]
ERROR: Source/WTF/wtf/StdLibExtras.h:797:  value_or is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:797:  __v is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:798:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:800:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:802:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:804:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/StdLibExtras.h:830:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:830:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:893:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:893:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:902:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:902:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/wtf/StdLibExtras.h:954:  Do not use &apos;using namespace std::literals::chrono_literals;&apos;.  [build/using_namespace] [4]
ERROR: Source/WTF/wtf/StdLibExtras.h:954:  std::literals::chrono_literals is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 139 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015818</commentid>
    <comment_count>11</comment_count>
      <attachid>233134</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-15 23:56:22 -0700</bug_when>
    <thetext>Comment on attachment 233134
Patch

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

&gt; Source/WTF/wtf/StdLibExtras.h:54
&gt; +#if defined(__has_include) &amp;&amp; __has_include(&lt;experimental/optional&gt;)

It won&apos;t compile with GCC, see https://bugs.webkit.org/show_bug.cgi?id=130320#c9 for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016416</commentid>
    <comment_count>12</comment_count>
      <attachid>233134</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-18 01:47:24 -0700</bug_when>
    <thetext>Comment on attachment 233134
Patch

The huge code added to Source/WTF/wtf/StdLibExtras.h seems to be copied from
https://llvm.org/svn/llvm-project/libcxx/trunk/include/experimental/optional

It would be great if you could add copyright entry and/or credit to the original author.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016505</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-18 11:19:44 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 233134 [details])
&gt; The huge code added to Source/WTF/wtf/StdLibExtras.h seems to be copied from
&gt; https://llvm.org/svn/llvm-project/libcxx/trunk/include/experimental/optional
&gt; 
&gt; It would be great if you could add copyright entry and/or credit to the original author.

Oh boy, good call.  I will when I do this for real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016880</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-06-20 01:15:36 -0700</bug_when>
    <thetext>Do we want two implementation of optional?
https://bugs.webkit.org/show_bug.cgi?id=134083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016969</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-20 11:18:54 -0700</bug_when>
    <thetext>That one will do. Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233121</attachid>
            <date>2014-06-14 14:30:08 -0700</date>
            <delta_ts>2014-06-14 14:45:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133917-20140614142943.patch</filename>
            <type>text/plain</type>
            <size>16598</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk5ODApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgaW4gYSBjb3B5IG9mIHN0ZDo6b3B0aW9uYWwgZm9y
IHBsYXRmb3JtcyB0aGF0IGRvbid0IHlldCBoYXZlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxf
c3RvcmFnZTo6fl9fb3B0aW9uYWxfc3RvcmFnZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRh
bDo6X19vcHRpb25hbF9zdG9yYWdlOjpfX29wdGlvbmFsX3N0b3JhZ2UpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxfc3RvcmFnZTo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcHRpb25hbCk6CisgICAgICAgIChzdGQ6OmV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1l
bnRhbDo6b3B0aW9uYWw6Om5vZXhjZXB0KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpv
cHRpb25hbDo6ZW1wbGFjZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw6
OnN3YXApOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcGVyYXRvci0+
KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6b3BlcmF0b3IqKToKKyAg
ICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6dmFsdWUpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjp2YWx1ZV9vcik6CisgICAgICAgIChzdGQ6OmV4cGVy
aW1lbnRhbDo6b3B0aW9uYWw6Ol9fb3BlcmF0b3JfYXJyb3cpOgorICAgICAgICAoc3RkOjpleHBl
cmltZW50YWw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wZXJh
dG9yPCk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om1ha2Vfb3B0aW9uYWwpOgorCiAyMDE0LTA2LTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBkaXNhYmxpbmcgY3NzIGppdCBvbiBhcm12Ny4gIEl0J3Mgbm90IHF1aXRlIHJlYWR5IHlldC4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDE2OTk3OCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9JdGVy
YXRvclJhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtMTAyLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEtleVR5cGUmKSBjb25zdDsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlw
ZSYpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxNYXBwZWRQZWVrVHlwZT4gZ2V0Mihjb25z
dCBLZXlUeXBlJikgY29uc3Q7CisKICAgICAvLyBSZXBsYWNlcyB0aGUgdmFsdWUgYnV0IG5vdCB0
aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAgIC8vIFJldHVybiB2YWx1
ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9jYXRpb24sCiAgICAgLy8g
YW5kIGFuIGlzTmV3RW50cnkgYm9vbGVhbiB0aGF0J3MgdHJ1ZSBpZiBhIG5ldyBlbnRyeSB3YXMg
YWRkZWQuCkBAIC0zNDMsNiArMzQ2LDE1IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBw
ZWRUcmFpdHM+OjoKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KK2F1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBN
YXBwZWRUcmFpdHM+OjpnZXQyKGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gc3RkOjpvcHRp
b25hbDxNYXBwZWRQZWVrVHlwZT4KK3sKKyAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9IGNv
bnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkubG9va3VwKGtleSk7CisgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWFwcGVkVHJh
aXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiBpbmxpbmUgYm9vbCBI
YXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTY5OTc4KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgPGNo
cm9ubz4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
IApAQCAtNDAxLDYgKzQwMiw1MjIgQEAgbmFtZXNwYWNlIGNocm9ub19saXRlcmFscyB7CiAjZW5k
aWYKIH0KIAorI2RlZmluZSBET05UX0hBVkVfT1BUSU9OQUwgMQorCisjaWYgRE9OVF9IQVZFX09Q
VElPTkFMCituYW1lc3BhY2Ugc3RkIHsgbmFtZXNwYWNlIGV4cGVyaW1lbnRhbCB7CisKK3N0cnVj
dCBpbl9wbGFjZV90IHt9OworQ09OU1RFWFBSIGluX3BsYWNlX3QgaW5fcGxhY2V7fTsKKworc3Ry
dWN0IG51bGxvcHRfdAoreworICAgIGV4cGxpY2l0IENPTlNURVhQUiBudWxsb3B0X3QoaW50KSBu
b2V4Y2VwdCB7fQorfTsKKworQ09OU1RFWFBSIG51bGxvcHRfdCBudWxsb3B0ezB9OworCit0ZW1w
bGF0ZSA8Y2xhc3MgX1RwLCBib29sID0gaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxfVHA+Ojp2
YWx1ZT4KK2NsYXNzIF9fb3B0aW9uYWxfc3RvcmFnZQoreworcHJvdGVjdGVkOgorICAgIHR5cGVk
ZWYgX1RwIHZhbHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7CisgICAgICAgIGNoYXIgX19udWxs
X3N0YXRlXzsKKyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87CisgICAgfTsKKyAgICBib29sIF9f
ZW5nYWdlZF8gPSBmYWxzZTsKKworICAgIAorICAgIH5fX29wdGlvbmFsX3N0b3JhZ2UoKQorICAg
IHsKKyAgICAgICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICBfX3ZhbF8ufnZhbHVlX3R5
cGUoKTsKKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKCkg
bm9leGNlcHQKKyAgICAgICAgOiAgX19udWxsX3N0YXRlXygnXDAnKSB7fQorCisgICAgCisgICAg
X19vcHRpb25hbF9zdG9yYWdlKGNvbnN0IF9fb3B0aW9uYWxfc3RvcmFnZSYgX194KQorICAgICAg
ICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxfKSkg
dmFsdWVfdHlwZShfX3guX192YWxfKTsKKyAgICAgICAgfQorCisgICAgCisgICAgX19vcHRpb25h
bF9zdG9yYWdlKF9fb3B0aW9uYWxfc3RvcmFnZSYmIF9feCkKKyAgICAgICAgICAgICAgICAgICAg
ICBub2V4Y2VwdChpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6dmFs
dWUpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdlZF8pCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIDo6bmV3KGFkZHJlc3Nv
ZihfX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX194Ll9fdmFsXykpOworICAgICAgICB9CisKKyAg
ICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKGNvbnN0IHZhbHVlX3R5cGUmIF9f
dikKKyAgICAgICAgOiAgX192YWxfKF9fdiksCisgICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkg
e30KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UodmFsdWVfdHlwZSYm
IF9fdikKKyAgICAgICAgOiAgX192YWxfKG1vdmUoX192KSksCisgICAgICAgICAgIF9fZW5nYWdl
ZF8odHJ1ZSkge30KKworICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBfQXJncz4KKyAgICAKKyAgICBD
T05TVEVYUFIKKyAgICBleHBsaWNpdCBfX29wdGlvbmFsX3N0b3JhZ2UoaW5fcGxhY2VfdCwgX0Fy
Z3MmJi4uLiBfX2FyZ3MpCisgICAgICAgOiAgX192YWxfKGZvcndhcmQ8X0FyZ3M+KF9fYXJncyku
Li4pLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9Cit9OworCit0ZW1wbGF0ZSA8Y2xh
c3MgX1RwPgorY2xhc3MgX19vcHRpb25hbF9zdG9yYWdlPF9UcCwgdHJ1ZT4KK3sKK3Byb3RlY3Rl
ZDoKKyAgICB0eXBlZGVmIF9UcCB2YWx1ZV90eXBlOworICAgIHVuaW9uCisgICAgeworICAgICAg
ICBjaGFyIF9fbnVsbF9zdGF0ZV87CisgICAgICAgIHZhbHVlX3R5cGUgX192YWxfOworICAgIH07
CisgICAgYm9vbCBfX2VuZ2FnZWRfID0gZmFsc2U7CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19v
cHRpb25hbF9zdG9yYWdlKCkgbm9leGNlcHQKKyAgICAgICAgOiAgX19udWxsX3N0YXRlXygnXDAn
KSB7fQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKGNvbnN0IF9fb3B0aW9uYWxfc3Rv
cmFnZSYgX194KQorICAgICAgICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhh
ZGRyZXNzb2YoX192YWxfKSkgdmFsdWVfdHlwZShfX3guX192YWxfKTsKKyAgICAgICAgfQorCisg
ICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKF9fb3B0aW9uYWxfc3RvcmFnZSYmIF9feCkKKyAg
ICAgICAgICAgICAgICAgICAgICBub2V4Y2VwdChpc19ub3Rocm93X21vdmVfY29uc3RydWN0aWJs
ZTx2YWx1ZV90eXBlPjo6dmFsdWUpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdl
ZF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAg
ICAgIDo6bmV3KGFkZHJlc3NvZihfX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX194Ll9fdmFsXykp
OworICAgICAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKGNv
bnN0IHZhbHVlX3R5cGUmIF9fdikKKyAgICAgICAgOiAgX192YWxfKF9fdiksCisgICAgICAgICAg
IF9fZW5nYWdlZF8odHJ1ZSkge30KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0
b3JhZ2UodmFsdWVfdHlwZSYmIF9fdikKKyAgICAgICAgOiAgX192YWxfKG1vdmUoX192KSksCisg
ICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkge30KKworICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBf
QXJncz4KKyAgICBDT05TVEVYUFIKKyAgICBleHBsaWNpdCBfX29wdGlvbmFsX3N0b3JhZ2UoaW5f
cGxhY2VfdCwgX0FyZ3MmJi4uLiBfX2FyZ3MpCisgICAgICAgOiAgX192YWxfKGZvcndhcmQ8X0Fy
Z3M+KF9fYXJncykuLi4pLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9Cit9OworCit0
ZW1wbGF0ZSA8Y2xhc3MgX1RwPgorY2xhc3Mgb3B0aW9uYWwKKyAgICA6IHByaXZhdGUgX19vcHRp
b25hbF9zdG9yYWdlPF9UcD4KK3sKKyAgICB0eXBlZGVmIF9fb3B0aW9uYWxfc3RvcmFnZTxfVHA+
IF9fYmFzZTsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIF9UcCB2YWx1ZV90eXBlOworCisgICAgc3Rh
dGljX2Fzc2VydCghaXNfcmVmZXJlbmNlPHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAg
ICAgIkluc3RhbnRpYXRpb24gb2Ygb3B0aW9uYWwgd2l0aCBhIHJlZmVyZW5jZSB0eXBlIGlzIGls
bC1mb3JtZWQuIik7CisgICAgc3RhdGljX2Fzc2VydCghaXNfc2FtZTx0eXBlbmFtZSByZW1vdmVf
Y3Y8dmFsdWVfdHlwZT46OnR5cGUsIGluX3BsYWNlX3Q+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAg
Ikluc3RhbnRpYXRpb24gb2Ygb3B0aW9uYWwgd2l0aCBhIGluX3BsYWNlX3QgdHlwZSBpcyBpbGwt
Zm9ybWVkLiIpOworICAgIHN0YXRpY19hc3NlcnQoIWlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX2N2
PHZhbHVlX3R5cGU+Ojp0eXBlLCBudWxsb3B0X3Q+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgIklu
c3RhbnRpYXRpb24gb2Ygb3B0aW9uYWwgd2l0aCBhIG51bGxvcHRfdCB0eXBlIGlzIGlsbC1mb3Jt
ZWQuIik7CisgICAgc3RhdGljX2Fzc2VydChpc19vYmplY3Q8dmFsdWVfdHlwZT46OnZhbHVlLAor
ICAgICAgICAiSW5zdGFudGlhdGlvbiBvZiBvcHRpb25hbCB3aXRoIGEgbm9uLW9iamVjdCB0eXBl
IGlzIHVuZGVmaW5lZCBiZWhhdmlvci4iKTsKKyAgICBzdGF0aWNfYXNzZXJ0KGlzX25vdGhyb3df
ZGVzdHJ1Y3RpYmxlPHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkluc3RhbnRpYXRpb24g
b2Ygb3B0aW9uYWwgd2l0aCBhbiBvYmplY3QgdHlwZSB0aGF0IGlzIG5vdCBub2V4Y2VwdCBkZXN0
cnVjdGlibGUgaXMgdW5kZWZpbmVkIGJlaGF2aW9yLiIpOworCisgICAgIENPTlNURVhQUiBvcHRp
b25hbCgpIG5vZXhjZXB0IHt9CisgICAgIG9wdGlvbmFsKGNvbnN0IG9wdGlvbmFsJikgPSBkZWZh
dWx0OworICAgICBvcHRpb25hbChvcHRpb25hbCYmKSA9IGRlZmF1bHQ7CisgICAgIH5vcHRpb25h
bCgpID0gZGVmYXVsdDsKKyAgICAgQ09OU1RFWFBSIG9wdGlvbmFsKG51bGxvcHRfdCkgbm9leGNl
cHQge30KKyAgICAgQ09OU1RFWFBSIG9wdGlvbmFsKGNvbnN0IHZhbHVlX3R5cGUmIF9fdikKKyAg
ICAgICAgOiBfX2Jhc2UoX192KSB7fQorICAgICBDT05TVEVYUFIgb3B0aW9uYWwodmFsdWVfdHlw
ZSYmIF9fdikKKyAgICAgICAgOiBfX2Jhc2UobW92ZShfX3YpKSB7fQorCisgICAgdGVtcGxhdGUg
PGNsYXNzLi4uIF9BcmdzLAorICAgICAgICAgICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9p
ZgorICAgICAgICAgICAgICAgICAgICAgIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlz
X2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZSwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAgICAg
ICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICA+CisgICAgCisgICAgQ09OU1RFWFBSCisg
ICAgZXhwbGljaXQgb3B0aW9uYWwoaW5fcGxhY2VfdCwgX0FyZ3MmJi4uLiBfX2FyZ3MpCisgICAg
ICAgIDogX19iYXNlKGluX3BsYWNlLCBmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKSB7fQorCisg
ICAgdGVtcGxhdGUgPGNsYXNzIF9VcCwgY2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAgICAgIGNs
YXNzID0gdHlwZW5hbWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBpbml0aWFs
aXplcl9saXN0PF9VcD4mLCBfQXJncy4uLj46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAg
Pjo6dHlwZQorICAgICAgICAgICAgID4KKyAgICAKKyAgICBDT05TVEVYUFIKKyAgICBleHBsaWNp
dCBvcHRpb25hbChpbl9wbGFjZV90LCBpbml0aWFsaXplcl9saXN0PF9VcD4gX19pbCwgX0FyZ3Mm
Ji4uLiBfX2FyZ3MpCisgICAgICAgIDogX19iYXNlKGluX3BsYWNlLCBfX2lsLCBmb3J3YXJkPF9B
cmdzPihfX2FyZ3MpLi4uKSB7fQorCisgICAgCisgICAgb3B0aW9uYWwmIG9wZXJhdG9yPShudWxs
b3B0X3QpIG5vZXhjZXB0CisgICAgeworICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAg
ICAgICAgeworICAgICAgICAgICAgdGhpcy0+X192YWxfLn52YWx1ZV90eXBlKCk7CisgICAgICAg
ICAgICB0aGlzLT5fX2VuZ2FnZWRfID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
ICp0aGlzOworICAgIH0KKworICAgIAorICAgIG9wdGlvbmFsJgorICAgIG9wZXJhdG9yPShjb25z
dCBvcHRpb25hbCYgX19vcHQpCisgICAgeworICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXyA9
PSBfX29wdC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+X19l
bmdhZ2VkXykKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8gPSBfX29wdC5fX3ZhbF87Cisg
ICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+
X19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8ufnZhbHVlX3R5cGUoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+
X192YWxfKSkgdmFsdWVfdHlwZShfX29wdC5fX3ZhbF8pOworICAgICAgICAgICAgdGhpcy0+X19l
bmdhZ2VkXyA9IF9fb3B0Ll9fZW5nYWdlZF87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICp0
aGlzOworICAgIH0KKworICAgIAorICAgIG9wdGlvbmFsJgorICAgIG9wZXJhdG9yPShvcHRpb25h
bCYmIF9fb3B0KQorICAgICAgICBub2V4Y2VwdChpc19ub3Rocm93X21vdmVfYXNzaWduYWJsZTx2
YWx1ZV90eXBlPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICAgaXNfbm90aHJvd19tb3ZlX2Nv
bnN0cnVjdGlibGU8dmFsdWVfdHlwZT46OnZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMt
Pl9fZW5nYWdlZF8gPT0gX19vcHQuX19lbmdhZ2VkXykKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHRoaXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfID0gbW92
ZShfX29wdC5fX3ZhbF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192
YWxfLn52YWx1ZV90eXBlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgOjpu
ZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShfX29wdC5fX3ZhbF8p
KTsKKyAgICAgICAgICAgIHRoaXMtPl9fZW5nYWdlZF8gPSBfX29wdC5fX2VuZ2FnZWRfOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgX1VwLAorICAgICAgICAgICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9pZgorICAgICAg
ICAgICAgICAgICAgICAgIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfc2FtZTx0eXBl
bmFtZSByZW1vdmVfcmVmZXJlbmNlPF9VcD46OnR5cGUsIHZhbHVlX3R5cGU+Ojp2YWx1ZSAmJgor
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIF9V
cD46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2Fzc2lnbmFibGU8dmFs
dWVfdHlwZSYsIF9VcD46OnZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorICAg
ICAgICAgICAgID4KKyAgICAKKyAgICBvcHRpb25hbCYKKyAgICBvcGVyYXRvcj0oX1VwJiYgX192
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICB0aGlz
LT5fX3ZhbF8gPSBmb3J3YXJkPF9VcD4oX192KTsKKyAgICAgICAgZWxzZQorICAgICAgICB7Cisg
ICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+X192YWxfKSkgdmFsdWVfdHlwZShmb3J3
YXJkPF9VcD4oX192KSk7CisgICAgICAgICAgICB0aGlzLT5fX2VuZ2FnZWRfID0gdHJ1ZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNs
YXNzLi4uIF9BcmdzLAorICAgICAgICAgICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9pZgor
ICAgICAgICAgICAgICAgICAgICAgIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29u
c3RydWN0aWJsZTx2YWx1ZV90eXBlLCBfQXJncy4uLj46OnZhbHVlCisgICAgICAgICAgICAgICAg
ICAgICAgPjo6dHlwZQorICAgICAgICAgICAgID4KKyAgICAKKyAgICB2b2lkCisgICAgZW1wbGFj
ZShfQXJncyYmLi4uIF9fYXJncykKKyAgICB7CisgICAgICAgICp0aGlzID0gbnVsbG9wdDsKKyAg
ICAgICAgOjpuZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoZm9yd2FyZDxf
QXJncz4oX19hcmdzKS4uLik7CisgICAgICAgIHRoaXMtPl9fZW5nYWdlZF8gPSB0cnVlOworICAg
IH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXAsIGNsYXNzLi4uIF9BcmdzLAorICAgICAgICAg
ICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9pZgorICAgICAgICAgICAgICAgICAgICAgIDwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBp
bml0aWFsaXplcl9saXN0PF9VcD4mLCBfQXJncy4uLj46OnZhbHVlCisgICAgICAgICAgICAgICAg
ICAgICAgPjo6dHlwZQorICAgICAgICAgICAgID4KKyAgICAKKyAgICB2b2lkCisgICAgZW1wbGFj
ZShpbml0aWFsaXplcl9saXN0PF9VcD4gX19pbCwgX0FyZ3MmJi4uLiBfX2FyZ3MpCisgICAgewor
ICAgICAgICAqdGhpcyA9IG51bGxvcHQ7CisgICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlzLT5f
X3ZhbF8pKSB2YWx1ZV90eXBlKF9faWwsIGZvcndhcmQ8X0FyZ3M+KF9fYXJncykuLi4pOworICAg
ICAgICB0aGlzLT5fX2VuZ2FnZWRfID0gdHJ1ZTsKKyAgICB9CisKKyAgICAKKyAgICB2b2lkCisg
ICAgc3dhcChvcHRpb25hbCYgX19vcHQpCisgICAgeworICAgICAgICB1c2luZyBzdGQ6OnN3YXA7
CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfID09IF9fb3B0Ll9fZW5nYWdlZF8pCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAg
IHN3YXAodGhpcy0+X192YWxfLCBfX29wdC5fX3ZhbF8pOworICAgICAgICB9CisgICAgICAgIGVs
c2UKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdlZF8pCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgOjpuZXcoYWRkcmVzc29mKF9fb3B0Ll9fdmFsXykpIHZh
bHVlX3R5cGUobW92ZSh0aGlzLT5fX3ZhbF8pKTsKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3Zh
bF8ufnZhbHVlX3R5cGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+X192YWxfKSkg
dmFsdWVfdHlwZShtb3ZlKF9fb3B0Ll9fdmFsXykpOworICAgICAgICAgICAgICAgIF9fb3B0Ll9f
dmFsXy5+dmFsdWVfdHlwZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dhcCh0aGlz
LT5fX2VuZ2FnZWRfLCBfX29wdC5fX2VuZ2FnZWRfKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IAorICAgIENPTlNURVhQUgorICAgIHZhbHVlX3R5cGUgY29uc3QqCisgICAgb3BlcmF0b3ItPigp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gX19vcGVyYXRvcl9hcnJvdyhfX2hhc19vcGVy
YXRvcl9hZGRyZXNzb2Y8dmFsdWVfdHlwZT57fSk7CisgICAgfQorCisgICAgCisgICAgdmFsdWVf
dHlwZSoKKyAgICBvcGVyYXRvci0+KCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UodGhpcy0+X19lbmdhZ2VkXywgIm9wdGlvbmFsIG9wZXJhdG9yLT4gY2FsbGVkIGZvciBkaXNl
bmdhZ2VkIHZhbHVlIik7CisgICAgICAgIHJldHVybiBhZGRyZXNzb2YodGhpcy0+X192YWxfKTsK
KyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIKKyAgICBjb25zdCB2YWx1ZV90eXBlJgorICAg
IG9wZXJhdG9yKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy0+X192YWxfOwor
ICAgIH0KKworICAgIAorICAgIHZhbHVlX3R5cGUmCisgICAgb3BlcmF0b3IqKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UodGhpcy0+X19lbmdhZ2VkXywgIm9wdGlvbmFsIG9w
ZXJhdG9yKiBjYWxsZWQgZm9yIGRpc2VuZ2FnZWQgdmFsdWUiKTsKKyAgICAgICAgcmV0dXJuIHRo
aXMtPl9fdmFsXzsKKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgZXhwbGljaXQgb3BlcmF0
b3IgYm9vbCgpIGNvbnN0IG5vZXhjZXB0IHtyZXR1cm4gdGhpcy0+X19lbmdhZ2VkXzt9CisKKyAg
ICAKKyAgICBDT05TVEVYUFIgdmFsdWVfdHlwZSBjb25zdCYgdmFsdWUoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMtPl9fdmFsXzsKKyAgICB9CisKKyAgICAKKyAgICB2YWx1ZV90
eXBlJiB2YWx1ZSgpCisgICAgeworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHRoaXMtPl9f
ZW5nYWdlZF8sICJvcHRpb25hbDxUPjo6dmFsdWU6IG5vdCBlbmdhZ2VkIik7CisgICAgICAgIHJl
dHVybiB0aGlzLT5fX3ZhbF87CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIF9VcD4KKyAg
ICAKKyAgICBDT05TVEVYUFIgdmFsdWVfdHlwZSB2YWx1ZV9vcihfVXAmJiBfX3YpIGNvbnN0Jgor
ICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChpc19jb3B5X2NvbnN0cnVjdGlibGU8dmFsdWVf
dHlwZT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25hbDxUPjo6dmFsdWVf
b3I6IFQgbXVzdCBiZSBjb3B5IGNvbnN0cnVjdGlibGUiKTsKKyAgICAgICAgc3RhdGljX2Fzc2Vy
dChpc19jb252ZXJ0aWJsZTxfVXAsIHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAib3B0aW9uYWw8VD46OnZhbHVlX29yOiBVIG11c3QgYmUgY29udmVydGlibGUgdG8g
VCIpOworICAgICAgICByZXR1cm4gdGhpcy0+X19lbmdhZ2VkXyA/IHRoaXMtPl9fdmFsXyA6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dmFsdWVfdHlwZT4o
Zm9yd2FyZDxfVXA+KF9fdikpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXA+Cisg
ICAgCisgICAgdmFsdWVfdHlwZSB2YWx1ZV9vcihfVXAmJiBfX3YpICYmCisgICAgeworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KGlzX21vdmVfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6dmFsdWUs
CisgICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVCBtdXN0IGJl
IG1vdmUgY29uc3RydWN0aWJsZSIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX2NvbnZlcnRp
YmxlPF9VcCwgdmFsdWVfdHlwZT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJvcHRp
b25hbDxUPjo6dmFsdWVfb3I6IFUgbXVzdCBiZSBjb252ZXJ0aWJsZSB0byBUIik7CisgICAgICAg
IHJldHVybiB0aGlzLT5fX2VuZ2FnZWRfID8gbW92ZSh0aGlzLT5fX3ZhbF8pIDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPihmb3J3YXJk
PF9VcD4oX192KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIAorICAgIHZhbHVlX3R5cGUgY29u
c3QqCisgICAgX19vcGVyYXRvcl9hcnJvdyh0cnVlX3R5cGUpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gYWRkcmVzc29mKHRoaXMtPl9fdmFsXyk7CisgICAgfQorCisgICAgCisgICAgQ09O
U1RFWFBSCisgICAgdmFsdWVfdHlwZSBjb25zdCoKKyAgICBfX29wZXJhdG9yX2Fycm93KGZhbHNl
X3R5cGUpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gJnRoaXMtPl9fdmFsXzsKKyAgICB9
Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorYm9vbAorb3BlcmF0b3I9PShj
b25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feSkKK3sKKyAg
ICBpZiAoc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSAhPSBzdGF0aWNfY2FzdDxib29sPihfX3kpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihfX3gpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gKl9feCA9PSAqX195OworfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorYm9vbAorb3BlcmF0b3I8KGNvbnN0IG9wdGlvbmFs
PF9UcD4mIF9feCwgY29uc3Qgb3B0aW9uYWw8X1RwPiYgX195KQoreworICAgIGlmICghc3RhdGlj
X2Nhc3Q8Ym9vbD4oX195KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghc3RhdGlj
X2Nhc3Q8Ym9vbD4oX194KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGxlc3M8
X1RwPnt9KCpfX3gsICpfX3kpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAor
Q09OU1RFWFBSCitib29sCitvcGVyYXRvcj09KGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCwgbnVs
bG9wdF90KSBub2V4Y2VwdAoreworICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8Ym9vbD4oX194KTsK
K30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3Bl
cmF0b3I9PShudWxsb3B0X3QsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCkgbm9leGNlcHQKK3sK
KyAgICByZXR1cm4gIXN0YXRpY19jYXN0PGJvb2w+KF9feCk7Cit9CisKK3RlbXBsYXRlIDxjbGFz
cyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBvcHRpb25h
bDxfVHA+JiwgbnVsbG9wdF90KSBub2V4Y2VwdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8
KG51bGxvcHRfdCwgY29uc3Qgb3B0aW9uYWw8X1RwPiYgX194KSBub2V4Y2VwdAoreworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxib29sPihfX3gpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgor
aW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcj09KGNvbnN0IG9wdGlvbmFsPF9UcD4m
IF9feCwgY29uc3QgX1RwJiBfX3YpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9f
eCkgPyAqX194ID09IF9fdiA6IGZhbHNlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5s
aW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcj09KGNvbnN0IF9UcCYgX192LCBjb25zdCBv
cHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9feCkg
PyAqX194ID09IF9fdiA6IGZhbHNlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5l
IAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcjwoY29uc3Qgb3B0aW9uYWw8X1RwPiYgX194LCBj
b25zdCBfVHAmIF9fdikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSA/IGxl
c3M8X1RwPnt9KCpfX3gsIF9fdikgOiB0cnVlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgor
aW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcjwoY29uc3QgX1RwJiBfX3YsIGNvbnN0
IG9wdGlvbmFsPF9UcD4mIF9feCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194
KSA/IGxlc3M8X1RwPnt9KF9fdiwgKl9feCkgOiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IF9UcD4KK2lubGluZSAKK3ZvaWQKK3N3YXAob3B0aW9uYWw8X1RwPiYgX194LCBvcHRpb25hbDxf
VHA+JiBfX3kpIG5vZXhjZXB0KG5vZXhjZXB0KF9feC5zd2FwKF9feSkpKQoreworICAgIF9feC5z
d2FwKF9feSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIK
K29wdGlvbmFsPHR5cGVuYW1lIGRlY2F5PF9UcD46OnR5cGU+CittYWtlX29wdGlvbmFsKF9UcCYm
IF9fdikKK3sKKyAgICByZXR1cm4gb3B0aW9uYWw8dHlwZW5hbWUgZGVjYXk8X1RwPjo6dHlwZT4o
Zm9yd2FyZDxfVHA+KF9fdikpOworfQorCit9IC8vIG5hbWVzcGFjZSBleHBlcmltZW50YWwKKwor
dXNpbmcgZXhwZXJpbWVudGFsOjpudWxsb3B0OwordXNpbmcgZXhwZXJpbWVudGFsOjpvcHRpb25h
bDsKKworfSAgLy8gbmFtZXNwYWNlIHN0ZAorCisjZW5kaWYgLy8gRE9OVF9IQVZFX09QVElPTkFM
CisKIHVzaW5nIFdURjo6S0I7CiB1c2luZyBXVEY6Ok1COwogdXNpbmcgV1RGOjppc0NvbXBpbGF0
aW9uVGhyZWFkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233126</attachid>
            <date>2014-06-14 14:45:48 -0700</date>
            <delta_ts>2014-06-14 14:58:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133917-20140614144522.patch</filename>
            <type>text/plain</type>
            <size>16229</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk5ODApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgaW4gYSBjb3B5IG9mIHN0ZDo6b3B0aW9uYWwgZm9y
IHBsYXRmb3JtcyB0aGF0IGRvbid0IHlldCBoYXZlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxf
c3RvcmFnZTo6fl9fb3B0aW9uYWxfc3RvcmFnZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRh
bDo6X19vcHRpb25hbF9zdG9yYWdlOjpfX29wdGlvbmFsX3N0b3JhZ2UpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxfc3RvcmFnZTo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcHRpb25hbCk6CisgICAgICAgIChzdGQ6OmV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1l
bnRhbDo6b3B0aW9uYWw6Om5vZXhjZXB0KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpv
cHRpb25hbDo6ZW1wbGFjZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw6
OnN3YXApOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcGVyYXRvci0+
KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6b3BlcmF0b3IqKToKKyAg
ICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6dmFsdWUpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjp2YWx1ZV9vcik6CisgICAgICAgIChzdGQ6OmV4cGVy
aW1lbnRhbDo6b3B0aW9uYWw6Ol9fb3BlcmF0b3JfYXJyb3cpOgorICAgICAgICAoc3RkOjpleHBl
cmltZW50YWw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wZXJh
dG9yPCk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om1ha2Vfb3B0aW9uYWwpOgorCiAyMDE0LTA2LTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBkaXNhYmxpbmcgY3NzIGppdCBvbiBhcm12Ny4gIEl0J3Mgbm90IHF1aXRlIHJlYWR5IHlldC4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDE2OTk3OCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9JdGVy
YXRvclJhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtMTAyLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEtleVR5cGUmKSBjb25zdDsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlw
ZSYpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxNYXBwZWRQZWVrVHlwZT4gZ2V0Mihjb25z
dCBLZXlUeXBlJikgY29uc3Q7CisKICAgICAvLyBSZXBsYWNlcyB0aGUgdmFsdWUgYnV0IG5vdCB0
aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAgIC8vIFJldHVybiB2YWx1
ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9jYXRpb24sCiAgICAgLy8g
YW5kIGFuIGlzTmV3RW50cnkgYm9vbGVhbiB0aGF0J3MgdHJ1ZSBpZiBhIG5ldyBlbnRyeSB3YXMg
YWRkZWQuCkBAIC0zNDMsNiArMzQ2LDE1IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBw
ZWRUcmFpdHM+OjoKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KK2F1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBN
YXBwZWRUcmFpdHM+OjpnZXQyKGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gc3RkOjpvcHRp
b25hbDxNYXBwZWRQZWVrVHlwZT4KK3sKKyAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9IGNv
bnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkubG9va3VwKGtleSk7CisgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWFwcGVkVHJh
aXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiBpbmxpbmUgYm9vbCBI
YXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTY5OTc4KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgPGNo
cm9ubz4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
IApAQCAtNDAxLDYgKzQwMiw1MTggQEAgbmFtZXNwYWNlIGNocm9ub19saXRlcmFscyB7CiAjZW5k
aWYKIH0KIAorI2RlZmluZSBET05UX0hBVkVfT1BUSU9OQUwgMQorCisjaWYgRE9OVF9IQVZFX09Q
VElPTkFMCituYW1lc3BhY2Ugc3RkIHsgbmFtZXNwYWNlIGV4cGVyaW1lbnRhbCB7CisKK3N0cnVj
dCBpbl9wbGFjZV90IHt9OworQ09OU1RFWFBSIGluX3BsYWNlX3QgaW5fcGxhY2V7fTsKKworc3Ry
dWN0IG51bGxvcHRfdAoreworICAgIGV4cGxpY2l0IENPTlNURVhQUiBudWxsb3B0X3QoaW50KSB7
fQorfTsKKworQ09OU1RFWFBSIG51bGxvcHRfdCBudWxsb3B0ezB9OworCit0ZW1wbGF0ZSA8Y2xh
c3MgX1RwLCBib29sID0gaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxfVHA+Ojp2YWx1ZT4KK2Ns
YXNzIF9fb3B0aW9uYWxfc3RvcmFnZQoreworcHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZh
bHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsK
KyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8g
PSBmYWxzZTsKKworICAgIAorICAgIH5fX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgIHsKKyAgICAg
ICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICBfX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAg
ICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKCkKKyAgICAgICAg
OiAgX19udWxsX3N0YXRlXygnXDAnKSB7fQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdl
KGNvbnN0IF9fb3B0aW9uYWxfc3RvcmFnZSYgX194KQorICAgICAgICA6ICBfX2VuZ2FnZWRfKF9f
eC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAg
ICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxfKSkgdmFsdWVfdHlwZShfX3guX192
YWxfKTsKKyAgICAgICAgfQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKF9fb3B0aW9u
YWxfc3RvcmFnZSYmIF9feCkKKyAgICAgICAgOiAgX19lbmdhZ2VkXyhfX3guX19lbmdhZ2VkXykK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAg
OjpuZXcoYWRkcmVzc29mKF9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShfX3guX192YWxfKSk7Cisg
ICAgICAgIH0KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3Qg
dmFsdWVfdHlwZSYgX192KQorICAgICAgICA6ICBfX3ZhbF8oX192KSwKKyAgICAgICAgICAgX19l
bmdhZ2VkXyh0cnVlKSB7fQorCisgICAgCisgICAgQ09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFn
ZSh2YWx1ZV90eXBlJiYgX192KQorICAgICAgICA6ICBfX3ZhbF8obW92ZShfX3YpKSwKKyAgICAg
ICAgICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIF9Bcmdz
PgorICAgIENPTlNURVhQUgorICAgIGV4cGxpY2l0IF9fb3B0aW9uYWxfc3RvcmFnZShpbl9wbGFj
ZV90LCBfQXJncyYmLi4uIF9fYXJncykKKyAgICAgICA6ICBfX3ZhbF8oZm9yd2FyZDxfQXJncz4o
X19hcmdzKS4uLiksCisgICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkge30KK307CisKK3RlbXBs
YXRlIDxjbGFzcyBfVHA+CitjbGFzcyBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwLCB0cnVlPgorewor
cHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZhbHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7
CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsKKyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87
CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8gPSBmYWxzZTsKKworICAgIAorICAgIENPTlNU
RVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgICAgICA6ICBfX251bGxfc3RhdGVfKCdcMCcp
IHt9CisKKyAgICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3QgX19vcHRpb25hbF9zdG9y
YWdlJiBfX3gpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdlZF8pCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIDo6bmV3KGFk
ZHJlc3NvZihfX3ZhbF8pKSB2YWx1ZV90eXBlKF9feC5fX3ZhbF8pOworICAgICAgICB9CisKKyAg
ICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoX19vcHRpb25hbF9zdG9yYWdlJiYgX194KQorICAg
ICAgICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxf
KSkgdmFsdWVfdHlwZShtb3ZlKF9feC5fX3ZhbF8pKTsKKyAgICAgICAgfQorCisgICAgCisgICAg
Q09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFnZShjb25zdCB2YWx1ZV90eXBlJiBfX3YpCisgICAg
ICAgIDogIF9fdmFsXyhfX3YpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9CisKKyAg
ICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKHZhbHVlX3R5cGUmJiBfX3YpCisg
ICAgICAgIDogIF9fdmFsXyhtb3ZlKF9fdikpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUp
IHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3M+CisgICAgQ09OU1RFWFBSCisgICAg
ZXhwbGljaXQgX19vcHRpb25hbF9zdG9yYWdlKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4gX19hcmdz
KQorICAgICAgIDogIF9fdmFsXyhmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKSwKKyAgICAgICAg
ICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorfTsKKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2NsYXNz
IG9wdGlvbmFsCisgICAgOiBwcml2YXRlIF9fb3B0aW9uYWxfc3RvcmFnZTxfVHA+Cit7CisgICAg
dHlwZWRlZiBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwPiBfX2Jhc2U7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBfVHAgdmFsdWVfdHlwZTsKKworICAgIHN0YXRpY19hc3NlcnQoIWlzX3JlZmVyZW5jZTx2
YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlv
bmFsIHdpdGggYSByZWZlcmVuY2UgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19h
c3NlcnQoIWlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX2N2PHZhbHVlX3R5cGU+Ojp0eXBlLCBpbl9w
bGFjZV90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFs
IHdpdGggYSBpbl9wbGFjZV90IHR5cGUgaXMgaWxsLWZvcm1lZC4iKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9jdjx2YWx1ZV90eXBlPjo6dHlwZSwgbnVsbG9w
dF90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdp
dGggYSBudWxsb3B0X3QgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19hc3NlcnQo
aXNfb2JqZWN0PHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkluc3RhbnRpYXRpb24gb2Yg
b3B0aW9uYWwgd2l0aCBhIG5vbi1vYmplY3QgdHlwZSBpcyB1bmRlZmluZWQgYmVoYXZpb3IuIik7
CisgICAgc3RhdGljX2Fzc2VydChpc19ub3Rocm93X2Rlc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6
dmFsdWUsCisgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdpdGggYW4gb2JqZWN0
IHR5cGUgdGhhdCBpcyBub3Qgbm9leGNlcHQgZGVzdHJ1Y3RpYmxlIGlzIHVuZGVmaW5lZCBiZWhh
dmlvci4iKTsKKworICAgICBDT05TVEVYUFIgb3B0aW9uYWwoKSB7fQorICAgICBvcHRpb25hbChj
b25zdCBvcHRpb25hbCYpID0gZGVmYXVsdDsKKyAgICAgb3B0aW9uYWwob3B0aW9uYWwmJikgPSBk
ZWZhdWx0OworICAgICB+b3B0aW9uYWwoKSA9IGRlZmF1bHQ7CisgICAgIENPTlNURVhQUiBvcHRp
b25hbChudWxsb3B0X3QpIHt9CisgICAgIENPTlNURVhQUiBvcHRpb25hbChjb25zdCB2YWx1ZV90
eXBlJiBfX3YpCisgICAgICAgIDogX19iYXNlKF9fdikge30KKyAgICAgQ09OU1RFWFBSIG9wdGlv
bmFsKHZhbHVlX3R5cGUmJiBfX3YpCisgICAgICAgIDogX19iYXNlKG1vdmUoX192KSkge30KKwor
ICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBfQXJncywKKyAgICAgICAgICAgICAgY2xhc3MgPSB0eXBl
bmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIF9BcmdzLi4uPjo6dmFsdWUK
KyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAorICAg
IENPTlNURVhQUgorICAgIGV4cGxpY2l0IG9wdGlvbmFsKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4g
X19hcmdzKQorICAgICAgICA6IF9fYmFzZShpbl9wbGFjZSwgZm9yd2FyZDxfQXJncz4oX19hcmdz
KS4uLikge30KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXAsIGNsYXNzLi4uIF9BcmdzLAorICAg
ICAgICAgICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9pZgorICAgICAgICAgICAgICAgICAg
ICAgIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVf
dHlwZSwgaW5pdGlhbGl6ZXJfbGlzdDxfVXA+JiwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAg
ICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICA+CisgICAgCisgICAgQ09OU1RFWFBS
CisgICAgZXhwbGljaXQgb3B0aW9uYWwoaW5fcGxhY2VfdCwgaW5pdGlhbGl6ZXJfbGlzdDxfVXA+
IF9faWwsIF9BcmdzJiYuLi4gX19hcmdzKQorICAgICAgICA6IF9fYmFzZShpbl9wbGFjZSwgX19p
bCwgZm9yd2FyZDxfQXJncz4oX19hcmdzKS4uLikge30KKworICAgIAorICAgIG9wdGlvbmFsJiBv
cGVyYXRvcj0obnVsbG9wdF90KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdlZF8p
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgpOworICAg
ICAgICAgICAgdGhpcy0+X19lbmdhZ2VkXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICAKKyAgICBvcHRpb25hbCYKKyAgICBvcGVyYXRvcj0o
Y29uc3Qgb3B0aW9uYWwmIF9fb3B0KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdl
ZF8gPT0gX19vcHQuX19lbmdhZ2VkXykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMt
Pl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfID0gX19vcHQuX192YWxf
OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRo
aXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfLn52YWx1ZV90eXBl
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRo
aXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoX19vcHQuX192YWxfKTsKKyAgICAgICAgICAgIHRoaXMt
Pl9fZW5nYWdlZF8gPSBfX29wdC5fX2VuZ2FnZWRfOworICAgICAgICB9CisgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICB9CisKKyAgICAKKyAgICBvcHRpb25hbCYKKyAgICBvcGVyYXRvcj0ob3B0
aW9uYWwmJiBfX29wdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfID09IF9f
b3B0Ll9fZW5nYWdlZF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2Fn
ZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IG1vdmUoX19vcHQuX192YWxfKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlz
LT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlz
LT5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX19vcHQuX192YWxfKSk7CisgICAgICAgICAgICB0
aGlzLT5fX2VuZ2FnZWRfID0gX19vcHQuX19lbmdhZ2VkXzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIF9VcCwKKyAgICAgICAg
ICAgICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX3JlZmVy
ZW5jZTxfVXA+Ojp0eXBlLCB2YWx1ZV90eXBlPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBfVXA+Ojp2YWx1ZSAmJgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpc19hc3NpZ25hYmxlPHZhbHVlX3R5cGUmLCBfVXA+Ojp2
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICA+CisgICAg
CisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KF9VcCYmIF9fdikKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgdGhpcy0+X192YWxfID0gZm9yd2Fy
ZDxfVXA+KF9fdik7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZXco
YWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoZm9yd2FyZDxfVXA+KF9fdikpOwor
ICAgICAgICAgICAgdGhpcy0+X19lbmdhZ2VkXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBfQXJncywKKyAg
ICAgICAgICAgICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAg
ICAgICA8CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVf
dHlwZSwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAg
ICAgICAgICAgICA+CisgICAgCisgICAgdm9pZAorICAgIGVtcGxhY2UoX0FyZ3MmJi4uLiBfX2Fy
Z3MpCisgICAgeworICAgICAgICAqdGhpcyA9IG51bGxvcHQ7CisgICAgICAgIDo6bmV3KGFkZHJl
c3NvZih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKGZvcndhcmQ8X0FyZ3M+KF9fYXJncykuLi4p
OworICAgICAgICB0aGlzLT5fX2VuZ2FnZWRfID0gdHJ1ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgX1VwLCBjbGFzcy4uLiBfQXJncywKKyAgICAgICAgICAgICAgY2xhc3MgPSB0eXBl
bmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8CisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZSwgaW5pdGlhbGl6ZXJfbGlzdDxf
VXA+JiwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAg
ICAgICAgICAgICA+CisgICAgCisgICAgdm9pZAorICAgIGVtcGxhY2UoaW5pdGlhbGl6ZXJfbGlz
dDxfVXA+IF9faWwsIF9BcmdzJiYuLi4gX19hcmdzKQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBu
dWxsb3B0OworICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+X192YWxfKSkgdmFsdWVfdHlw
ZShfX2lsLCBmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKTsKKyAgICAgICAgdGhpcy0+X19lbmdh
Z2VkXyA9IHRydWU7CisgICAgfQorCisgICAgCisgICAgdm9pZAorICAgIHN3YXAob3B0aW9uYWwm
IF9fb3B0KQorICAgIHsKKyAgICAgICAgdXNpbmcgc3RkOjpzd2FwOworICAgICAgICBpZiAodGhp
cy0+X19lbmdhZ2VkXyA9PSBfX29wdC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICBzd2FwKHRoaXMtPl9fdmFs
XywgX19vcHQuX192YWxfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIDo6bmV3KGFkZHJlc3NvZihfX29wdC5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUodGhp
cy0+X192YWxfKSk7CisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfLn52YWx1ZV90eXBlKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShf
X29wdC5fX3ZhbF8pKTsKKyAgICAgICAgICAgICAgICBfX29wdC5fX3ZhbF8ufnZhbHVlX3R5cGUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3YXAodGhpcy0+X19lbmdhZ2VkXywgX19v
cHQuX19lbmdhZ2VkXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIK
KyAgICB2YWx1ZV90eXBlIGNvbnN0KgorICAgIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pOworICAgICAgICAvL3JldHVybiBf
X29wZXJhdG9yX2Fycm93KF9faGFzX29wZXJhdG9yX2FkZHJlc3NvZjx2YWx1ZV90eXBlPnt9KTsK
KyAgICB9CisKKyAgICAKKyAgICB2YWx1ZV90eXBlKgorICAgIG9wZXJhdG9yLT4oKQorICAgIHsK
KyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh0aGlzLT5fX2VuZ2FnZWRfLCAib3B0aW9uYWwg
b3BlcmF0b3ItPiBjYWxsZWQgZm9yIGRpc2VuZ2FnZWQgdmFsdWUiKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pOworICAgIH0KKworICAgIAorICAgIENPTlNURVhQUgor
ICAgIGNvbnN0IHZhbHVlX3R5cGUmCisgICAgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLT5fX3ZhbF87CisgICAgfQorCisgICAgCisgICAgdmFsdWVfdHlwZSYK
KyAgICBvcGVyYXRvciooKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh0aGlz
LT5fX2VuZ2FnZWRfLCAib3B0aW9uYWwgb3BlcmF0b3IqIGNhbGxlZCBmb3IgZGlzZW5nYWdlZCB2
YWx1ZSIpOworICAgICAgICByZXR1cm4gdGhpcy0+X192YWxfOworICAgIH0KKworICAgIAorICAg
IENPTlNURVhQUiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qge3JldHVybiB0aGlzLT5f
X2VuZ2FnZWRfO30KKworICAgIAorICAgIENPTlNURVhQUiB2YWx1ZV90eXBlIGNvbnN0JiB2YWx1
ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy0+X192YWxfOworICAgIH0KKwor
ICAgIAorICAgIHZhbHVlX3R5cGUmIHZhbHVlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UodGhpcy0+X19lbmdhZ2VkXywgIm9wdGlvbmFsPFQ+Ojp2YWx1ZTogbm90IGVuZ2Fn
ZWQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPl9fdmFsXzsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgX1VwPgorICAgIAorICAgIENPTlNURVhQUiB2YWx1ZV90eXBlIHZhbHVlX29yKF9V
cCYmIF9fdikgY29uc3QmCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX2NvcHlfY29u
c3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIm9w
dGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVCBtdXN0IGJlIGNvcHkgY29uc3RydWN0aWJsZSIpOworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KGlzX2NvbnZlcnRpYmxlPF9VcCwgdmFsdWVfdHlwZT46OnZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25hbDxUPjo6dmFsdWVfb3I6IFUgbXVzdCBi
ZSBjb252ZXJ0aWJsZSB0byBUIik7CisgICAgICAgIHJldHVybiB0aGlzLT5fX2VuZ2FnZWRfID8g
dGhpcy0+X192YWxfIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDx2YWx1ZV90eXBlPihmb3J3YXJkPF9VcD4oX192KSk7CisgICAgfQorCisgICAgdGVtcGxh
dGUgPGNsYXNzIF9VcD4KKyAgICAKKyAgICB2YWx1ZV90eXBlIHZhbHVlX29yKF9VcCYmIF9fdikg
JiYKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoaXNfbW92ZV9jb25zdHJ1Y3RpYmxlPHZh
bHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uYWw8VD46OnZh
bHVlX29yOiBUIG11c3QgYmUgbW92ZSBjb25zdHJ1Y3RpYmxlIik7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoaXNfY29udmVydGlibGU8X1VwLCB2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAg
ICAgICAgICAgICAgIm9wdGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVSBtdXN0IGJlIGNvbnZlcnRpYmxl
IHRvIFQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPl9fZW5nYWdlZF8gPyBtb3ZlKHRoaXMtPl9f
dmFsXykgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZh
bHVlX3R5cGU+KGZvcndhcmQ8X1VwPihfX3YpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgCisv
LyAgICB2YWx1ZV90eXBlIGNvbnN0KgorLy8gICAgX19vcGVyYXRvcl9hcnJvdyh0cnVlX3R5cGUp
IGNvbnN0CisvLyAgICB7CisvLyAgICAgICAgcmV0dXJuIGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8p
OworLy8gICAgfQorLy8KKy8vICAgIAorLy8gICAgQ09OU1RFWFBSCisvLyAgICB2YWx1ZV90eXBl
IGNvbnN0KgorLy8gICAgX19vcGVyYXRvcl9hcnJvdyhmYWxzZV90eXBlKSBjb25zdAorLy8gICAg
eworLy8gICAgICAgIHJldHVybiAmdGhpcy0+X192YWxfOworLy8gICAgfQorfTsKKwordGVtcGxh
dGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK2Jvb2wKK29wZXJhdG9yPT0oY29uc3Qgb3B0aW9uYWw8
X1RwPiYgX194LCBjb25zdCBvcHRpb25hbDxfVHA+JiBfX3kpCit7CisgICAgaWYgKHN0YXRpY19j
YXN0PGJvb2w+KF9feCkgIT0gc3RhdGljX2Nhc3Q8Ym9vbD4oX195KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuICpfX3ggPT0gKl9feTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9U
cD4KK2lubGluZSAKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIGNv
bnN0IG9wdGlvbmFsPF9UcD4mIF9feSkKK3sKKyAgICBpZiAoIXN0YXRpY19jYXN0PGJvb2w+KF9f
eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXN0YXRpY19jYXN0PGJvb2w+KF9f
eCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBsZXNzPF9UcD57fSgqX194LCAq
X195KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9v
bAorb3BlcmF0b3I9PShjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIG51bGxvcHRfdCkKK3sKKyAg
ICByZXR1cm4gIXN0YXRpY19jYXN0PGJvb2w+KF9feCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBf
VHA+CitpbmxpbmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPT0obnVsbG9wdF90LCBjb25z
dCBvcHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxib29sPihf
X3gpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29s
CitvcGVyYXRvcjwoY29uc3Qgb3B0aW9uYWw8X1RwPiYsIG51bGxvcHRfdCkKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIK
K2Jvb2wKK29wZXJhdG9yPChudWxsb3B0X3QsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCkKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I9PShjb25zdCBvcHRpb25h
bDxfVHA+JiBfX3gsIGNvbnN0IF9UcCYgX192KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxi
b29sPihfX3gpID8gKl9feCA9PSBfX3YgOiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9U
cD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I9PShjb25zdCBfVHAmIF9fdiwg
Y29uc3Qgb3B0aW9uYWw8X1RwPiYgX194KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29s
PihfX3gpID8gKl9feCA9PSBfX3YgOiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4K
K2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8KGNvbnN0IG9wdGlvbmFsPF9UcD4m
IF9feCwgY29uc3QgX1RwJiBfX3YpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9f
eCkgPyBsZXNzPF9UcD57fSgqX194LCBfX3YpIDogdHJ1ZTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8KGNvbnN0IF9UcCYgX192
LCBjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJv
b2w+KF9feCkgPyBsZXNzPF9UcD57fShfX3YsICpfX3gpIDogZmFsc2U7Cit9CisKK3RlbXBsYXRl
IDxjbGFzcyBfVHA+CitpbmxpbmUgCit2b2lkCitzd2FwKG9wdGlvbmFsPF9UcD4mIF9feCwgb3B0
aW9uYWw8X1RwPiYgX195KQoreworICAgIF9feC5zd2FwKF9feSk7Cit9CisKK3RlbXBsYXRlIDxj
bGFzcyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIKK29wdGlvbmFsPHR5cGVuYW1lIGRlY2F5PF9U
cD46OnR5cGU+CittYWtlX29wdGlvbmFsKF9UcCYmIF9fdikKK3sKKyAgICByZXR1cm4gb3B0aW9u
YWw8dHlwZW5hbWUgZGVjYXk8X1RwPjo6dHlwZT4oZm9yd2FyZDxfVHA+KF9fdikpOworfQorCit9
IC8vIG5hbWVzcGFjZSBleHBlcmltZW50YWwKKwordXNpbmcgZXhwZXJpbWVudGFsOjpudWxsb3B0
OwordXNpbmcgZXhwZXJpbWVudGFsOjpvcHRpb25hbDsKKworfSAgLy8gbmFtZXNwYWNlIHN0ZAor
CisjZW5kaWYgLy8gRE9OVF9IQVZFX09QVElPTkFMCisKIHVzaW5nIFdURjo6S0I7CiB1c2luZyBX
VEY6Ok1COwogdXNpbmcgV1RGOjppc0NvbXBpbGF0aW9uVGhyZWFkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233127</attachid>
            <date>2014-06-14 14:58:35 -0700</date>
            <delta_ts>2014-06-14 15:20:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133917-20140614145809.patch</filename>
            <type>text/plain</type>
            <size>16340</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk5ODApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgaW4gYSBjb3B5IG9mIHN0ZDo6b3B0aW9uYWwgZm9y
IHBsYXRmb3JtcyB0aGF0IGRvbid0IHlldCBoYXZlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxf
c3RvcmFnZTo6fl9fb3B0aW9uYWxfc3RvcmFnZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRh
bDo6X19vcHRpb25hbF9zdG9yYWdlOjpfX29wdGlvbmFsX3N0b3JhZ2UpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxfc3RvcmFnZTo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcHRpb25hbCk6CisgICAgICAgIChzdGQ6OmV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1l
bnRhbDo6b3B0aW9uYWw6Om5vZXhjZXB0KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpv
cHRpb25hbDo6ZW1wbGFjZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw6
OnN3YXApOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcGVyYXRvci0+
KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6b3BlcmF0b3IqKToKKyAg
ICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6dmFsdWUpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjp2YWx1ZV9vcik6CisgICAgICAgIChzdGQ6OmV4cGVy
aW1lbnRhbDo6b3B0aW9uYWw6Ol9fb3BlcmF0b3JfYXJyb3cpOgorICAgICAgICAoc3RkOjpleHBl
cmltZW50YWw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wZXJh
dG9yPCk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om1ha2Vfb3B0aW9uYWwpOgorCiAyMDE0LTA2LTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBkaXNhYmxpbmcgY3NzIGppdCBvbiBhcm12Ny4gIEl0J3Mgbm90IHF1aXRlIHJlYWR5IHlldC4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDE2OTk3OCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9JdGVy
YXRvclJhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtMTAyLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEtleVR5cGUmKSBjb25zdDsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlw
ZSYpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxNYXBwZWRQZWVrVHlwZT4gZ2V0Mihjb25z
dCBLZXlUeXBlJikgY29uc3Q7CisKICAgICAvLyBSZXBsYWNlcyB0aGUgdmFsdWUgYnV0IG5vdCB0
aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAgIC8vIFJldHVybiB2YWx1
ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9jYXRpb24sCiAgICAgLy8g
YW5kIGFuIGlzTmV3RW50cnkgYm9vbGVhbiB0aGF0J3MgdHJ1ZSBpZiBhIG5ldyBlbnRyeSB3YXMg
YWRkZWQuCkBAIC0zNDMsNiArMzQ2LDE1IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBw
ZWRUcmFpdHM+OjoKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KK2F1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBN
YXBwZWRUcmFpdHM+OjpnZXQyKGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gc3RkOjpvcHRp
b25hbDxNYXBwZWRQZWVrVHlwZT4KK3sKKyAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9IGNv
bnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkubG9va3VwKGtleSk7CisgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWFwcGVkVHJh
aXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiBpbmxpbmUgYm9vbCBI
YXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTY5OTc4KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKICNkZWZpbmUgV1RGX1N0
ZExpYkV4dHJhc19oCiAKICNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJf
bGlzdD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
IApAQCAtNDAxLDYgKzQwMyw1MTggQEAgbmFtZXNwYWNlIGNocm9ub19saXRlcmFscyB7CiAjZW5k
aWYKIH0KIAorI2RlZmluZSBET05UX0hBVkVfT1BUSU9OQUwgMQorCisjaWYgRE9OVF9IQVZFX09Q
VElPTkFMCituYW1lc3BhY2Ugc3RkIHsgbmFtZXNwYWNlIGV4cGVyaW1lbnRhbCB7CisKK3N0cnVj
dCBpbl9wbGFjZV90IHt9OworQ09OU1RFWFBSIGluX3BsYWNlX3QgaW5fcGxhY2V7fTsKKworc3Ry
dWN0IG51bGxvcHRfdAoreworICAgIGV4cGxpY2l0IENPTlNURVhQUiBudWxsb3B0X3QoaW50KSB7
fQorfTsKKworQ09OU1RFWFBSIG51bGxvcHRfdCBudWxsb3B0ezB9OworCit0ZW1wbGF0ZSA8Y2xh
c3MgX1RwLCBib29sID0gaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxfVHA+Ojp2YWx1ZT4KK2Ns
YXNzIF9fb3B0aW9uYWxfc3RvcmFnZQoreworcHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZh
bHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsK
KyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8g
PSBmYWxzZTsKKworICAgIAorICAgIH5fX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgIHsKKyAgICAg
ICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICBfX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAg
ICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKCkKKyAgICAgICAg
OiAgX19udWxsX3N0YXRlXygnXDAnKSB7fQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdl
KGNvbnN0IF9fb3B0aW9uYWxfc3RvcmFnZSYgX194KQorICAgICAgICA6ICBfX2VuZ2FnZWRfKF9f
eC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAg
ICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxfKSkgdmFsdWVfdHlwZShfX3guX192
YWxfKTsKKyAgICAgICAgfQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKF9fb3B0aW9u
YWxfc3RvcmFnZSYmIF9feCkKKyAgICAgICAgOiAgX19lbmdhZ2VkXyhfX3guX19lbmdhZ2VkXykK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAg
OjpuZXcoYWRkcmVzc29mKF9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShfX3guX192YWxfKSk7Cisg
ICAgICAgIH0KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3Qg
dmFsdWVfdHlwZSYgX192KQorICAgICAgICA6ICBfX3ZhbF8oX192KSwKKyAgICAgICAgICAgX19l
bmdhZ2VkXyh0cnVlKSB7fQorCisgICAgCisgICAgQ09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFn
ZSh2YWx1ZV90eXBlJiYgX192KQorICAgICAgICA6ICBfX3ZhbF8obW92ZShfX3YpKSwKKyAgICAg
ICAgICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIF9Bcmdz
PgorICAgIENPTlNURVhQUgorICAgIGV4cGxpY2l0IF9fb3B0aW9uYWxfc3RvcmFnZShpbl9wbGFj
ZV90LCBfQXJncyYmLi4uIF9fYXJncykKKyAgICAgICA6ICBfX3ZhbF8oZm9yd2FyZDxfQXJncz4o
X19hcmdzKS4uLiksCisgICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkge30KK307CisKK3RlbXBs
YXRlIDxjbGFzcyBfVHA+CitjbGFzcyBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwLCB0cnVlPgorewor
cHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZhbHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7
CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsKKyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87
CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8gPSBmYWxzZTsKKworICAgIAorICAgIENPTlNU
RVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgICAgICA6ICBfX251bGxfc3RhdGVfKCdcMCcp
IHt9CisKKyAgICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3QgX19vcHRpb25hbF9zdG9y
YWdlJiBfX3gpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdlZF8pCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIDo6bmV3KGFk
ZHJlc3NvZihfX3ZhbF8pKSB2YWx1ZV90eXBlKF9feC5fX3ZhbF8pOworICAgICAgICB9CisKKyAg
ICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoX19vcHRpb25hbF9zdG9yYWdlJiYgX194KQorICAg
ICAgICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxf
KSkgdmFsdWVfdHlwZShtb3ZlKF9feC5fX3ZhbF8pKTsKKyAgICAgICAgfQorCisgICAgCisgICAg
Q09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFnZShjb25zdCB2YWx1ZV90eXBlJiBfX3YpCisgICAg
ICAgIDogIF9fdmFsXyhfX3YpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9CisKKyAg
ICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKHZhbHVlX3R5cGUmJiBfX3YpCisg
ICAgICAgIDogIF9fdmFsXyhtb3ZlKF9fdikpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUp
IHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3M+CisgICAgQ09OU1RFWFBSCisgICAg
ZXhwbGljaXQgX19vcHRpb25hbF9zdG9yYWdlKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4gX19hcmdz
KQorICAgICAgIDogIF9fdmFsXyhmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKSwKKyAgICAgICAg
ICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorfTsKKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2NsYXNz
IG9wdGlvbmFsCisgICAgOiBwcml2YXRlIF9fb3B0aW9uYWxfc3RvcmFnZTxfVHA+Cit7CisgICAg
dHlwZWRlZiBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwPiBfX2Jhc2U7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBfVHAgdmFsdWVfdHlwZTsKKworICAgIHN0YXRpY19hc3NlcnQoIWlzX3JlZmVyZW5jZTx2
YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlv
bmFsIHdpdGggYSByZWZlcmVuY2UgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19h
c3NlcnQoIWlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX2N2PHZhbHVlX3R5cGU+Ojp0eXBlLCBpbl9w
bGFjZV90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFs
IHdpdGggYSBpbl9wbGFjZV90IHR5cGUgaXMgaWxsLWZvcm1lZC4iKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9jdjx2YWx1ZV90eXBlPjo6dHlwZSwgbnVsbG9w
dF90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdp
dGggYSBudWxsb3B0X3QgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19hc3NlcnQo
aXNfb2JqZWN0PHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkluc3RhbnRpYXRpb24gb2Yg
b3B0aW9uYWwgd2l0aCBhIG5vbi1vYmplY3QgdHlwZSBpcyB1bmRlZmluZWQgYmVoYXZpb3IuIik7
CisgICAgc3RhdGljX2Fzc2VydChpc19ub3Rocm93X2Rlc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6
dmFsdWUsCisgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdpdGggYW4gb2JqZWN0
IHR5cGUgdGhhdCBpcyBub3Qgbm9leGNlcHQgZGVzdHJ1Y3RpYmxlIGlzIHVuZGVmaW5lZCBiZWhh
dmlvci4iKTsKKworICAgICBDT05TVEVYUFIgb3B0aW9uYWwoKSB7fQorICAgICBvcHRpb25hbChj
b25zdCBvcHRpb25hbCYpID0gZGVmYXVsdDsKKyAgICAgb3B0aW9uYWwob3B0aW9uYWwmJikgPSBk
ZWZhdWx0OworICAgICB+b3B0aW9uYWwoKSA9IGRlZmF1bHQ7CisgICAgIENPTlNURVhQUiBvcHRp
b25hbChudWxsb3B0X3QpIHt9CisgICAgIENPTlNURVhQUiBvcHRpb25hbChjb25zdCB2YWx1ZV90
eXBlJiBfX3YpCisgICAgICAgIDogX19iYXNlKF9fdikge30KKyAgICAgQ09OU1RFWFBSIG9wdGlv
bmFsKHZhbHVlX3R5cGUmJiBfX3YpCisgICAgICAgIDogX19iYXNlKG1vdmUoX192KSkge30KKwor
ICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBfQXJncywKKyAgICAgICAgICAgICAgY2xhc3MgPSB0eXBl
bmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIF9BcmdzLi4uPjo6dmFsdWUK
KyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAorICAg
IENPTlNURVhQUgorICAgIGV4cGxpY2l0IG9wdGlvbmFsKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4g
X19hcmdzKQorICAgICAgICA6IF9fYmFzZShpbl9wbGFjZSwgZm9yd2FyZDxfQXJncz4oX19hcmdz
KS4uLikge30KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXAsIGNsYXNzLi4uIF9BcmdzLAorICAg
ICAgICAgICAgICBjbGFzcyA9IHR5cGVuYW1lIGVuYWJsZV9pZgorICAgICAgICAgICAgICAgICAg
ICAgIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVf
dHlwZSwgaW5pdGlhbGl6ZXJfbGlzdDxfVXA+JiwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAg
ICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICA+CisgICAgCisgICAgQ09OU1RFWFBS
CisgICAgZXhwbGljaXQgb3B0aW9uYWwoaW5fcGxhY2VfdCwgaW5pdGlhbGl6ZXJfbGlzdDxfVXA+
IF9faWwsIF9BcmdzJiYuLi4gX19hcmdzKQorICAgICAgICA6IF9fYmFzZShpbl9wbGFjZSwgX19p
bCwgZm9yd2FyZDxfQXJncz4oX19hcmdzKS4uLikge30KKworICAgIAorICAgIG9wdGlvbmFsJiBv
cGVyYXRvcj0obnVsbG9wdF90KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdlZF8p
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgpOworICAg
ICAgICAgICAgdGhpcy0+X19lbmdhZ2VkXyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICAKKyAgICBvcHRpb25hbCYKKyAgICBvcGVyYXRvcj0o
Y29uc3Qgb3B0aW9uYWwmIF9fb3B0KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5nYWdl
ZF8gPT0gX19vcHQuX19lbmdhZ2VkXykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMt
Pl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfID0gX19vcHQuX192YWxf
OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRo
aXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfLn52YWx1ZV90eXBl
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRo
aXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoX19vcHQuX192YWxfKTsKKyAgICAgICAgICAgIHRoaXMt
Pl9fZW5nYWdlZF8gPSBfX29wdC5fX2VuZ2FnZWRfOworICAgICAgICB9CisgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICB9CisKKyAgICAKKyAgICBvcHRpb25hbCYKKyAgICBvcGVyYXRvcj0ob3B0
aW9uYWwmJiBfX29wdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfID09IF9f
b3B0Ll9fZW5nYWdlZF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2Fn
ZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IG1vdmUoX19vcHQuX192YWxfKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlz
LT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlz
LT5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX19vcHQuX192YWxfKSk7CisgICAgICAgICAgICB0
aGlzLT5fX2VuZ2FnZWRfID0gX19vcHQuX19lbmdhZ2VkXzsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIF9VcCwKKyAgICAgICAg
ICAgICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX3JlZmVy
ZW5jZTxfVXA+Ojp0eXBlLCB2YWx1ZV90eXBlPjo6dmFsdWUgJiYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBfVXA+Ojp2YWx1ZSAmJgorICAg
ICAgICAgICAgICAgICAgICAgICAgICBpc19hc3NpZ25hYmxlPHZhbHVlX3R5cGUmLCBfVXA+Ojp2
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAgICAgICAgICAgICA+CisgICAg
CisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KF9VcCYmIF9fdikKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgdGhpcy0+X192YWxfID0gZm9yd2Fy
ZDxfVXA+KF9fdik7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgOjpuZXco
YWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoZm9yd2FyZDxfVXA+KF9fdikpOwor
ICAgICAgICAgICAgdGhpcy0+X19lbmdhZ2VkXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcy4uLiBfQXJncywKKyAg
ICAgICAgICAgICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAg
ICAgICA8CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVf
dHlwZSwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAg
ICAgICAgICAgICA+CisgICAgCisgICAgdm9pZAorICAgIGVtcGxhY2UoX0FyZ3MmJi4uLiBfX2Fy
Z3MpCisgICAgeworICAgICAgICAqdGhpcyA9IG51bGxvcHQ7CisgICAgICAgIDo6bmV3KGFkZHJl
c3NvZih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKGZvcndhcmQ8X0FyZ3M+KF9fYXJncykuLi4p
OworICAgICAgICB0aGlzLT5fX2VuZ2FnZWRfID0gdHJ1ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgX1VwLCBjbGFzcy4uLiBfQXJncywKKyAgICAgICAgICAgICAgY2xhc3MgPSB0eXBl
bmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8CisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZSwgaW5pdGlhbGl6ZXJfbGlzdDxf
VXA+JiwgX0FyZ3MuLi4+Ojp2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgID46OnR5cGUKKyAg
ICAgICAgICAgICA+CisgICAgCisgICAgdm9pZAorICAgIGVtcGxhY2UoaW5pdGlhbGl6ZXJfbGlz
dDxfVXA+IF9faWwsIF9BcmdzJiYuLi4gX19hcmdzKQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBu
dWxsb3B0OworICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+X192YWxfKSkgdmFsdWVfdHlw
ZShfX2lsLCBmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKTsKKyAgICAgICAgdGhpcy0+X19lbmdh
Z2VkXyA9IHRydWU7CisgICAgfQorCisgICAgCisgICAgdm9pZAorICAgIHN3YXAob3B0aW9uYWwm
IF9fb3B0KQorICAgIHsKKyAgICAgICAgdXNpbmcgc3RkOjpzd2FwOworICAgICAgICBpZiAodGhp
cy0+X19lbmdhZ2VkXyA9PSBfX29wdC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICBzd2FwKHRoaXMtPl9fdmFs
XywgX19vcHQuX192YWxfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIDo6bmV3KGFkZHJlc3NvZihfX29wdC5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUodGhp
cy0+X192YWxfKSk7CisgICAgICAgICAgICAgICAgdGhpcy0+X192YWxfLn52YWx1ZV90eXBlKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShf
X29wdC5fX3ZhbF8pKTsKKyAgICAgICAgICAgICAgICBfX29wdC5fX3ZhbF8ufnZhbHVlX3R5cGUo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3YXAodGhpcy0+X19lbmdhZ2VkXywgX19v
cHQuX19lbmdhZ2VkXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIK
KyAgICB2YWx1ZV90eXBlIGNvbnN0KgorICAgIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pOworICAgICAgICAvL3JldHVybiBf
X29wZXJhdG9yX2Fycm93KF9faGFzX29wZXJhdG9yX2FkZHJlc3NvZjx2YWx1ZV90eXBlPnt9KTsK
KyAgICB9CisKKyAgICAKKyAgICB2YWx1ZV90eXBlKgorICAgIG9wZXJhdG9yLT4oKQorICAgIHsK
KyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh0aGlzLT5fX2VuZ2FnZWRfLCAib3B0aW9uYWwg
b3BlcmF0b3ItPiBjYWxsZWQgZm9yIGRpc2VuZ2FnZWQgdmFsdWUiKTsKKyAgICAgICAgcmV0dXJu
IGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pOworICAgIH0KKworICAgIAorICAgIENPTlNURVhQUgor
ICAgIGNvbnN0IHZhbHVlX3R5cGUmCisgICAgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLT5fX3ZhbF87CisgICAgfQorCisgICAgCisgICAgdmFsdWVfdHlwZSYK
KyAgICBvcGVyYXRvciooKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh0aGlz
LT5fX2VuZ2FnZWRfLCAib3B0aW9uYWwgb3BlcmF0b3IqIGNhbGxlZCBmb3IgZGlzZW5nYWdlZCB2
YWx1ZSIpOworICAgICAgICByZXR1cm4gdGhpcy0+X192YWxfOworICAgIH0KKworICAgIAorICAg
IENPTlNURVhQUiBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qge3JldHVybiB0aGlzLT5f
X2VuZ2FnZWRfO30KKworICAgIAorICAgIENPTlNURVhQUiB2YWx1ZV90eXBlIGNvbnN0JiB2YWx1
ZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy0+X192YWxfOworICAgIH0KKwor
ICAgIAorICAgIHZhbHVlX3R5cGUmIHZhbHVlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UodGhpcy0+X19lbmdhZ2VkXywgIm9wdGlvbmFsPFQ+Ojp2YWx1ZTogbm90IGVuZ2Fn
ZWQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPl9fdmFsXzsKKyAgICB9CisKKyNpZiBDT01QSUxF
Ul9TVVBQT1JUUyhDWFhfUkVGRVJFTkNFX1FVQUxJRklFRF9GVU5DVElPTlMpCisgICAgdGVtcGxh
dGUgPGNsYXNzIF9VcD4KKyAgICBDT05TVEVYUFIgdmFsdWVfdHlwZSB2YWx1ZV9vcihfVXAmJiBf
X3YpIGNvbnN0JgorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChpc19jb3B5X2NvbnN0cnVj
dGlibGU8dmFsdWVfdHlwZT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25h
bDxUPjo6dmFsdWVfb3I6IFQgbXVzdCBiZSBjb3B5IGNvbnN0cnVjdGlibGUiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChpc19jb252ZXJ0aWJsZTxfVXAsIHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAib3B0aW9uYWw8VD46OnZhbHVlX29yOiBVIG11c3QgYmUgY29u
dmVydGlibGUgdG8gVCIpOworICAgICAgICByZXR1cm4gdGhpcy0+X19lbmdhZ2VkXyA/IHRoaXMt
Pl9fdmFsXyA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
dmFsdWVfdHlwZT4oZm9yd2FyZDxfVXA+KF9fdikpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxj
bGFzcyBfVXA+CisgICAgdmFsdWVfdHlwZSB2YWx1ZV9vcihfVXAmJiBfX3YpICYmCisgICAgewor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX21vdmVfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6
dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVCBt
dXN0IGJlIG1vdmUgY29uc3RydWN0aWJsZSIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX2Nv
bnZlcnRpYmxlPF9VcCwgdmFsdWVfdHlwZT46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICJvcHRpb25hbDxUPjo6dmFsdWVfb3I6IFUgbXVzdCBiZSBjb252ZXJ0aWJsZSB0byBUIik7Cisg
ICAgICAgIHJldHVybiB0aGlzLT5fX2VuZ2FnZWRfID8gbW92ZSh0aGlzLT5fX3ZhbF8pIDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPihm
b3J3YXJkPF9VcD4oX192KSk7CisgICAgfQorI2VuZGlmCisKK3ByaXZhdGU6CisgICAgCisvLyAg
ICB2YWx1ZV90eXBlIGNvbnN0KgorLy8gICAgX19vcGVyYXRvcl9hcnJvdyh0cnVlX3R5cGUpIGNv
bnN0CisvLyAgICB7CisvLyAgICAgICAgcmV0dXJuIGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pOwor
Ly8gICAgfQorLy8KKy8vICAgIAorLy8gICAgQ09OU1RFWFBSCisvLyAgICB2YWx1ZV90eXBlIGNv
bnN0KgorLy8gICAgX19vcGVyYXRvcl9hcnJvdyhmYWxzZV90eXBlKSBjb25zdAorLy8gICAgewor
Ly8gICAgICAgIHJldHVybiAmdGhpcy0+X192YWxfOworLy8gICAgfQorfTsKKwordGVtcGxhdGUg
PGNsYXNzIF9UcD4KK2lubGluZSAKK2Jvb2wKK29wZXJhdG9yPT0oY29uc3Qgb3B0aW9uYWw8X1Rw
PiYgX194LCBjb25zdCBvcHRpb25hbDxfVHA+JiBfX3kpCit7CisgICAgaWYgKHN0YXRpY19jYXN0
PGJvb2w+KF9feCkgIT0gc3RhdGljX2Nhc3Q8Ym9vbD4oX195KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuICpfX3ggPT0gKl9feTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4K
K2lubGluZSAKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIGNvbnN0
IG9wdGlvbmFsPF9UcD4mIF9feSkKK3sKKyAgICBpZiAoIXN0YXRpY19jYXN0PGJvb2w+KF9feSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXN0YXRpY19jYXN0PGJvb2w+KF9feCkp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBsZXNzPF9UcD57fSgqX194LCAqX195
KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAor
b3BlcmF0b3I9PShjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIG51bGxvcHRfdCkKK3sKKyAgICBy
ZXR1cm4gIXN0YXRpY19jYXN0PGJvb2w+KF9feCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+
CitpbmxpbmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPT0obnVsbG9wdF90LCBjb25zdCBv
cHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxib29sPihfX3gp
OworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitv
cGVyYXRvcjwoY29uc3Qgb3B0aW9uYWw8X1RwPiYsIG51bGxvcHRfdCkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIKK2Jv
b2wKK29wZXJhdG9yPChudWxsb3B0X3QsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCkKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9U
cD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I9PShjb25zdCBvcHRpb25hbDxf
VHA+JiBfX3gsIGNvbnN0IF9UcCYgX192KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29s
PihfX3gpID8gKl9feCA9PSBfX3YgOiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4K
K2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I9PShjb25zdCBfVHAmIF9fdiwgY29u
c3Qgb3B0aW9uYWw8X1RwPiYgX194KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihf
X3gpID8gKl9feCA9PSBfX3YgOiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lu
bGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8KGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9f
eCwgY29uc3QgX1RwJiBfX3YpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9feCkg
PyBsZXNzPF9UcD57fSgqX194LCBfX3YpIDogdHJ1ZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9U
cD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8KGNvbnN0IF9UcCYgX192LCBj
b25zdCBvcHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+
KF9feCkgPyBsZXNzPF9UcD57fShfX3YsICpfX3gpIDogZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxj
bGFzcyBfVHA+CitpbmxpbmUgCit2b2lkCitzd2FwKG9wdGlvbmFsPF9UcD4mIF9feCwgb3B0aW9u
YWw8X1RwPiYgX195KQoreworICAgIF9feC5zd2FwKF9feSk7Cit9CisKK3RlbXBsYXRlIDxjbGFz
cyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIKK29wdGlvbmFsPHR5cGVuYW1lIGRlY2F5PF9UcD46
OnR5cGU+CittYWtlX29wdGlvbmFsKF9UcCYmIF9fdikKK3sKKyAgICByZXR1cm4gb3B0aW9uYWw8
dHlwZW5hbWUgZGVjYXk8X1RwPjo6dHlwZT4oZm9yd2FyZDxfVHA+KF9fdikpOworfQorCit9IC8v
IG5hbWVzcGFjZSBleHBlcmltZW50YWwKKwordXNpbmcgZXhwZXJpbWVudGFsOjpudWxsb3B0Owor
dXNpbmcgZXhwZXJpbWVudGFsOjpvcHRpb25hbDsKKworfSAgLy8gbmFtZXNwYWNlIHN0ZAorCisj
ZW5kaWYgLy8gRE9OVF9IQVZFX09QVElPTkFMCisKIHVzaW5nIFdURjo6S0I7CiB1c2luZyBXVEY6
Ok1COwogdXNpbmcgV1RGOjppc0NvbXBpbGF0aW9uVGhyZWFkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233129</attachid>
            <date>2014-06-14 15:20:27 -0700</date>
            <delta_ts>2014-06-14 19:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133917-20140614152001.patch</filename>
            <type>text/plain</type>
            <size>16389</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk5ODApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgaW4gYSBjb3B5IG9mIHN0ZDo6b3B0aW9uYWwgZm9y
IHBsYXRmb3JtcyB0aGF0IGRvbid0IHlldCBoYXZlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxf
c3RvcmFnZTo6fl9fb3B0aW9uYWxfc3RvcmFnZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRh
bDo6X19vcHRpb25hbF9zdG9yYWdlOjpfX29wdGlvbmFsX3N0b3JhZ2UpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxfc3RvcmFnZTo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcHRpb25hbCk6CisgICAgICAgIChzdGQ6OmV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1l
bnRhbDo6b3B0aW9uYWw6Om5vZXhjZXB0KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpv
cHRpb25hbDo6ZW1wbGFjZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw6
OnN3YXApOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcGVyYXRvci0+
KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6b3BlcmF0b3IqKToKKyAg
ICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6dmFsdWUpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjp2YWx1ZV9vcik6CisgICAgICAgIChzdGQ6OmV4cGVy
aW1lbnRhbDo6b3B0aW9uYWw6Ol9fb3BlcmF0b3JfYXJyb3cpOgorICAgICAgICAoc3RkOjpleHBl
cmltZW50YWw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wZXJh
dG9yPCk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om1ha2Vfb3B0aW9uYWwpOgorCiAyMDE0LTA2LTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBkaXNhYmxpbmcgY3NzIGppdCBvbiBhcm12Ny4gIEl0J3Mgbm90IHF1aXRlIHJlYWR5IHlldC4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDE2OTk3OCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9JdGVy
YXRvclJhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtMTAyLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEtleVR5cGUmKSBjb25zdDsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlw
ZSYpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxNYXBwZWRQZWVrVHlwZT4gZ2V0Mihjb25z
dCBLZXlUeXBlJikgY29uc3Q7CisKICAgICAvLyBSZXBsYWNlcyB0aGUgdmFsdWUgYnV0IG5vdCB0
aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAgIC8vIFJldHVybiB2YWx1
ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9jYXRpb24sCiAgICAgLy8g
YW5kIGFuIGlzTmV3RW50cnkgYm9vbGVhbiB0aGF0J3MgdHJ1ZSBpZiBhIG5ldyBlbnRyeSB3YXMg
YWRkZWQuCkBAIC0zNDMsNiArMzQ2LDE1IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBw
ZWRUcmFpdHM+OjoKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KK2F1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBN
YXBwZWRUcmFpdHM+OjpnZXQyKGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gc3RkOjpvcHRp
b25hbDxNYXBwZWRQZWVrVHlwZT4KK3sKKyAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9IGNv
bnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkubG9va3VwKGtleSk7CisgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWFwcGVkVHJh
aXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiBpbmxpbmUgYm9vbCBI
YXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTY5OTc4KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDkgQEAKICNkZWZpbmUgV1RGX1N0
ZExpYkV4dHJhc19oCiAKICNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8aW5pdGlhbGl6ZXJf
bGlzdD4KICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
IApAQCAtNDAxLDYgKzQwMyw1MjIgQEAgbmFtZXNwYWNlIGNocm9ub19saXRlcmFscyB7CiAjZW5k
aWYKIH0KIAorI2RlZmluZSBET05UX0hBVkVfT1BUSU9OQUwgMQorCisjaWYgRE9OVF9IQVZFX09Q
VElPTkFMCituYW1lc3BhY2Ugc3RkIHsgbmFtZXNwYWNlIGV4cGVyaW1lbnRhbCB7CisKK3N0cnVj
dCBpbl9wbGFjZV90IHt9OworQ09OU1RFWFBSIGluX3BsYWNlX3QgaW5fcGxhY2V7fTsKKworc3Ry
dWN0IG51bGxvcHRfdAoreworICAgIGV4cGxpY2l0IENPTlNURVhQUiBudWxsb3B0X3QoaW50KSB7
fQorfTsKKworQ09OU1RFWFBSIG51bGxvcHRfdCBudWxsb3B0ezB9OworCit0ZW1wbGF0ZSA8Y2xh
c3MgX1RwLCBib29sID0gaXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxfVHA+Ojp2YWx1ZT4KK2Ns
YXNzIF9fb3B0aW9uYWxfc3RvcmFnZQoreworcHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZh
bHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsK
KyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8g
PSBmYWxzZTsKKworICAgIAorICAgIH5fX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgIHsKKyAgICAg
ICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICBfX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAg
ICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKCkKKyAgICAgICAg
OiAgX19udWxsX3N0YXRlXygnXDAnKSB7fQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdl
KGNvbnN0IF9fb3B0aW9uYWxfc3RvcmFnZSYgX194KQorICAgICAgICA6ICBfX2VuZ2FnZWRfKF9f
eC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAg
ICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxfKSkgdmFsdWVfdHlwZShfX3guX192
YWxfKTsKKyAgICAgICAgfQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKF9fb3B0aW9u
YWxfc3RvcmFnZSYmIF9feCkKKyAgICAgICAgOiAgX19lbmdhZ2VkXyhfX3guX19lbmdhZ2VkXykK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAg
OjpuZXcoYWRkcmVzc29mKF9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShfX3guX192YWxfKSk7Cisg
ICAgICAgIH0KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3Qg
dmFsdWVfdHlwZSYgX192KQorICAgICAgICA6ICBfX3ZhbF8oX192KSwKKyAgICAgICAgICAgX19l
bmdhZ2VkXyh0cnVlKSB7fQorCisgICAgCisgICAgQ09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFn
ZSh2YWx1ZV90eXBlJiYgX192KQorICAgICAgICA6ICBfX3ZhbF8obW92ZShfX3YpKSwKKyAgICAg
ICAgICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIF9Bcmdz
PgorICAgIENPTlNURVhQUgorICAgIGV4cGxpY2l0IF9fb3B0aW9uYWxfc3RvcmFnZShpbl9wbGFj
ZV90LCBfQXJncyYmLi4uIF9fYXJncykKKyAgICAgICA6ICBfX3ZhbF8oZm9yd2FyZDxfQXJncz4o
X19hcmdzKS4uLiksCisgICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkge30KK307CisKK3RlbXBs
YXRlIDxjbGFzcyBfVHA+CitjbGFzcyBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwLCB0cnVlPgorewor
cHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZhbHVlX3R5cGU7CisgICAgdW5pb24KKyAgICB7
CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsKKyAgICAgICAgdmFsdWVfdHlwZSBfX3ZhbF87
CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8gPSBmYWxzZTsKKworICAgIAorICAgIENPTlNU
RVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgICAgICA6ICBfX251bGxfc3RhdGVfKCdcMCcp
IHt9CisKKyAgICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3QgX19vcHRpb25hbF9zdG9y
YWdlJiBfX3gpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdlZF8pCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIDo6bmV3KGFk
ZHJlc3NvZihfX3ZhbF8pKSB2YWx1ZV90eXBlKF9feC5fX3ZhbF8pOworICAgICAgICB9CisKKyAg
ICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoX19vcHRpb25hbF9zdG9yYWdlJiYgX194KQorICAg
ICAgICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxf
KSkgdmFsdWVfdHlwZShtb3ZlKF9feC5fX3ZhbF8pKTsKKyAgICAgICAgfQorCisgICAgCisgICAg
Q09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFnZShjb25zdCB2YWx1ZV90eXBlJiBfX3YpCisgICAg
ICAgIDogIF9fdmFsXyhfX3YpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9CisKKyAg
ICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKHZhbHVlX3R5cGUmJiBfX3YpCisg
ICAgICAgIDogIF9fdmFsXyhtb3ZlKF9fdikpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUp
IHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3M+CisgICAgQ09OU1RFWFBSCisgICAg
ZXhwbGljaXQgX19vcHRpb25hbF9zdG9yYWdlKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4gX19hcmdz
KQorICAgICAgIDogIF9fdmFsXyhmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKSwKKyAgICAgICAg
ICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorfTsKKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2NsYXNz
IG9wdGlvbmFsCisgICAgOiBwcml2YXRlIF9fb3B0aW9uYWxfc3RvcmFnZTxfVHA+Cit7CisgICAg
dHlwZWRlZiBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwPiBfX2Jhc2U7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBfVHAgdmFsdWVfdHlwZTsKKworICAgIHN0YXRpY19hc3NlcnQoIWlzX3JlZmVyZW5jZTx2
YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlv
bmFsIHdpdGggYSByZWZlcmVuY2UgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19h
c3NlcnQoIWlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX2N2PHZhbHVlX3R5cGU+Ojp0eXBlLCBpbl9w
bGFjZV90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFs
IHdpdGggYSBpbl9wbGFjZV90IHR5cGUgaXMgaWxsLWZvcm1lZC4iKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KCFpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9jdjx2YWx1ZV90eXBlPjo6dHlwZSwgbnVsbG9w
dF90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdp
dGggYSBudWxsb3B0X3QgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19hc3NlcnQo
aXNfb2JqZWN0PHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkluc3RhbnRpYXRpb24gb2Yg
b3B0aW9uYWwgd2l0aCBhIG5vbi1vYmplY3QgdHlwZSBpcyB1bmRlZmluZWQgYmVoYXZpb3IuIik7
CisgICAgc3RhdGljX2Fzc2VydChpc19ub3Rocm93X2Rlc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6
dmFsdWUsCisgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdpdGggYW4gb2JqZWN0
IHR5cGUgdGhhdCBpcyBub3Qgbm9leGNlcHQgZGVzdHJ1Y3RpYmxlIGlzIHVuZGVmaW5lZCBiZWhh
dmlvci4iKTsKKworICAgICBDT05TVEVYUFIgb3B0aW9uYWwoKSB7fQorICAgICBvcHRpb25hbChj
b25zdCBvcHRpb25hbCYpID0gZGVmYXVsdDsKKyAgICAgb3B0aW9uYWwob3B0aW9uYWwmJiBvdGhl
cikKKyAgICAgICAgOiBfX2Jhc2UobW92ZShvdGhlci5fX2Jhc2UpKQorICAgIHsKKyAgICB9CisK
KyAgICAgfm9wdGlvbmFsKCkgPSBkZWZhdWx0OworICAgICBDT05TVEVYUFIgb3B0aW9uYWwobnVs
bG9wdF90KSB7fQorICAgICBDT05TVEVYUFIgb3B0aW9uYWwoY29uc3QgdmFsdWVfdHlwZSYgX192
KQorICAgICAgICA6IF9fYmFzZShfX3YpIHt9CisgICAgIENPTlNURVhQUiBvcHRpb25hbCh2YWx1
ZV90eXBlJiYgX192KQorICAgICAgICA6IF9fYmFzZShtb3ZlKF9fdikpIHt9CisKKyAgICB0ZW1w
bGF0ZSA8Y2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAgICAgIGNsYXNzID0gdHlwZW5hbWUgZW5h
YmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBfQXJncy4uLj46OnZhbHVlCisgICAgICAg
ICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgID4KKyAgICAKKyAgICBDT05TVEVY
UFIKKyAgICBleHBsaWNpdCBvcHRpb25hbChpbl9wbGFjZV90LCBfQXJncyYmLi4uIF9fYXJncykK
KyAgICAgICAgOiBfX2Jhc2UoaW5fcGxhY2UsIGZvcndhcmQ8X0FyZ3M+KF9fYXJncykuLi4pIHt9
CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgX1VwLCBjbGFzcy4uLiBfQXJncywKKyAgICAgICAgICAg
ICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAgICA8Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIGlu
aXRpYWxpemVyX2xpc3Q8X1VwPiYsIF9BcmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAg
ICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAorICAgIENPTlNURVhQUgorICAgIGV4
cGxpY2l0IG9wdGlvbmFsKGluX3BsYWNlX3QsIGluaXRpYWxpemVyX2xpc3Q8X1VwPiBfX2lsLCBf
QXJncyYmLi4uIF9fYXJncykKKyAgICAgICAgOiBfX2Jhc2UoaW5fcGxhY2UsIF9faWwsIGZvcndh
cmQ8X0FyZ3M+KF9fYXJncykuLi4pIHt9CisKKyAgICAKKyAgICBvcHRpb25hbCYgb3BlcmF0b3I9
KG51bGxvcHRfdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfKQorICAgICAg
ICB7CisgICAgICAgICAgICB0aGlzLT5fX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAgICAgICAgICAg
IHRoaXMtPl9fZW5nYWdlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRo
aXM7CisgICAgfQorCisgICAgCisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KGNvbnN0IG9w
dGlvbmFsJiBfX29wdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfID09IF9f
b3B0Ll9fZW5nYWdlZF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5fX2VuZ2Fn
ZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IF9fb3B0Ll9fdmFsXzsKKyAgICAg
ICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5fX2Vu
Z2FnZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlzLT5fX3Zh
bF8pKSB2YWx1ZV90eXBlKF9fb3B0Ll9fdmFsXyk7CisgICAgICAgICAgICB0aGlzLT5fX2VuZ2Fn
ZWRfID0gX19vcHQuX19lbmdhZ2VkXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7
CisgICAgfQorCisgICAgCisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KG9wdGlvbmFsJiYg
X19vcHQpCisgICAgeworICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXyA9PSBfX29wdC5fX2Vu
Z2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAg
ICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8gPSBtb3ZlKF9fb3B0Ll9fdmFsXyk7CisgICAgICAg
IH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+X19lbmdh
Z2VkXykKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+X192YWxf
KSkgdmFsdWVfdHlwZShtb3ZlKF9fb3B0Ll9fdmFsXykpOworICAgICAgICAgICAgdGhpcy0+X19l
bmdhZ2VkXyA9IF9fb3B0Ll9fZW5nYWdlZF87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICp0
aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXAsCisgICAgICAgICAgICAgIGNs
YXNzID0gdHlwZW5hbWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVuY2U8X1Vw
Pjo6dHlwZSwgdmFsdWVfdHlwZT46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGlzX2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZSwgX1VwPjo6dmFsdWUgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaXNfYXNzaWduYWJsZTx2YWx1ZV90eXBlJiwgX1VwPjo6dmFsdWUKKyAg
ICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAorICAgIG9w
dGlvbmFsJgorICAgIG9wZXJhdG9yPShfVXAmJiBfX3YpCisgICAgeworICAgICAgICBpZiAodGhp
cy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IGZvcndhcmQ8X1VwPihf
X3YpOworICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIDo6bmV3KGFkZHJlc3Nv
Zih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKGZvcndhcmQ8X1VwPihfX3YpKTsKKyAgICAgICAg
ICAgIHRoaXMtPl9fZW5nYWdlZF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAg
ICAgIGNsYXNzID0gdHlwZW5hbWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIF9B
cmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAg
ICAgPgorICAgIAorICAgIHZvaWQKKyAgICBlbXBsYWNlKF9BcmdzJiYuLi4gX19hcmdzKQorICAg
IHsKKyAgICAgICAgKnRoaXMgPSBudWxsb3B0OworICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhp
cy0+X192YWxfKSkgdmFsdWVfdHlwZShmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKTsKKyAgICAg
ICAgdGhpcy0+X19lbmdhZ2VkXyA9IHRydWU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNz
IF9VcCwgY2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAgICAgIGNsYXNzID0gdHlwZW5hbWUgZW5h
YmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIGluaXRpYWxpemVyX2xpc3Q8X1VwPiYsIF9B
cmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAg
ICAgPgorICAgIAorICAgIHZvaWQKKyAgICBlbXBsYWNlKGluaXRpYWxpemVyX2xpc3Q8X1VwPiBf
X2lsLCBfQXJncyYmLi4uIF9fYXJncykKKyAgICB7CisgICAgICAgICp0aGlzID0gbnVsbG9wdDsK
KyAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUoX19pbCwg
Zm9yd2FyZDxfQXJncz4oX19hcmdzKS4uLik7CisgICAgICAgIHRoaXMtPl9fZW5nYWdlZF8gPSB0
cnVlOworICAgIH0KKworICAgIAorICAgIHZvaWQKKyAgICBzd2FwKG9wdGlvbmFsJiBfX29wdCkK
KyAgICB7CisgICAgICAgIHVzaW5nIHN0ZDo6c3dhcDsKKyAgICAgICAgaWYgKHRoaXMtPl9fZW5n
YWdlZF8gPT0gX19vcHQuX19lbmdhZ2VkXykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRo
aXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgc3dhcCh0aGlzLT5fX3ZhbF8sIF9fb3B0
Ll9fdmFsXyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICA6
Om5ldyhhZGRyZXNzb2YoX19vcHQuX192YWxfKSkgdmFsdWVfdHlwZShtb3ZlKHRoaXMtPl9fdmFs
XykpOworICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IDo6bmV3KGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX19vcHQuX192
YWxfKSk7CisgICAgICAgICAgICAgICAgX19vcHQuX192YWxfLn52YWx1ZV90eXBlKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBzd2FwKHRoaXMtPl9fZW5nYWdlZF8sIF9fb3B0Ll9fZW5n
YWdlZF8pOworICAgICAgICB9CisgICAgfQorCisgICAgCisgICAgQ09OU1RFWFBSCisgICAgdmFs
dWVfdHlwZSBjb25zdCoKKyAgICBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZGRyZXNzb2YodGhpcy0+X192YWxfKTsKKyAgICAgICAgLy9yZXR1cm4gX19vcGVyYXRv
cl9hcnJvdyhfX2hhc19vcGVyYXRvcl9hZGRyZXNzb2Y8dmFsdWVfdHlwZT57fSk7CisgICAgfQor
CisgICAgCisgICAgdmFsdWVfdHlwZSoKKyAgICBvcGVyYXRvci0+KCkKKyAgICB7CisgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UodGhpcy0+X19lbmdhZ2VkXywgIm9wdGlvbmFsIG9wZXJhdG9y
LT4gY2FsbGVkIGZvciBkaXNlbmdhZ2VkIHZhbHVlIik7CisgICAgICAgIHJldHVybiBhZGRyZXNz
b2YodGhpcy0+X192YWxfKTsKKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVYUFIKKyAgICBjb25z
dCB2YWx1ZV90eXBlJgorICAgIG9wZXJhdG9yKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy0+X192YWxfOworICAgIH0KKworICAgIAorICAgIHZhbHVlX3R5cGUmCisgICAgb3Bl
cmF0b3IqKCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UodGhpcy0+X19lbmdh
Z2VkXywgIm9wdGlvbmFsIG9wZXJhdG9yKiBjYWxsZWQgZm9yIGRpc2VuZ2FnZWQgdmFsdWUiKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMtPl9fdmFsXzsKKyAgICB9CisKKyAgICAKKyAgICBDT05TVEVY
UFIgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHtyZXR1cm4gdGhpcy0+X19lbmdhZ2Vk
Xzt9CisKKyAgICAKKyAgICBDT05TVEVYUFIgdmFsdWVfdHlwZSBjb25zdCYgdmFsdWUoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMtPl9fdmFsXzsKKyAgICB9CisKKyAgICAKKyAg
ICB2YWx1ZV90eXBlJiB2YWx1ZSgpCisgICAgeworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHRoaXMtPl9fZW5nYWdlZF8sICJvcHRpb25hbDxUPjo6dmFsdWU6IG5vdCBlbmdhZ2VkIik7Cisg
ICAgICAgIHJldHVybiB0aGlzLT5fX3ZhbF87CisgICAgfQorCisjaWYgQ09NUElMRVJfU1VQUE9S
VFMoQ1hYX1JFRkVSRU5DRV9RVUFMSUZJRURfRlVOQ1RJT05TKQorICAgIHRlbXBsYXRlIDxjbGFz
cyBfVXA+CisgICAgQ09OU1RFWFBSIHZhbHVlX3R5cGUgdmFsdWVfb3IoX1VwJiYgX192KSBjb25z
dCYKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoaXNfY29weV9jb25zdHJ1Y3RpYmxlPHZh
bHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uYWw8VD46OnZh
bHVlX29yOiBUIG11c3QgYmUgY29weSBjb25zdHJ1Y3RpYmxlIik7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoaXNfY29udmVydGlibGU8X1VwLCB2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAg
ICAgICAgICAgICAgIm9wdGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVSBtdXN0IGJlIGNvbnZlcnRpYmxl
IHRvIFQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMtPl9fZW5nYWdlZF8gPyB0aGlzLT5fX3ZhbF8g
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZhbHVlX3R5
cGU+KGZvcndhcmQ8X1VwPihfX3YpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgX1Vw
PgorICAgIHZhbHVlX3R5cGUgdmFsdWVfb3IoX1VwJiYgX192KSAmJgorICAgIHsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChpc19tb3ZlX2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZT46OnZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25hbDxUPjo6dmFsdWVfb3I6IFQgbXVzdCBiZSBt
b3ZlIGNvbnN0cnVjdGlibGUiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChpc19jb252ZXJ0aWJs
ZTxfVXAsIHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAib3B0aW9u
YWw8VD46OnZhbHVlX29yOiBVIG11c3QgYmUgY29udmVydGlibGUgdG8gVCIpOworICAgICAgICBy
ZXR1cm4gdGhpcy0+X19lbmdhZ2VkXyA/IG1vdmUodGhpcy0+X192YWxfKSA6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dmFsdWVfdHlwZT4oZm9yd2FyZDxf
VXA+KF9fdikpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIAorLy8gICAgdmFsdWVf
dHlwZSBjb25zdCoKKy8vICAgIF9fb3BlcmF0b3JfYXJyb3codHJ1ZV90eXBlKSBjb25zdAorLy8g
ICAgeworLy8gICAgICAgIHJldHVybiBhZGRyZXNzb2YodGhpcy0+X192YWxfKTsKKy8vICAgIH0K
Ky8vCisvLyAgICAKKy8vICAgIENPTlNURVhQUgorLy8gICAgdmFsdWVfdHlwZSBjb25zdCoKKy8v
ICAgIF9fb3BlcmF0b3JfYXJyb3coZmFsc2VfdHlwZSkgY29uc3QKKy8vICAgIHsKKy8vICAgICAg
ICByZXR1cm4gJnRoaXMtPl9fdmFsXzsKKy8vICAgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBf
VHA+CitpbmxpbmUgCitib29sCitvcGVyYXRvcj09KGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCwg
Y29uc3Qgb3B0aW9uYWw8X1RwPiYgX195KQoreworICAgIGlmIChzdGF0aWNfY2FzdDxib29sPihf
X3gpICE9IHN0YXRpY19jYXN0PGJvb2w+KF9feSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIXN0YXRpY19jYXN0PGJvb2w+KF9feCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiAqX194ID09ICpfX3k7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUg
Citib29sCitvcGVyYXRvcjwoY29uc3Qgb3B0aW9uYWw8X1RwPiYgX194LCBjb25zdCBvcHRpb25h
bDxfVHA+JiBfX3kpCit7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihfX3kpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihfX3gpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbGVzczxfVHA+e30oKl9feCwgKl9feSk7Cit9CisK
K3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9y
PT0oY29uc3Qgb3B0aW9uYWw8X1RwPiYgX194LCBudWxsb3B0X3QpCit7CisgICAgcmV0dXJuICFz
dGF0aWNfY2FzdDxib29sPihfX3gpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5l
IAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcj09KG51bGxvcHRfdCwgY29uc3Qgb3B0aW9uYWw8
X1RwPiYgX194KQoreworICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8Ym9vbD4oX194KTsKK30KKwor
dGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8
KGNvbnN0IG9wdGlvbmFsPF9UcD4mLCBudWxsb3B0X3QpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVy
YXRvcjwobnVsbG9wdF90LCBjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGJvb2w+KF9feCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+Citpbmxp
bmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPT0oY29uc3Qgb3B0aW9uYWw8X1RwPiYgX194
LCBjb25zdCBfVHAmIF9fdikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSA/
ICpfX3ggPT0gX192IDogZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUg
CitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPT0oY29uc3QgX1RwJiBfX3YsIGNvbnN0IG9wdGlv
bmFsPF9UcD4mIF9feCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSA/ICpf
X3ggPT0gX192IDogZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+CitpbmxpbmUgCitD
T05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIGNvbnN0
IF9UcCYgX192KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihfX3gpID8gbGVzczxf
VHA+e30oKl9feCwgX192KSA6IHRydWU7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+Citpbmxp
bmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBfVHAmIF9fdiwgY29uc3Qgb3B0
aW9uYWw8X1RwPiYgX194KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihfX3gpID8g
bGVzczxfVHA+e30oX192LCAqX194KSA6IGZhbHNlOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1Rw
PgoraW5saW5lIAordm9pZAorc3dhcChvcHRpb25hbDxfVHA+JiBfX3gsIG9wdGlvbmFsPF9UcD4m
IF9feSkKK3sKKyAgICBfX3guc3dhcChfX3kpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgor
aW5saW5lIAorQ09OU1RFWFBSCitvcHRpb25hbDx0eXBlbmFtZSBkZWNheTxfVHA+Ojp0eXBlPgor
bWFrZV9vcHRpb25hbChfVHAmJiBfX3YpCit7CisgICAgcmV0dXJuIG9wdGlvbmFsPHR5cGVuYW1l
IGRlY2F5PF9UcD46OnR5cGU+KGZvcndhcmQ8X1RwPihfX3YpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgZXhwZXJpbWVudGFsCisKK3VzaW5nIGV4cGVyaW1lbnRhbDo6bnVsbG9wdDsKK3VzaW5nIGV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw7CisKK30gIC8vIG5hbWVzcGFjZSBzdGQKKworI2VuZGlmIC8v
IERPTlRfSEFWRV9PUFRJT05BTAorCiB1c2luZyBXVEY6OktCOwogdXNpbmcgV1RGOjpNQjsKIHVz
aW5nIFdURjo6aXNDb21waWxhdGlvblRocmVhZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233134</attachid>
            <date>2014-06-14 19:28:26 -0700</date>
            <delta_ts>2014-06-18 01:47:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133917-20140614192803.patch</filename>
            <type>text/plain</type>
            <size>19853</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk5ODcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE0LTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQnJpbmcgaW4gYSBjb3B5IG9mIHN0ZDo6b3B0aW9uYWwgZm9y
IHBsYXRmb3JtcyB0aGF0IGRvbid0IHlldCBoYXZlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxf
c3RvcmFnZTo6fl9fb3B0aW9uYWxfc3RvcmFnZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRh
bDo6X19vcHRpb25hbF9zdG9yYWdlOjpfX29wdGlvbmFsX3N0b3JhZ2UpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Ol9fb3B0aW9uYWxfc3RvcmFnZTo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcHRpb25hbCk6CisgICAgICAgIChzdGQ6OmV4
cGVyaW1lbnRhbDo6b3B0aW9uYWw6Om9wZXJhdG9yPSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1l
bnRhbDo6b3B0aW9uYWw6Om5vZXhjZXB0KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpv
cHRpb25hbDo6ZW1wbGFjZSk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6b3B0aW9uYWw6
OnN3YXApOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjpvcGVyYXRvci0+
KToKKyAgICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6b3BlcmF0b3IqKToKKyAg
ICAgICAgKHN0ZDo6ZXhwZXJpbWVudGFsOjpvcHRpb25hbDo6dmFsdWUpOgorICAgICAgICAoc3Rk
OjpleHBlcmltZW50YWw6Om9wdGlvbmFsOjp2YWx1ZV9vcik6CisgICAgICAgIChzdGQ6OmV4cGVy
aW1lbnRhbDo6b3B0aW9uYWw6Ol9fb3BlcmF0b3JfYXJyb3cpOgorICAgICAgICAoc3RkOjpleHBl
cmltZW50YWw6Om9wZXJhdG9yPT0pOgorICAgICAgICAoc3RkOjpleHBlcmltZW50YWw6Om9wZXJh
dG9yPCk6CisgICAgICAgIChzdGQ6OmV4cGVyaW1lbnRhbDo6bm9leGNlcHQpOgorICAgICAgICAo
c3RkOjpleHBlcmltZW50YWw6Om1ha2Vfb3B0aW9uYWwpOgorCiAyMDE0LTA2LTEzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBkaXNhYmxpbmcgY3NzIGppdCBvbiBhcm12Ny4gIEl0J3Mgbm90IHF1aXRlIHJlYWR5IHlldC4K
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9IYXNoTWFwLmgJKHJldmlzaW9uIDE2OTk4NykKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGluaXRpYWxp
emVyX2xpc3Q+CiAjaW5jbHVkZSA8d3RmL0hhc2hUYWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9JdGVy
YXRvclJhbmdlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V1RGIHsKIApAQCAtMTAyLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zKGNv
bnN0IEtleVR5cGUmKSBjb25zdDsKICAgICBNYXBwZWRQZWVrVHlwZSBnZXQoY29uc3QgS2V5VHlw
ZSYpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxNYXBwZWRQZWVrVHlwZT4gZ2V0Mihjb25z
dCBLZXlUeXBlJikgY29uc3Q7CisKICAgICAvLyBSZXBsYWNlcyB0aGUgdmFsdWUgYnV0IG5vdCB0
aGUga2V5IGlmIHRoZSBrZXkgaXMgYWxyZWFkeSBwcmVzZW50LgogICAgIC8vIFJldHVybiB2YWx1
ZSBpbmNsdWRlcyBib3RoIGFuIGl0ZXJhdG9yIHRvIHRoZSBrZXkgbG9jYXRpb24sCiAgICAgLy8g
YW5kIGFuIGlzTmV3RW50cnkgYm9vbGVhbiB0aGF0J3MgdHJ1ZSBpZiBhIG5ldyBlbnRyeSB3YXMg
YWRkZWQuCkBAIC0zNDMsNiArMzQ2LDE1IEBAIGF1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBNYXBw
ZWRUcmFpdHM+OjoKICAgICByZXR1cm4gTWFwcGVkVHJhaXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVu
YW1lIFcsIHR5cGVuYW1lIE1hcHBlZFRyYWl0cz4KK2F1dG8gSGFzaE1hcDxULCBVLCBWLCBXLCBN
YXBwZWRUcmFpdHM+OjpnZXQyKGNvbnN0IEtleVR5cGUmIGtleSkgY29uc3QgLT4gc3RkOjpvcHRp
b25hbDxNYXBwZWRQZWVrVHlwZT4KK3sKKyAgICBLZXlWYWx1ZVBhaXJUeXBlKiBlbnRyeSA9IGNv
bnN0X2Nhc3Q8SGFzaFRhYmxlVHlwZSY+KG1faW1wbCkubG9va3VwKGtleSk7CisgICAgaWYgKCFl
bnRyeSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWFwcGVkVHJh
aXRzOjpwZWVrKGVudHJ5LT52YWx1ZSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFcsIHR5cGVuYW1lIFg+CiBpbmxpbmUgYm9vbCBI
YXNoTWFwPFQsIFUsIFYsIFcsIFg+OjpyZW1vdmUoaXRlcmF0b3IgaXQpCiB7CkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAkocmV2aXNpb24gMTY5OTg3KQorKysgU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEwICsyOCw1MyBAQAogI2RlZmluZSBXVEZf
U3RkTGliRXh0cmFzX2gKIAogI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxpbml0aWFsaXpl
cl9saXN0PgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5o
PgogCisvKiBTVEFOREFSRF9MSUIoKSAtIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGJlaW5nIHVzZWQg
dG8gYnVpbGQgdGhlIHByb2plY3QgKi8KKyNkZWZpbmUgU1RBTkRBUkRfTElCKFdURl9GRUFUVVJF
KSAoZGVmaW5lZCBXVEZfU1RBTkRBUkRfTElCXyMjV1RGX0ZFQVRVUkUgICYmIFdURl9TVEFOREFS
RF9MSUJfIyNXVEZfRkVBVFVSRSkKKworLyogU1RBTkRBUkRfTElCKCkgLSB3aGV0aGVyIHRoZSBz
dGFuZGFyZCBsaWJyYXJ5IGJlaW5nIHVzZWQgdG8gYnVpbGQgdGhlIHByb2plY3Qgc3VwcG9ydHMg
dGhlIGdpdmVuIGZlYXR1cmUuICovCisjZGVmaW5lIFNUQU5EQVJEX0xJQl9TVVBQT1JUUyhXVEZf
Q09NUElMRVJfRkVBVFVSRSkgKGRlZmluZWQgV1RGX1NUQU5EQVJEX0xJQl9TVVBQT1JUU18jI1dU
Rl9DT01QSUxFUl9GRUFUVVJFICYmIFdURl9TVEFOREFSRF9MSUJfU1VQUE9SVFNfIyNXVEZfQ09N
UElMRVJfRkVBVFVSRSkKKworCisvKiBTVEFOREFSRF9MSUIoTElCQ1BQKSAtIGxpYmMrKyAgKi8K
KworI2lmIGRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKQorI2RlZmluZSBXVEZfU1RBTkRBUkRfTElC
X0xJQkNQUCAxCisKKyNpZiBfTElCQ1BQX1NURF9WRVIgPiAxMQorI2RlZmluZSBXVEZfU1RBTkRB
UkRfTElCX1NVUFBPUlRTX01BS0VfVU5JUVVFIDEKKyNkZWZpbmUgV1RGX1NUQU5EQVJEX0xJQl9T
VVBQT1JUU19JTkRFWF9TRVFVRU5DRSAxCisjZGVmaW5lIFdURl9TVEFOREFSRF9MSUJfU1VQUE9S
VFNfQ1JPTk9fTElURVJBTFMgMQorCisjaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKSAmJiBfX2hh
c19pbmNsdWRlKDxleHBlcmltZW50YWwvb3B0aW9uYWw+KQorI2RlZmluZSBXVEZfU1RBTkRBUkRf
TElCX1NVUFBPUlRTX0VYUEVSSU1FTlRBTF9PUFRJT05BTCAxCisjZW5kaWYKKyNlbmRpZiAvLyBf
TElCQ1BQX1NURF9WRVIgPiAxMQorCisjZW5kaWYgLy8gZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04p
CisKKworLyogU1RBTkRBUkRfTElCKE1TVkMpIC0gTVNWQyAgKi8KKworI2lmIGRlZmluZWQoX01T
Q19WRVIpCisjZGVmaW5lIFdURl9TVEFOREFSRF9MSUJfTVNWQyAxCisKKyNpZiBfTVNDX1ZFUiA+
PSAxODAwCisjZGVmaW5lIFdURl9TVEFOREFSRF9MSUJfU1VQUE9SVFNfTUFLRV9VTklRVUUgMQor
I2VuZGlmCisKKyNlbmRpZiAvLyBkZWZpbmVkKF9NU0NfVkVSKQorCisKKyNpZiBTVEFOREFSRF9M
SUJfU1VQUE9SVFMoRVhQRVJJTUVOVEFMX09QVElPTkFMKQorI2luY2x1ZGUgPGV4cGVyaW1lbnRh
bC9vcHRpb25hbD4KKyNlbmRpZgorCiAvLyBUaGlzIHdhcyB1c2VkIHRvIGRlY2xhcmUgYW5kIGRl
ZmluZSBhIHN0YXRpYyBsb2NhbCB2YXJpYWJsZSAoc3RhdGljIFQ7KSBzbyB0aGF0CiAvLyAgaXQg
d2FzIGxlYWtlZCBzbyB0aGF0IGl0cyBkZXN0cnVjdG9ycyB3ZXJlIG5vdCBjYWxsZWQgYXQgZXhp
dC4gVXNpbmcgdGhpcwogLy8gIG1hY3JvIGFsc28gYWxsb3dlZCB0byB3b3JrYXJvdW5kIGEgY29t
cGlsZXIgYnVnIHByZXNlbnQgaW4gQXBwbGUncyB2ZXJzaW9uIG9mIEdDQyA0LjAuMS4KQEAgLTMz
MSw5ICszNzQsOSBAQCBuYW1lc3BhY2Ugc3RkIHsKICNlbmRpZgogCiAvLyBUaGlzIGFkZHMgdmFy
aW91cyBDKysxNCBmZWF0dXJlcyBmb3IgdmVyc2lvbnMgb2YgdGhlIFNUTCB0aGF0IG1heSBub3Qg
eWV0IGhhdmUgdGhlbS4KKworI2lmICFTVEFOREFSRF9MSUJfU1VQUE9SVFMoTUFLRV9VTklRVUUp
CiBuYW1lc3BhY2Ugc3RkIHsKLS8vIE1TVkMgMjAxMyBzdXBwb3J0cyBzdGQ6Om1ha2VfdW5pcXVl
IGFscmVhZHkuCi0jaWYgIWRlZmluZWQoX01TQ19WRVIpIHx8IF9NU0NfVkVSIDwgMTgwMAogdGVt
cGxhdGU8Y2xhc3MgVD4gc3RydWN0IF9VbmlxdWVfaWYgewogICAgIHR5cGVkZWYgdW5pcXVlX3B0
cjxUPiBfU2luZ2xlX29iamVjdDsKIH07CkBAIC0zNjEsOCArNDA0LDEyIEBAIG1ha2VfdW5pcXVl
KHNpemVfdCBuKQogCiB0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcy4uLiBBcmdzPiB0eXBlbmFtZSBf
VW5pcXVlX2lmPFQ+OjpfS25vd25fYm91bmQKIG1ha2VfdW5pcXVlKEFyZ3MmJi4uLikgPSBkZWxl
dGU7Ci0jZW5kaWYKK30gLy8gbmFtZXNwYWNlIHN0ZAorI2VuZGlmIC8vICFTVEFOREFSRF9MSUJf
U1VQUE9SVFMoTUFLRV9VTklRVUUpCisKIAorI2lmICFTVEFOREFSRF9MSUJfU1VQUE9SVFMoSU5E
RVhfU0VRVUVOQ0UpCituYW1lc3BhY2Ugc3RkIHsKIC8vIENvbXBpbGUtdGltZSBpbnRlZ2VyIHNl
cXVlbmNlcwogLy8gaHR0cDovL3d3dy5vcGVuLXN0ZC5vcmcvanRjMS9zYzIyL3dnMjEvZG9jcy9w
YXBlcnMvMjAxMy9uMzY1OC5odG1sCiAvLyAoTm90ZSB0aGF0IHdlIG9ubHkgaW1wbGVtZW50IGlu
ZGV4X3NlcXVlbmNlLCBhbmQgbm90IHRoZSBtb3JlIGdlbmVyaWMgaW50ZWdlcl9zZXF1ZW5jZSku
CkBAIC0zODIsMTEgKzQyOSw1MTQgQEAgdGVtcGxhdGU8c2l6ZV90IGN1cnJlbnRJbmRleCwgc2l6
ZV90Li4uaQogCiB0ZW1wbGF0ZTxzaXplX3QgbGVuZ3RoPiBzdHJ1Y3QgbWFrZV9pbmRleF9zZXF1
ZW5jZSA6IHB1YmxpYyBtYWtlX2luZGV4X3NlcXVlbmNlX2hlbHBlcjxsZW5ndGg+Ojp0eXBlIHsg
fTsKIAorfSAvLyBuYW1lc3BhY2Ugc3RkCisjZW5kaWYgLy8gIVNUQU5EQVJEX0xJQl9TVVBQT1JU
UyhJTkRFWF9TRVFVRU5DRSkKKworI2lmICFTVEFOREFSRF9MSUJfU1VQUE9SVFMoRVhQRVJJTUVO
VEFMX09QVElPTkFMKQorbmFtZXNwYWNlIHN0ZCB7CituYW1lc3BhY2UgZXhwZXJpbWVudGFsIHsK
Kworc3RydWN0IGluX3BsYWNlX3Qge307CitDT05TVEVYUFIgaW5fcGxhY2VfdCBpbl9wbGFjZXt9
OworCitzdHJ1Y3QgbnVsbG9wdF90Cit7CisgICAgZXhwbGljaXQgQ09OU1RFWFBSIG51bGxvcHRf
dChpbnQpIHt9Cit9OworCitDT05TVEVYUFIgbnVsbG9wdF90IG51bGxvcHR7MH07CisKK3RlbXBs
YXRlIDxjbGFzcyBfVHAsIGJvb2wgPSBpc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPF9UcD46OnZh
bHVlPgorY2xhc3MgX19vcHRpb25hbF9zdG9yYWdlCit7Citwcm90ZWN0ZWQ6CisgICAgdHlwZWRl
ZiBfVHAgdmFsdWVfdHlwZTsKKyAgICB1bmlvbgorICAgIHsKKyAgICAgICAgY2hhciBfX251bGxf
c3RhdGVfOworICAgICAgICB2YWx1ZV90eXBlIF9fdmFsXzsKKyAgICB9OworICAgIGJvb2wgX19l
bmdhZ2VkXyA9IGZhbHNlOworCisgICAgCisgICAgfl9fb3B0aW9uYWxfc3RvcmFnZSgpCisgICAg
eworICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgIF9fdmFsXy5+dmFsdWVfdHlw
ZSgpOworICAgIH0KKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKCkKKyAg
ICAgICAgOiAgX19udWxsX3N0YXRlXygnXDAnKSB7fQorCisgICAgCisgICAgX19vcHRpb25hbF9z
dG9yYWdlKGNvbnN0IF9fb3B0aW9uYWxfc3RvcmFnZSYgX194KQorICAgICAgICA6ICBfX2VuZ2Fn
ZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoX19lbmdhZ2Vk
XykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YoX192YWxfKSkgdmFsdWVfdHlwZShf
X3guX192YWxfKTsKKyAgICAgICAgfQorCisgICAgCisgICAgX19vcHRpb25hbF9zdG9yYWdlKF9f
b3B0aW9uYWxfc3RvcmFnZSYmIF9feCkKKyAgICAgICAgOiAgX19lbmdhZ2VkXyhfX3guX19lbmdh
Z2VkXykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKF9fZW5nYWdlZF8pCisgICAgICAgICAg
ICAgICAgOjpuZXcoYWRkcmVzc29mKF9fdmFsXykpIHZhbHVlX3R5cGUobW92ZShfX3guX192YWxf
KSk7CisgICAgICAgIH0KKworICAgIAorICAgIENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2Uo
Y29uc3QgdmFsdWVfdHlwZSYgX192KQorICAgICAgICA6ICBfX3ZhbF8oX192KSwKKyAgICAgICAg
ICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorCisgICAgCisgICAgQ09OU1RFWFBSIF9fb3B0aW9uYWxf
c3RvcmFnZSh2YWx1ZV90eXBlJiYgX192KQorICAgICAgICA6ICBfX3ZhbF8obW92ZShfX3YpKSwK
KyAgICAgICAgICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorCisgICAgdGVtcGxhdGUgPGNsYXNzLi4u
IF9BcmdzPgorICAgIENPTlNURVhQUgorICAgIGV4cGxpY2l0IF9fb3B0aW9uYWxfc3RvcmFnZShp
bl9wbGFjZV90LCBfQXJncyYmLi4uIF9fYXJncykKKyAgICAgICA6ICBfX3ZhbF8oZm9yd2FyZDxf
QXJncz4oX19hcmdzKS4uLiksCisgICAgICAgICAgIF9fZW5nYWdlZF8odHJ1ZSkge30KK307CisK
K3RlbXBsYXRlIDxjbGFzcyBfVHA+CitjbGFzcyBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwLCB0cnVl
PgoreworcHJvdGVjdGVkOgorICAgIHR5cGVkZWYgX1RwIHZhbHVlX3R5cGU7CisgICAgdW5pb24K
KyAgICB7CisgICAgICAgIGNoYXIgX19udWxsX3N0YXRlXzsKKyAgICAgICAgdmFsdWVfdHlwZSBf
X3ZhbF87CisgICAgfTsKKyAgICBib29sIF9fZW5nYWdlZF8gPSBmYWxzZTsKKworICAgIAorICAg
IENPTlNURVhQUiBfX29wdGlvbmFsX3N0b3JhZ2UoKQorICAgICAgICA6ICBfX251bGxfc3RhdGVf
KCdcMCcpIHt9CisKKyAgICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoY29uc3QgX19vcHRpb25h
bF9zdG9yYWdlJiBfX3gpCisgICAgICAgIDogIF9fZW5nYWdlZF8oX194Ll9fZW5nYWdlZF8pCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChfX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIDo6
bmV3KGFkZHJlc3NvZihfX3ZhbF8pKSB2YWx1ZV90eXBlKF9feC5fX3ZhbF8pOworICAgICAgICB9
CisKKyAgICAKKyAgICBfX29wdGlvbmFsX3N0b3JhZ2UoX19vcHRpb25hbF9zdG9yYWdlJiYgX194
KQorICAgICAgICA6ICBfX2VuZ2FnZWRfKF9feC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoX19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2Yo
X192YWxfKSkgdmFsdWVfdHlwZShtb3ZlKF9feC5fX3ZhbF8pKTsKKyAgICAgICAgfQorCisgICAg
CisgICAgQ09OU1RFWFBSIF9fb3B0aW9uYWxfc3RvcmFnZShjb25zdCB2YWx1ZV90eXBlJiBfX3Yp
CisgICAgICAgIDogIF9fdmFsXyhfX3YpLAorICAgICAgICAgICBfX2VuZ2FnZWRfKHRydWUpIHt9
CisKKyAgICAKKyAgICBDT05TVEVYUFIgX19vcHRpb25hbF9zdG9yYWdlKHZhbHVlX3R5cGUmJiBf
X3YpCisgICAgICAgIDogIF9fdmFsXyhtb3ZlKF9fdikpLAorICAgICAgICAgICBfX2VuZ2FnZWRf
KHRydWUpIHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3M+CisgICAgQ09OU1RFWFBS
CisgICAgZXhwbGljaXQgX19vcHRpb25hbF9zdG9yYWdlKGluX3BsYWNlX3QsIF9BcmdzJiYuLi4g
X19hcmdzKQorICAgICAgIDogIF9fdmFsXyhmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKSwKKyAg
ICAgICAgICAgX19lbmdhZ2VkXyh0cnVlKSB7fQorfTsKKwordGVtcGxhdGUgPGNsYXNzIF9UcD4K
K2NsYXNzIG9wdGlvbmFsCisgICAgOiBwcml2YXRlIF9fb3B0aW9uYWxfc3RvcmFnZTxfVHA+Cit7
CisgICAgdHlwZWRlZiBfX29wdGlvbmFsX3N0b3JhZ2U8X1RwPiBfX2Jhc2U7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBfVHAgdmFsdWVfdHlwZTsKKworICAgIHN0YXRpY19hc3NlcnQoIWlzX3JlZmVy
ZW5jZTx2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9m
IG9wdGlvbmFsIHdpdGggYSByZWZlcmVuY2UgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0
YXRpY19hc3NlcnQoIWlzX3NhbWU8dHlwZW5hbWUgcmVtb3ZlX2N2PHZhbHVlX3R5cGU+Ojp0eXBl
LCBpbl9wbGFjZV90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9w
dGlvbmFsIHdpdGggYSBpbl9wbGFjZV90IHR5cGUgaXMgaWxsLWZvcm1lZC4iKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KCFpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9jdjx2YWx1ZV90eXBlPjo6dHlwZSwg
bnVsbG9wdF90Pjo6dmFsdWUsCisgICAgICAgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlv
bmFsIHdpdGggYSBudWxsb3B0X3QgdHlwZSBpcyBpbGwtZm9ybWVkLiIpOworICAgIHN0YXRpY19h
c3NlcnQoaXNfb2JqZWN0PHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkluc3RhbnRpYXRp
b24gb2Ygb3B0aW9uYWwgd2l0aCBhIG5vbi1vYmplY3QgdHlwZSBpcyB1bmRlZmluZWQgYmVoYXZp
b3IuIik7CisgICAgc3RhdGljX2Fzc2VydChpc19ub3Rocm93X2Rlc3RydWN0aWJsZTx2YWx1ZV90
eXBlPjo6dmFsdWUsCisgICAgICAgICJJbnN0YW50aWF0aW9uIG9mIG9wdGlvbmFsIHdpdGggYW4g
b2JqZWN0IHR5cGUgdGhhdCBpcyBub3Qgbm9leGNlcHQgZGVzdHJ1Y3RpYmxlIGlzIHVuZGVmaW5l
ZCBiZWhhdmlvci4iKTsKKworICAgICBDT05TVEVYUFIgb3B0aW9uYWwoKSB7fQorICAgICBvcHRp
b25hbChjb25zdCBvcHRpb25hbCYpID0gZGVmYXVsdDsKKyAgICAgb3B0aW9uYWwob3B0aW9uYWwm
JiBvdGhlcikKKyAgICAgICAgOiBfX2Jhc2UobW92ZShvdGhlci5fX2Jhc2UpKQorICAgIHsKKyAg
ICB9CisKKyAgICAgfm9wdGlvbmFsKCkgPSBkZWZhdWx0OworICAgICBDT05TVEVYUFIgb3B0aW9u
YWwobnVsbG9wdF90KSB7fQorICAgICBDT05TVEVYUFIgb3B0aW9uYWwoY29uc3QgdmFsdWVfdHlw
ZSYgX192KQorICAgICAgICA6IF9fYmFzZShfX3YpIHt9CisgICAgIENPTlNURVhQUiBvcHRpb25h
bCh2YWx1ZV90eXBlJiYgX192KQorICAgICAgICA6IF9fYmFzZShtb3ZlKF9fdikpIHt9CisKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAgICAgIGNsYXNzID0gdHlwZW5h
bWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXNfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlLCBfQXJncy4uLj46OnZhbHVlCisg
ICAgICAgICAgICAgICAgICAgICAgPjo6dHlwZQorICAgICAgICAgICAgID4KKyAgICAKKyAgICBD
T05TVEVYUFIKKyAgICBleHBsaWNpdCBvcHRpb25hbChpbl9wbGFjZV90LCBfQXJncyYmLi4uIF9f
YXJncykKKyAgICAgICAgOiBfX2Jhc2UoaW5fcGxhY2UsIGZvcndhcmQ8X0FyZ3M+KF9fYXJncyku
Li4pIHt9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgX1VwLCBjbGFzcy4uLiBfQXJncywKKyAgICAg
ICAgICAgICAgY2xhc3MgPSB0eXBlbmFtZSBlbmFibGVfaWYKKyAgICAgICAgICAgICAgICAgICAg
ICA8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5
cGUsIGluaXRpYWxpemVyX2xpc3Q8X1VwPiYsIF9BcmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAorICAgIENPTlNURVhQUgor
ICAgIGV4cGxpY2l0IG9wdGlvbmFsKGluX3BsYWNlX3QsIGluaXRpYWxpemVyX2xpc3Q8X1VwPiBf
X2lsLCBfQXJncyYmLi4uIF9fYXJncykKKyAgICAgICAgOiBfX2Jhc2UoaW5fcGxhY2UsIF9faWws
IGZvcndhcmQ8X0FyZ3M+KF9fYXJncykuLi4pIHt9CisKKyAgICAKKyAgICBvcHRpb25hbCYgb3Bl
cmF0b3I9KG51bGxvcHRfdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRfKQor
ICAgICAgICB7CisgICAgICAgICAgICB0aGlzLT5fX3ZhbF8ufnZhbHVlX3R5cGUoKTsKKyAgICAg
ICAgICAgIHRoaXMtPl9fZW5nYWdlZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgCisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KGNv
bnN0IG9wdGlvbmFsJiBfX29wdCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLT5fX2VuZ2FnZWRf
ID09IF9fb3B0Ll9fZW5nYWdlZF8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5f
X2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IF9fb3B0Ll9fdmFsXzsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlz
LT5fX2VuZ2FnZWRfKQorICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlz
LT5fX3ZhbF8pKSB2YWx1ZV90eXBlKF9fb3B0Ll9fdmFsXyk7CisgICAgICAgICAgICB0aGlzLT5f
X2VuZ2FnZWRfID0gX19vcHQuX19lbmdhZ2VkXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQorCisgICAgCisgICAgb3B0aW9uYWwmCisgICAgb3BlcmF0b3I9KG9wdGlv
bmFsJiYgX19vcHQpCisgICAgeworICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXyA9PSBfX29w
dC5fX2VuZ2FnZWRfKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2Vk
XykKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8gPSBtb3ZlKF9fb3B0Ll9fdmFsXyk7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy0+
X19lbmdhZ2VkXykKKyAgICAgICAgICAgICAgICB0aGlzLT5fX3ZhbF8ufnZhbHVlX3R5cGUoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICA6Om5ldyhhZGRyZXNzb2YodGhpcy0+
X192YWxfKSkgdmFsdWVfdHlwZShtb3ZlKF9fb3B0Ll9fdmFsXykpOworICAgICAgICAgICAgdGhp
cy0+X19lbmdhZ2VkXyA9IF9fb3B0Ll9fZW5nYWdlZF87CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXAsCisgICAgICAgICAg
ICAgIGNsYXNzID0gdHlwZW5hbWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19zYW1lPHR5cGVuYW1lIHJlbW92ZV9yZWZlcmVu
Y2U8X1VwPjo6dHlwZSwgdmFsdWVfdHlwZT46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlzX2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZSwgX1VwPjo6dmFsdWUgJiYKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNfYXNzaWduYWJsZTx2YWx1ZV90eXBlJiwgX1VwPjo6dmFs
dWUKKyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgICAgICAgPgorICAgIAor
ICAgIG9wdGlvbmFsJgorICAgIG9wZXJhdG9yPShfVXAmJiBfX3YpCisgICAgeworICAgICAgICBp
ZiAodGhpcy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgIHRoaXMtPl9fdmFsXyA9IGZvcndhcmQ8
X1VwPihfX3YpOworICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIDo6bmV3KGFk
ZHJlc3NvZih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKGZvcndhcmQ8X1VwPihfX3YpKTsKKyAg
ICAgICAgICAgIHRoaXMtPl9fZW5nYWdlZF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gX0FyZ3MsCisgICAg
ICAgICAgICAgIGNsYXNzID0gdHlwZW5hbWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAg
ICAgPAorICAgICAgICAgICAgICAgICAgICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5
cGUsIF9BcmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAg
ICAgICAgICAgPgorICAgIAorICAgIHZvaWQKKyAgICBlbXBsYWNlKF9BcmdzJiYuLi4gX19hcmdz
KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSBudWxsb3B0OworICAgICAgICA6Om5ldyhhZGRyZXNz
b2YodGhpcy0+X192YWxfKSkgdmFsdWVfdHlwZShmb3J3YXJkPF9BcmdzPihfX2FyZ3MpLi4uKTsK
KyAgICAgICAgdGhpcy0+X19lbmdhZ2VkXyA9IHRydWU7CisgICAgfQorCisgICAgdGVtcGxhdGUg
PGNsYXNzIF9VcCwgY2xhc3MuLi4gX0FyZ3MsCisgICAgICAgICAgICAgIGNsYXNzID0gdHlwZW5h
bWUgZW5hYmxlX2lmCisgICAgICAgICAgICAgICAgICAgICAgPAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBpc19jb25zdHJ1Y3RpYmxlPHZhbHVlX3R5cGUsIGluaXRpYWxpemVyX2xpc3Q8X1Vw
PiYsIF9BcmdzLi4uPjo6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICA+Ojp0eXBlCisgICAg
ICAgICAgICAgPgorICAgIAorICAgIHZvaWQKKyAgICBlbXBsYWNlKGluaXRpYWxpemVyX2xpc3Q8
X1VwPiBfX2lsLCBfQXJncyYmLi4uIF9fYXJncykKKyAgICB7CisgICAgICAgICp0aGlzID0gbnVs
bG9wdDsKKyAgICAgICAgOjpuZXcoYWRkcmVzc29mKHRoaXMtPl9fdmFsXykpIHZhbHVlX3R5cGUo
X19pbCwgZm9yd2FyZDxfQXJncz4oX19hcmdzKS4uLik7CisgICAgICAgIHRoaXMtPl9fZW5nYWdl
ZF8gPSB0cnVlOworICAgIH0KKworICAgIAorICAgIHZvaWQKKyAgICBzd2FwKG9wdGlvbmFsJiBf
X29wdCkKKyAgICB7CisgICAgICAgIHVzaW5nIHN0ZDo6c3dhcDsKKyAgICAgICAgaWYgKHRoaXMt
Pl9fZW5nYWdlZF8gPT0gX19vcHQuX19lbmdhZ2VkXykKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHRoaXMtPl9fZW5nYWdlZF8pCisgICAgICAgICAgICAgICAgc3dhcCh0aGlzLT5fX3ZhbF8s
IF9fb3B0Ll9fdmFsXyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAodGhpcy0+X19lbmdhZ2VkXykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICA6Om5ldyhhZGRyZXNzb2YoX19vcHQuX192YWxfKSkgdmFsdWVfdHlwZShtb3ZlKHRoaXMt
Pl9fdmFsXykpOworICAgICAgICAgICAgICAgIHRoaXMtPl9fdmFsXy5+dmFsdWVfdHlwZSgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIDo6bmV3KGFkZHJlc3NvZih0aGlzLT5fX3ZhbF8pKSB2YWx1ZV90eXBlKG1vdmUoX19v
cHQuX192YWxfKSk7CisgICAgICAgICAgICAgICAgX19vcHQuX192YWxfLn52YWx1ZV90eXBlKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2FwKHRoaXMtPl9fZW5nYWdlZF8sIF9fb3B0
Ll9fZW5nYWdlZF8pOworICAgICAgICB9CisgICAgfQorCisgICAgCisgICAgQ09OU1RFWFBSCisg
ICAgdmFsdWVfdHlwZSBjb25zdCoKKyAgICBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZGRyZXNzb2YodGhpcy0+X192YWxfKTsKKyAgICB9CisKKyAgICAKKyAgICB2
YWx1ZV90eXBlKgorICAgIG9wZXJhdG9yLT4oKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSh0aGlzLT5fX2VuZ2FnZWRfLCAib3B0aW9uYWwgb3BlcmF0b3ItPiBjYWxsZWQgZm9y
IGRpc2VuZ2FnZWQgdmFsdWUiKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NvZih0aGlzLT5fX3Zh
bF8pOworICAgIH0KKworICAgIAorICAgIENPTlNURVhQUgorICAgIGNvbnN0IHZhbHVlX3R5cGUm
CisgICAgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLT5fX3Zh
bF87CisgICAgfQorCisgICAgCisgICAgdmFsdWVfdHlwZSYKKyAgICBvcGVyYXRvciooKQorICAg
IHsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSh0aGlzLT5fX2VuZ2FnZWRfLCAib3B0aW9u
YWwgb3BlcmF0b3IqIGNhbGxlZCBmb3IgZGlzZW5nYWdlZCB2YWx1ZSIpOworICAgICAgICByZXR1
cm4gdGhpcy0+X192YWxfOworICAgIH0KKworICAgIAorICAgIENPTlNURVhQUiBleHBsaWNpdCBv
cGVyYXRvciBib29sKCkgY29uc3Qge3JldHVybiB0aGlzLT5fX2VuZ2FnZWRfO30KKworICAgIENP
TlNURVhQUiB2YWx1ZV90eXBlIGNvbnN0JiB2YWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy0+X192YWxfOworICAgIH0KKworICAgIAorICAgIHZhbHVlX3R5cGUmIHZhbHVl
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UodGhpcy0+X19lbmdhZ2VkXywg
Im9wdGlvbmFsPFQ+Ojp2YWx1ZTogbm90IGVuZ2FnZWQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMt
Pl9fdmFsXzsKKyAgICB9CisKKyNpZiBDT01QSUxFUl9TVVBQT1JUUyhDWFhfUkVGRVJFTkNFX1FV
QUxJRklFRF9GVU5DVElPTlMpCisgICAgdGVtcGxhdGUgPGNsYXNzIF9VcD4KKyAgICBDT05TVEVY
UFIgdmFsdWVfdHlwZSB2YWx1ZV9vcihfVXAmJiBfX3YpIGNvbnN0JgorICAgIHsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChpc19jb3B5X2NvbnN0cnVjdGlibGU8dmFsdWVfdHlwZT46OnZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25hbDxUPjo6dmFsdWVfb3I6IFQgbXVzdCBiZSBj
b3B5IGNvbnN0cnVjdGlibGUiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChpc19jb252ZXJ0aWJs
ZTxfVXAsIHZhbHVlX3R5cGU+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAib3B0aW9u
YWw8VD46OnZhbHVlX29yOiBVIG11c3QgYmUgY29udmVydGlibGUgdG8gVCIpOworICAgICAgICBy
ZXR1cm4gdGhpcy0+X19lbmdhZ2VkXyA/IHRoaXMtPl9fdmFsXyA6CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dmFsdWVfdHlwZT4oZm9yd2FyZDxfVXA+KF9f
dikpOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBfVXA+CisgICAgdmFsdWVfdHlwZSB2
YWx1ZV9vcihfVXAmJiBfX3YpICYmCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX21v
dmVfY29uc3RydWN0aWJsZTx2YWx1ZV90eXBlPjo6dmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICAgIm9wdGlvbmFsPFQ+Ojp2YWx1ZV9vcjogVCBtdXN0IGJlIG1vdmUgY29uc3RydWN0aWJsZSIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KGlzX2NvbnZlcnRpYmxlPF9VcCwgdmFsdWVfdHlwZT46
OnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICJvcHRpb25hbDxUPjo6dmFsdWVfb3I6IFUg
bXVzdCBiZSBjb252ZXJ0aWJsZSB0byBUIik7CisgICAgICAgIHJldHVybiB0aGlzLT5fX2VuZ2Fn
ZWRfID8gbW92ZSh0aGlzLT5fX3ZhbF8pIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDx2YWx1ZV90eXBlPihmb3J3YXJkPF9VcD4oX192KSk7CisgICAgfQor
I2VuZGlmCit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorYm9vbAorb3BlcmF0
b3I9PShjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feSkK
K3sKKyAgICBpZiAoc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSAhPSBzdGF0aWNfY2FzdDxib29sPihf
X3kpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxib29sPihf
X3gpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gKl9feCA9PSAqX195OworfQor
Cit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorYm9vbAorb3BlcmF0b3I8KGNvbnN0IG9w
dGlvbmFsPF9UcD4mIF9feCwgY29uc3Qgb3B0aW9uYWw8X1RwPiYgX195KQoreworICAgIGlmICgh
c3RhdGljX2Nhc3Q8Ym9vbD4oX195KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
c3RhdGljX2Nhc3Q8Ym9vbD4oX194KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJu
IGxlc3M8X1RwPnt9KCpfX3gsICpfX3kpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5s
aW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcj09KGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9f
eCwgbnVsbG9wdF90KQoreworICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8Ym9vbD4oX194KTsKK30K
KwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0
b3I9PShudWxsb3B0X3QsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCkKK3sKKyAgICByZXR1cm4g
IXN0YXRpY19jYXN0PGJvb2w+KF9feCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBfVHA+Citpbmxp
bmUgCitDT05TVEVYUFIKK2Jvb2wKK29wZXJhdG9yPChjb25zdCBvcHRpb25hbDxfVHA+JiwgbnVs
bG9wdF90KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4K
K2lubGluZSAKK0NPTlNURVhQUgorYm9vbAorb3BlcmF0b3I8KG51bGxvcHRfdCwgY29uc3Qgb3B0
aW9uYWw8X1RwPiYgX194KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihfX3gpOwor
fQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVy
YXRvcj09KGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCwgY29uc3QgX1RwJiBfX3YpCit7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9feCkgPyAqX194ID09IF9fdiA6IGZhbHNlOworfQor
Cit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRv
cj09KGNvbnN0IF9UcCYgX192LCBjb25zdCBvcHRpb25hbDxfVHA+JiBfX3gpCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGJvb2w+KF9feCkgPyAqX194ID09IF9fdiA6IGZhbHNlOworfQorCit0
ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVyYXRvcjwo
Y29uc3Qgb3B0aW9uYWw8X1RwPiYgX194LCBjb25zdCBfVHAmIF9fdikKK3sKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Ym9vbD4oX194KSA/IGxlc3M8X1RwPnt9KCpfX3gsIF9fdikgOiB0cnVlOwor
fQorCit0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgoraW5saW5lIAorQ09OU1RFWFBSCitib29sCitvcGVy
YXRvcjwoY29uc3QgX1RwJiBfX3YsIGNvbnN0IG9wdGlvbmFsPF9UcD4mIF9feCkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oX194KSA/IGxlc3M8X1RwPnt9KF9fdiwgKl9feCkgOiBm
YWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK3ZvaWQKK3N3YXAob3B0
aW9uYWw8X1RwPiYgX194LCBvcHRpb25hbDxfVHA+JiBfX3kpCit7CisgICAgX194LnN3YXAoX195
KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIF9UcD4KK2lubGluZSAKK0NPTlNURVhQUgorb3B0aW9u
YWw8dHlwZW5hbWUgZGVjYXk8X1RwPjo6dHlwZT4KK21ha2Vfb3B0aW9uYWwoX1RwJiYgX192KQor
eworICAgIHJldHVybiBvcHRpb25hbDx0eXBlbmFtZSBkZWNheTxfVHA+Ojp0eXBlPihmb3J3YXJk
PF9UcD4oX192KSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2Ugc3RkOjpleHBlcmltZW50YWwKKwor
I2VuZGlmIC8vICFTVEFOREFSRF9MSUJfU1VQUE9SVFMoRVhQRVJJTUVOVEFMX09QVElPTkFMKQor
CituYW1lc3BhY2Ugc3RkIHsKKy8vIEhvaXN0IHRoZSBvcHRpb25hbCBvdXQgb2YgdGhlIGV4cGVy
aW1lbnRhbCBuYW1lc3BhY2UgdG8gbWFrZSBpdHMgdXNlIG1vcmUgcGFsYXRhYmxlLgordXNpbmcg
ZXhwZXJpbWVudGFsOjptYWtlX29wdGlvbmFsOwordXNpbmcgZXhwZXJpbWVudGFsOjpudWxsb3B0
OwordXNpbmcgZXhwZXJpbWVudGFsOjpvcHRpb25hbDsKK30KKworCiAjaWYgQ09NUElMRVJfU1VQ
UE9SVFMoQ1hYX1VTRVJfTElURVJBTFMpCiAvLyBUaGVzZSBsaXRlcmFscyBhcmUgYXZhaWxhYmxl
IGluIEMrKzE0LCBzbyBvbmNlIHdlIHJlcXVpcmUgQysrMTQgY29tcGlsZXJzIHdlIGNhbiBnZXQg
cmlkIG9mIHRoZW0gaGVyZS4KIC8vIChVc2VyLWxpdGVyYWxzIG5lZWQgdG8gaGF2ZSBhIGxlYWRp
bmcgdW5kZXJzY29yZSBzbyB3ZSBhZGQgaXQgaGVyZSAtIHRoZSAicmVhbCIgbGl0ZXJhbHMgZG9u
J3QgaGF2ZSB1bmRlcnNjb3JlcykuCi1uYW1lc3BhY2UgbGl0ZXJhbHMgewotbmFtZXNwYWNlIGNo
cm9ub19saXRlcmFscyB7CituYW1lc3BhY2Ugc3RkIHsKK2lubGluZSBuYW1lc3BhY2UgbGl0ZXJh
bHMgeworaW5saW5lIG5hbWVzcGFjZSBjaHJvbm9fbGl0ZXJhbHMgewogICAgIENPTlNURVhQUiBp
bmxpbmUgY2hyb25vOjpzZWNvbmRzIG9wZXJhdG9yIiIgX3ModW5zaWduZWQgbG9uZyBsb25nIHMp
CiAgICAgewogICAgICAgICByZXR1cm4gY2hyb25vOjpzZWNvbmRzKHN0YXRpY19jYXN0PGNocm9u
bzo6c2Vjb25kczo6cmVwPihzKSk7CkBAIC0zOTgsOSArOTQ4LDEyIEBAIG5hbWVzcGFjZSBjaHJv
bm9fbGl0ZXJhbHMgewogICAgIH0KIH0KIH0KLSNlbmRpZgogfQogCisvLyBXZSBub3JtYWxseSBk
b24ndCB3YW50IHRvIGJyaW5nIGluIGVudGlyZSBzdGQgbmFtZXNwYWNlcywgYnV0IGxpdGVyYWxz
IGFyZSBhbiBleGNlcHRpb24uCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpsaXRlcmFsczo6Y2hyb25v
X2xpdGVyYWxzOworI2VuZGlmCisKIHVzaW5nIFdURjo6S0I7CiB1c2luZyBXVEY6Ok1COwogdXNp
bmcgV1RGOjppc0NvbXBpbGF0aW9uVGhyZWFkOwpAQCAtNDEzLDkgKzk2Niw0IEBAIHVzaW5nIFdU
Rjo6YXBwcm94aW1hdGVCaW5hcnlTZWFyY2g7CiB1c2luZyBXVEY6OmJpdHdpc2VfY2FzdDsKIHVz
aW5nIFdURjo6c2FmZUNhc3Q7CiAKLSNpZiBDT01QSUxFUl9TVVBQT1JUUyhDWFhfVVNFUl9MSVRF
UkFMUykKLS8vIFdlIG5vcm1hbGx5IGRvbid0IHdhbnQgdG8gYnJpbmcgaW4gZW50aXJlIHN0ZCBu
YW1lc3BhY2VzLCBidXQgbGl0ZXJhbHMgYXJlIGFuIGV4Y2VwdGlvbi4KLXVzaW5nIG5hbWVzcGFj
ZSBzdGQ6OmxpdGVyYWxzOjpjaHJvbm9fbGl0ZXJhbHM7Ci0jZW5kaWYKLQogI2VuZGlmIC8vIFdU
Rl9TdGRMaWJFeHRyYXNfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>