<?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>200556</bug_id>
          
          <creation_ts>2019-08-08 17:57:27 -0700</creation_ts>
          <short_desc>Teach run-webkit-tests to print a summary of test status</short_desc>
          <delta_ts>2021-08-20 14:58:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>ap</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1559753</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-08-08 17:57:27 -0700</bug_when>
    <thetext>&gt; run-webkit-tests --print-summary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559758</commentid>
    <comment_count>1</comment_count>
      <attachid>375875</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-08-08 18:08:39 -0700</bug_when>
    <thetext>Created attachment 375875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559761</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-08 18:10:54 -0700</bug_when>
    <thetext>Attachment 375875 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:712:  whitespace after &apos;{&apos;  [pep8/E201] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:725:  whitespace after &apos;{&apos;  [pep8/E201] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:738:  too many blank lines (2)  [pep8/E303] [5]
Total errors found: 3 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>1559766</commentid>
    <comment_count>3</comment_count>
      <attachid>375877</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-08-08 18:23:32 -0700</bug_when>
    <thetext>Created attachment 375877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559767</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-08 18:29:02 -0700</bug_when>
    <thetext>What does the output look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559771</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-08-08 19:07:02 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; What does the output look like?

console output below. attached layout_tests.csv.


&gt; run-webkit-tests --print-summary
--lint-test-files warnings:
LayoutTests/platform/mac-wk2/TestExpectations:931 More specific entry for http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html on line LayoutTests/platform/mac-wk2/TestExpectations:931 overrides line LayoutTests/platform/mac-wk2/TestExpectations:722. http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html
LayoutTests/platform/mac-wk2/TestExpectations:957 More specific entry for http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html on line LayoutTests/platform/mac-wk2/TestExpectations:957 overrides line LayoutTests/platform/mac-wk2/TestExpectations:729. http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html


Summary of test expectations in layout test directories:
    55659 total tests
    46688 pass
    7127 are skipped
    850 are flaky
    994 fail for other reasons

Per directory results:
(* means there are no tests in that specific directory)

    DIRECTORY                                            TOTAL    PASS    SKIP   FLAKY    FAIL
    ---------                                            -----    ----    ----   -----    ----
    __root__*                                            55659   46688    7127     850     994
    accessibility                                          836     629     196       9       2
    animations                                             166     149       1      12       4
    applicationmanifest                                      6 ██ PASS ███████████████████████
    canvas*                                                775     761       0       8       6
    compositing                                            736     683      17      20      16
    contentfiltering                                        21 ██ PASS ███████████████████████
    crypto                                                 474     451      23       0       0
    css-custom-properties-api                               10 ██ PASS ███████████████████████
    css-dark-mode                                           13      10       3       0       0
    css-typedom                                              3 ██ PASS ███████████████████████
    css1*                                                  109 ██ PASS ███████████████████████
    css2.1                                                 963     953       8       0       2
    css3                                                  1918    1839      43       6      30
    cssom                                                    6 ██ PASS ███████████████████████
    displaylists                                             5 ██ PASS ███████████████████████
    dom*                                                  2530    2494      35       0       1
    editing                                               2055    1752     271       5      27
    fast                                                 13328   12013    1107     105     103
    fast/animation                                          36      33       2       1       0
    fast/attachment                                         21      19       2       0       0
    fast/autoresize                                          3 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    fast/backgrounds                                       100      98       0       1       1
    fast/block                                             634     629       3       0       2
    fast/body-propagation*                                  65 ██ PASS ███████████████████████
    fast/borders                                           165     160       0       2       3
    fast/box-decoration-break                                3 ██ PASS ███████████████████████
    fast/box-shadow                                         26      25       1       0       0
    fast/box-sizing                                         12 ██ PASS ███████████████████████
    fast/canvas                                            513     487       2      18       6
    fast/clip                                               27 ██ PASS ███████████████████████
    fast/compact                                             3 ██ PASS ███████████████████████
    fast/constructors                                        2 ██ PASS ███████████████████████
    fast/cookies                                             2 ██ PASS ███████████████████████
    fast/css                                              1499    1471      16       7       5
    fast/css-custom-paint                                   15      14       0       1       0
    fast/css-generated-content                             105     104       0       0       1
    fast/css-grid-layout                                   336     325       1       1       9
    fast/css-intrinsic-dimensions                           41      39       0       0       2
    fast/css3-text                                          84      71      11       0       2
    fast/custom-elements                                    20 ██ PASS ███████████████████████
    fast/device-orientation                                  6 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    fast/doctypes                                           14 ██ PASS ███████████████████████
    fast/dom                                              1615    1551      45       8      11
    fast/dynamic                                            90      87       1       0       2
    fast/encoding                                          115     114       1       0       0
    fast/events                                            937     519     409       2       7
    fast/eventsource                                         2 ██ PASS ███████████████████████
    fast/fast-mobile-scrolling                               2 ██ PASS ███████████████████████
    fast/files                                              42      25      17       0       0
    fast/filter-image                                        7 ██ PASS ███████████████████████
    fast/fixed-layout                                        1 ██ PASS ███████████████████████
    fast/flexbox                                            66 ██ PASS ███████████████████████
    fast/forms                                            1163     975     180       6       2
    fast/frames                                            239     223       7       9       0
    fast/gradients                                          65 ██ PASS ███████████████████████
    fast/harness                                            25      20       3       0       2
    fast/hidpi                                              72      65       0       1       6
    fast/history                                            77      70       4       2       1
    fast/html                                              138     137       1       0       0
    fast/images                                            170     160       7       3       0
    fast/inline                                            120     119       0       0       1
    fast/inline-block                                       31 ██ PASS ███████████████████████
    fast/innerHTML                                          17 ██ PASS ███████████████████████
    fast/inspector-support                                   6 ██ PASS ███████████████████████
    fast/invalid                                            35 ██ PASS ███████████████████████
    fast/layers                                             51 ██ PASS ███████████████████████
    fast/leaks                                               3       2       1       0       0
    fast/line-grid                                          12 ██ PASS ███████████████████████
    fast/lists                                              80      79       1       0       0
    fast/loader                                            186     175       9       2       0
    fast/masking                                             8 ██ PASS ███████████████████████
    fast/media                                             117     113       4       0       0
    fast/mediacapturefromelement                            10       4       4       2       0
    fast/mediastream                                       118     103       9       5       1
    fast/misc                                                5 ██ PASS ███████████████████████
    fast/multicol                                          396     393       0       0       3
    fast/overflow                                           77      75       2       0       0
    fast/parser                                            207     206       1       0       0
    fast/performance                                         3 ██ PASS ███████████████████████
    fast/picture                                             4 ██ PASS ███████████████████████
    fast/preloader                                          17      15       0       2       0
    fast/reflections                                        18 ██ PASS ███████████████████████
    fast/regex                                              23 ██ PASS ███████████████████████
    fast/repaint                                           298     288       4       4       2
    fast/replaced                                          101      96       3       2       0
    fast/ruby                                               96      91       4       0       1
    fast/scrolling                                         201     105      92       3       1
    fast/selectors                                         348     347       1       0       0
    fast/shadow-dom                                        121     116       5       0       0
    fast/shapes                                            124 ██ PASS ███████████████████████
    fast/shrink-wrap                                         1 ██ PASS ███████████████████████
    fast/spatial-navigation                                 42 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    fast/speechsynthesis                                    12      11       0       1       0
    fast/storage                                             2 ██ PASS ███████████████████████
    fast/sub-pixel                                          52      48       0       0       4
    fast/table                                             412     407       2       2       1
    fast/text                                              777     745       6       7      19
    fast/text-autosizing                                    25      15       2       8       0
    fast/text-indicator                                      3 ██ PASS ███████████████████████
    fast/tokenizer                                          41 ██ PASS ███████████████████████
    fast/transforms                                         31 ██ PASS ███████████████████████
    fast/url                                                38 ██ PASS ███████████████████████
    fast/viewport                                          180 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    fast/visual-viewport                                    36      27       9       0       0
    fast/web-share                                           2 ██ PASS ███████████████████████
    fast/workers                                            51      47       2       2       0
    fast/writing-mode                                       80      69       1       2       8
    fast/xmlhttprequest                                     34      33       0       1       0
    fast/xpath                                              69 ██ PASS ███████████████████████
    fast/xsl                                                44 ██ PASS ███████████████████████
    fast/zooming                                             4       3       1       0       0
    fetch                                                    9       8       1       0       0
    fonts                                                   10 ██ PASS ███████████████████████
    fullscreen                                              58 ██ PASS ███████████████████████
    gamepad                                                  5       3       0       2       0
    geometry                                                 2 ██ PASS ███████████████████████
    html5lib                                                97 ██ PASS ███████████████████████
    http*                                                 3486    3159     206      79      42
    http/tests*                                           3298    2990     204      65      39
    http/tests/IndexedDB                                     4 ██ PASS ███████████████████████
    http/tests/adClickAttribution                           15 ██ PASS ███████████████████████
    http/tests/appcache                                     87      85       2       0       0
    http/tests/blink*                                        8 ██ PASS ███████████████████████
    http/tests/cache                                        76      66       3       7       0
    http/tests/cache-storage                                 6       5       0       1       0
    http/tests/canvas                                       13      12       0       0       1
    http/tests/contentdispositionattachmentsandbox          16 ██ PASS ███████████████████████
    http/tests/contentextensions                            61      58       0       3       0
    http/tests/contentfiltering                              4 ██ PASS ███████████████████████
    http/tests/cookies                                      41      37       3       0       1
    http/tests/css                                          21      18       0       3       0
    http/tests/dom                                          20 ██ PASS ███████████████████████
    http/tests/download                                     12       9       3       0       0
    http/tests/events                                        4       2       2       0       0
    http/tests/eventsource                                  17 ██ PASS ███████████████████████
    http/tests/fetch                                        10       9       0       1       0
    http/tests/fileapi                                       4 ██ PASS ███████████████████████
    http/tests/frame-throttling                              2 ██ PASS ███████████████████████
    http/tests/fullscreen                                    2 ██ PASS ███████████████████████
    http/tests/globalhistory                                 6       4       2       0       0
    http/tests/gzip-content-encoding                         4 ██ PASS ███████████████████████
    http/tests/history                                      36      35       0       0       1
    http/tests/images                                       14      10       4       0       0
    http/tests/incremental                                   7       6       1       0       0
    http/tests/inspector*                                   40      35       4       1       0
    http/tests/intersection-observer                         1 ██ PASS ███████████████████████
    http/tests/loading                                      55      46       4       3       2
    http/tests/local                                        36      20      14       0       2
    http/tests/media                                        80      57       8      10       5
    http/tests/messaging                                     2 ██ PASS ███████████████████████
    http/tests/mime                                          9 ██ PASS ███████████████████████
    http/tests/misc                                        169     156       9       3       1
    http/tests/multipart                                    11       9       2       0       0
    http/tests/navigation                                  165     139      20       4       2
    http/tests/notifications                                 9 ██ PASS ███████████████████████
    http/tests/paymentrequest                               18 ██ PASS ███████████████████████
    http/tests/performance                                   9 ██ PASS ███████████████████████
    http/tests/plugins                                      23      22       1       0       0
    http/tests/pointer-lock                                  7 ██ PASS ███████████████████████
    http/tests/preconnect                                    3 ██ PASS ███████████████████████
    http/tests/preload                                      23      21       1       1       0
    http/tests/quicklook                                    12 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    http/tests/referrer-policy*                             24 ██ PASS ███████████████████████
    http/tests/referrer-policy-iframe*                      24 ██ PASS ███████████████████████
    http/tests/referrer-policy-script*                      24 ██ PASS ███████████████████████
    http/tests/resourceLoadStatistics                       65      56       5       4       0
    http/tests/security                                   1378    1273      84       5      16
    http/tests/ssl                                          27      26       1       0       0
    http/tests/storage                                       2 ██ PASS ███████████████████████
    http/tests/storageAccess                                28      24       3       1       0
    http/tests/subresource-integrity                         8 ██ PASS ███████████████████████
    http/tests/svg                                           8       7       0       1       0
    http/tests/uri                                           7 ██ PASS ███████████████████████
    http/tests/webAPIStatistics                              4 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    http/tests/webarchive                                    5       2       0       0       3
    http/tests/webfont                                       4       3       1       0       0
    http/tests/webgl*                                        4       3       1       0       0
    http/tests/webrtc                                        3       1       0       2       0
    http/tests/websocket                                   156     139       8       6       3
    http/tests/workers                                      78      75       1       2       0
    http/tests/xmlhttprequest                              274     264       1       7       2
    http/tests/xmlviewer*                                   12 ██ PASS ███████████████████████
    http/tests/xsl                                           1 ██ PASS ███████████████████████
    http/wpt*                                              188     169       2      14       3
    http/wpt/2dcontext*                                      3 ██ PASS ███████████████████████
    http/wpt/beacon                                         18      17       0       0       1
    http/wpt/cache-storage                                  10 ██ PASS ███████████████████████
    http/wpt/credential-management                           5 ██ PASS ███████████████████████
    http/wpt/cross-origin-resource-policy                    1 ██ PASS ███████████████████████
    http/wpt/crypto                                         22 ██ PASS ███████████████████████
    http/wpt/css*                                            4 ██ PASS ███████████████████████
    http/wpt/cssom                                           1 ██ PASS ███████████████████████
    http/wpt/entries-api                                     1 ██ PASS ███████████████████████
    http/wpt/fetch                                          18 ██ PASS ███████████████████████
    http/wpt/geometry                                        2 ██ PASS ███████████████████████
    http/wpt/html*                                           7       4       2       1       0
    http/wpt/loading                                         1 ██ PASS ███████████████████████
    http/wpt/mediarecorder                                   4 ██ PASS ███████████████████████
    http/wpt/offscreen-canvas                                4 ██ PASS ███████████████████████
    http/wpt/prefetch                                        4 ██ PASS ███████████████████████
    http/wpt/preload                                         3 ██ PASS ███████████████████████
    http/wpt/resource-timing                                24      12       0      11       1
    http/wpt/service-workers                                15      14       0       1       0
    http/wpt/webaudio                                        1 ██ PASS ███████████████████████
    http/wpt/webauthn                                       29      28       0       0       1
    http/wpt/webrtc                                          3       2       0       1       0
    http/wpt/workers                                         8 ██ PASS ███████████████████████
    ietestcenter*                                         1451    1418       2       0      31
    imported*                                            13556    9781    2971     201     603
    imported/blink                                        1113    1091       7       9       6
    imported/blink/accessibility                             2 ██ PASS ███████████████████████
    imported/blink/animations                               29 ██ PASS ███████████████████████
    imported/blink/compositing                              68      67       0       1       0
    imported/blink/css-parser                                1 ██ PASS ███████████████████████
    imported/blink/css3                                     38 ██ PASS ███████████████████████
    imported/blink/cssom                                     1 ██ PASS ███████████████████████
    imported/blink/dialog                                    6 ██ PASS ███████████████████████
    imported/blink/editing                                  34 ██ PASS ███████████████████████
    imported/blink/fast*                                   642     630       4       4       4
    imported/blink/fullscreen                                1 ██ PASS ███████████████████████
    imported/blink/http*                                    29      26       0       1       2
    imported/blink/imported*                               107 ██ PASS ███████████████████████
    imported/blink/loader                                    1 ██ PASS ███████████████████████
    imported/blink/media                                     3 ██ PASS ███████████████████████
    imported/blink/paint*                                   12 ██ PASS ███████████████████████
    imported/blink/plugins                                   4 ██ PASS ███████████████████████
    imported/blink/printing                                  1 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    imported/blink/scrollbars                                3 ██ PASS ███████████████████████
    imported/blink/storage*                                  5       1       2       2       0
    imported/blink/svg                                     101 ██ PASS ███████████████████████
    imported/blink/transforms                                3 ██ PASS ███████████████████████
    imported/blink/transitions                               9       8       0       1       0
    imported/blink/virtual*                                  3 ██ PASS ███████████████████████
    imported/blink/webexposed                                2 ██ PASS ███████████████████████
    imported/mozilla*                                      561     468       1       6      86
    imported/mozilla/css-animations                         21      17       1       3       0
    imported/mozilla/css-transitions                        15      14       0       1       0
    imported/mozilla/svg                                   525     437       0       2      86
    imported/w3c*                                        11882    8222    2963     186     511
    imported/w3c/IndexedDB-private-browsing                244 ██ PASS ███████████████████████
    imported/w3c/canvas                                    784     688      42       0      54
    imported/w3c/i18n*                                      94      93       0       0       1
    imported/w3c/web-platform-tests*                     10760    7197    2921     186     456
    imported/w3c/web-platform-tests/2dcontext*               7       6       0       1       0
    imported/w3c/web-platform-tests/FileAPI                 45      42       0       1       2
    imported/w3c/web-platform-tests/IndexedDB              351     334       4      13       0
    imported/w3c/web-platform-tests/WebCryptoAPI            90      70      16       4       0
    imported/w3c/web-platform-tests/WebIDL                  22 ██ PASS ███████████████████████
    ...mported/w3c/web-platform-tests/background-fetch       3 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    imported/w3c/web-platform-tests/beacon                  19      18       0       1       0
    ...w3c/web-platform-tests/content-security-policy*     462     254     208       0       0
    imported/w3c/web-platform-tests/cors                    22       9       1       5       7
    ...ed/w3c/web-platform-tests/credential-management       5 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/css*                  3057    2315     340      19     383
    imported/w3c/web-platform-tests/css-timing-1             4 ██ PASS ███████████████████████
    ...imported/w3c/web-platform-tests/custom-elements      62      60       2       0       0
    imported/w3c/web-platform-tests/dom                    286     282       0       3       1
    imported/w3c/web-platform-tests/domparsing              24 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/encoding               106 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    ...imported/w3c/web-platform-tests/encrypted-media     100 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    imported/w3c/web-platform-tests/eventsource             61      59       1       0       1
    imported/w3c/web-platform-tests/fetch*                 282     228      41       9       4
    imported/w3c/web-platform-tests/hr-time                 10       9       0       0       1
    imported/w3c/web-platform-tests/html*                 1895    1700     130      41      24
    ...web-platform-tests/imagebitmap-renderingcontext       6 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/infrastructure          26      16       7       0       3
    imported/w3c/web-platform-tests/innerText                2 ██ PASS ███████████████████████
    ...ed/w3c/web-platform-tests/intersection-observer      32 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/loading*                 4       2       2       0       0
    imported/w3c/web-platform-tests/mathml*                 70      61       1       3       5
    imported/w3c/web-platform-tests/media-source            64      28      27       9       0
    ...w3c/web-platform-tests/mediacapture-fromelement       4       1       0       1       2
    ...rted/w3c/web-platform-tests/mediacapture-record       6       5       0       1       0
    ...ted/w3c/web-platform-tests/mediacapture-streams      31 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/mimesniff*               3 ██ PASS ███████████████████████
    ...mported/w3c/web-platform-tests/mst-content-hint       2       1       1       0       0
    ...ported/w3c/web-platform-tests/navigation-timing       2 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/notifications            9 ██ PASS ███████████████████████
    ...imported/w3c/web-platform-tests/payment-request      74      36      38       0       0
    ...ted/w3c/web-platform-tests/performance-timeline       2 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/pointerevents           92      32      60       0       0
    imported/w3c/web-platform-tests/preload                 14 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/quirks*                  6 ██ PASS ███████████████████████
    ...mported/w3c/web-platform-tests/referrer-policy*    1629 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    ...imported/w3c/web-platform-tests/resize-observer       5       4       0       1       0
    ...imported/w3c/web-platform-tests/resource-timing      54      42       3       6       3
    ...imported/w3c/web-platform-tests/secure-contexts       8       1       7       0       0
    imported/w3c/web-platform-tests/server-timing           10       6       4       0       0
    ...imported/w3c/web-platform-tests/service-workers     292     248      33      10       1
    imported/w3c/web-platform-tests/shadow-dom              42 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/streams                108     106       0       2       0
    imported/w3c/web-platform-tests/touch-events             5 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    imported/w3c/web-platform-tests/url                     25      24       0       1       0
    imported/w3c/web-platform-tests/user-timing             42 ██ PASS ███████████████████████
    ...imported/w3c/web-platform-tests/visual-viewport      12 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/wasm                    50 ██ PASS ███████████████████████
    ...imported/w3c/web-platform-tests/web-animations*      64      63       0       1       0
    imported/w3c/web-platform-tests/web-share                5 ██ PASS ███████████████████████
    imported/w3c/web-platform-tests/webaudio                86      84       1       0       1
    imported/w3c/web-platform-tests/webmessaging            98      74      24       0       0
    imported/w3c/web-platform-tests/webrtc                 103      90       7       2       4
    imported/w3c/web-platform-tests/websockets             283     154      87      41       1
    imported/w3c/web-platform-tests/workers                179     148      29       2       0
    imported/w3c/web-platform-tests/xhr                    298     272       4       9      13
    inspector*                                             436     346       6      84       0
    intersection-observer                                   11 ██ PASS ███████████████████████
    jquery                                                  11      10       1       0       0
    js                                                    1311    1291       7      11       2
    legacy-animation-engine*                               486     415       9      60       2
    loader                                                  36      32       3       1       0
    mathml                                                 187     180       7       0       0
    media                                                 1132     873     145      82      32
    memory                                                   1       0       0       1       0
    mhtml                                                   11 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    pageoverlay                                              6 ██ PASS ███████████████████████
    perf                                                    22 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    performance-api                                         19      16       0       3       0
    platform*                                              256      47     198       8       3
    platform/gtk*                                           26 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/ios*                                           85 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/ipad*                                          18 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/iphone-7*                                       4 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/mac*                                           79      38      34       5       2
    platform/mac-wk1*                                        1 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/mac-wk2*                                       13       9       0       3       1
    platform/mac-wk2/accessibility                           1 ██ PASS ███████████████████████
    platform/mac-wk2/plugins                                12       8       0       3       1
    platform/mac/fast*                                      47      22      20       3       2
    platform/mac/fonts                                       1 ██ PASS ███████████████████████
    platform/mac/media                                      12      10       0       2       0
    platform/mac/plugins                                    16       3      13       0       0
    platform/mac/scrollbars                                  1 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    platform/mac/svg*                                        1 ██ PASS ███████████████████████
    platform/mac/webrtc                                      1 ██ PASS ███████████████████████
    platform/win*                                           30 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    plugins                                                154      98      31      20       5
    pointer-lock                                            15      10       5       0       0
    pointerevents                                           63       9      54       0       0
    printing                                                62      61       1       0       0
    quicklook                                               16 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    resize-observer                                          6 ██ PASS ███████████████████████
    scrollbars                                              48      45       3       0       0
    scrollingcoordinator                                    73      38      33       2       0
    security                                                34      25       5       4       0
    storage                                                734     685      27      13       9
    streams                                                 29      25       0       4       0
    svg                                                   2759    2682      10      35      32
    swipe                                                    5       3       0       1       1
    system-preview                                           2 ░░░░░░░░░░ SKIP ░░░░░░░░░░░░░░░
    tables                                                 958     957       0       1       0
    tiled-drawing                                          136     124       1      11       0
    transforms                                              54 ██ PASS ███████████████████████
    transitions                                            116      66       7      42       1
    traversal                                               34 ██ PASS ███████████████████████
    userscripts                                             19      16       3       0       0
    wasm                                                     3 ██ PASS ███████████████████████
    webanimations                                           22 ██ PASS ███████████████████████
    webarchive                                              34      25       2       2       5
    webaudio                                               116     102       6       7       1
    webexposed                                               1 ██ PASS ███████████████████████
    webgl                                                 3361    1703    1618       6      34
    webgpu                                                 149     148       0       1       0
    webrtc                                                  82      80       0       2       0
    webvr                                                    2 ██ PASS ███████████████████████
    workers                                                 19       7      10       2       0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559772</commentid>
    <comment_count>6</comment_count>
      <attachid>375879</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-08-08 19:07:35 -0700</bug_when>
    <thetext>Created attachment 375879
layout_tests.csv</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559931</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-09 10:18:25 -0700</bug_when>
    <thetext>I&apos;m not really a fan of of the ░ and █</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641319</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-14 04:44:22 -0700</bug_when>
    <thetext>This seems a nice to have feature.
Any chance of landing it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785897</commentid>
    <comment_count>9</comment_count>
      <attachid>436007</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 10:32:54 -0700</bug_when>
    <thetext>Created attachment 436007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785898</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 10:33:45 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #9)
&gt; Created attachment 436007 [details]
&gt; Patch

Truitt asked be to rebase this, because of a change Sam Sneddon made a few weeks back. Given that a few folks have found it useful, maybe we should land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785955</commentid>
    <comment_count>11</comment_count>
      <attachid>436018</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 13:06:27 -0700</bug_when>
    <thetext>Created attachment 436018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786002</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 14:57:46 -0700</bug_when>
    <thetext>Committed r281340 (?): &lt;https://commits.webkit.org/r281340&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436018.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786003</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-20 14:58:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/82187053&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375875</attachid>
            <date>2019-08-08 18:08:39 -0700</date>
            <delta_ts>2019-08-08 18:23:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200556-20190808180838.patch</filename>
            <type>text/plain</type>
            <size>12320</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGNlNWUzYzZmOTBmZTJmMmY5ZDEyMzM1MmM2MTIyMTY1
YmEzNjRiMy4uYzNlZWFiY2Q2MDBmODViOGRhZTdmZGJhOGRkYTNhODJiOTJjNDUwNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE5LTA4LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBU
ZWFjaCBydW4td2Via2l0LXRlc3RzIHRvIHByaW50IGEgc3VtbWFyeSBvZiB0ZXN0IHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNTU2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IG9wdGlvbiB0byBwcmludCBhIHN1bW1hcnkgbGlzdGluZyB0ZXN0IGV4cGVjdGF0aW9uIGhlYWx0
aC4KKyAgICAgICAgSXQgdXNlcyB0aGUgc2FtZSBleHBlY3RlZCByZXN1bHRzIGFzIC0tcHJpbnQt
ZXhwZWN0YXRpb25zLgorCisgICAgICAgIFRvIHJ1biBpdDogcnVuLXdlYmtpdC10ZXN0cyAtLXBy
aW50LXN1bW1hcnkKKworICAgICAgICBZb3UgY2FuIHBhc3MgdGhlIHNhbWUgYXJndW1lbnRzIGFz
IG5vcm1hbCBydW4td2Via2l0LXRlc3RzIGFuZCBpdCB3aWxsCisgICAgICAgIHJldHVybiBzdGF0
cyBiYXNlZCBvbiB0aGUgdGVzdHMgY29sbGVjdGVkLgorCisgICAgICAgIEl0IGFsc28gb3V0cHV0
cyBhIC5jc3YgZmlsZSB3aXRoIHRoZSBkYXRhLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIu
cHJpbnRfZXhwZWN0YXRpb25zKTogR2F0aGVyIHRoZSB0ZXN0cy4gTm90ZSB3aGV0aGVyIHRoZSB0
ZXN0CisgICAgICAgIGlzIG1hcmtlZCBhcyBza2lwLCBwYXNzLCBmbGFreSwgb3IgZmFpbCwgdGhl
IGRlZmluaXRpb25zIG9mIHdoaWNoIGFyZQorICAgICAgICBkaWN0YXRlZCBieSBtb2RlbC5nZXRf
dGVzdHNfd2l0aF9yZXN1bHRfdHlwZSgpLiBPdXRwdXQgdGhlIHJlc3VsdHMgdG8KKyAgICAgICAg
Y29tbWFuZCBsaW5lIGFzIHdlbGwgYXMgdG8gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OiBBZGQgdGhlIG5ldyBvcHRpb24u
CisgICAgICAgIEl0IGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwYXRoIGFzIC0tcHJpbnQtZXhwZWN0
YXRpb25zLgorCiAyMDE5LTA4LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLiBHZXQgcmlkIG9mIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBpbiBDaGFu
Z2VMb2cuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA2OTM2OWM2MWZkMmNhNTY4ZjVhODNjZGE4
ODFlMzlkYTgzZDhjZTA0Li5lMTRiNTYyMmY0ZTEzMDUwNzI5MWQxNTJmNTEzNzcwYjU5ZmU4Y2Ji
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTEsMyArMSw1IEBACisjIC0qLSBjb2Rpbmc6IFVU
Ri04IC0qLQorCiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR2Fib3IgUmFwY3NhbnlpIChyZ2Fib3JAaW5m
LnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICMKQEAgLTM0LDkgKzM2LDEyIEBA
IG9iamVjdHMgdG8gdGhlIE1hbmFnZXIuIFRoZSBNYW5hZ2VyIHRoZW4gYWdncmVnYXRlcyB0aGUg
VGVzdEZhaWx1cmVzIHRvCiBjcmVhdGUgYSBmaW5hbCByZXBvcnQuCiAiIiIKIAoraW1wb3J0IGNz
dgogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGltcG9ydCByYW5kb20K
K2ltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IGRlZmF1bHRkaWN0LCBPcmRlcmVkRGljdApAQCAtNjg1LDMgKzY5MCwxNDIgQEAgY2xhc3Mg
TWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0YXRpb25zX2Zv
cl9zdWJzZXQoZGV2aWNlX3R5cGUsIHRlc3RfY29sX3dpZHRoLCB0ZXN0c190b19ydW5fYnlfZGV2
aWNlW2RldmljZV90eXBlXSkKIAogICAgICAgICByZXR1cm4gMAorCisgICAgZGVmIHByaW50X3N1
bW1hcnkoc2VsZiwgYXJncyk6CisgICAgICAgIGRldmljZV90eXBlX2xpc3QgPSBzZWxmLl9wb3J0
LkRFRkFVTFRfREVWSUNFX1RZUEVTIG9yIFtzZWxmLl9wb3J0LkRFVklDRV9UWVBFXQorICAgICAg
ICB0ZXN0X3N0YXRzID0ge30KKworICAgICAgICBmb3IgZGV2aWNlX3R5cGUgaW4gZGV2aWNlX3R5
cGVfbGlzdDoKKyAgICAgICAgICAgICIiIlJ1biB0aGUgdGVzdHMgYW5kIHJldHVybiBhIFJ1bkRl
dGFpbHMgb2JqZWN0IHdpdGggdGhlIHJlc3VsdHMuIiIiCisgICAgICAgICAgICBmb3JfZGV2aWNl
X3R5cGUgPSAnZm9yIHt9ICcuZm9ybWF0KGRldmljZV90eXBlKSBpZiBkZXZpY2VfdHlwZSBlbHNl
ICcnCisgICAgICAgICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnQ29sbGVjdGluZyB0
ZXN0cyB7fS4uLicuZm9ybWF0KGZvcl9kZXZpY2VfdHlwZSkpCisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgcGF0aHMsIHRlc3RfbmFtZXMgPSBzZWxmLl9jb2xsZWN0X3Rlc3RzKGFy
Z3MsIGRldmljZV90eXBlPWRldmljZV90eXBlKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6
CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHJhaXNlZCBpZiAtLXRlc3QtbGlzdCBkb2Vzbid0
IGV4aXN0CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMuUnVuRGV0YWls
cyhleGl0X2NvZGU9LTEpCisKKyAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRl
KCdQYXJzaW5nIGV4cGVjdGF0aW9ucyB7fS4uLicuZm9ybWF0KGZvcl9kZXZpY2VfdHlwZSkpCisg
ICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNbZGV2aWNlX3R5cGVdID0gdGVzdF9leHBlY3Rh
dGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhzZWxmLl9wb3J0LCB0ZXN0X25hbWVzLCBmb3JjZV9leHBl
Y3RhdGlvbnNfcGFzcz1zZWxmLl9vcHRpb25zLmZvcmNlLCBkZXZpY2VfdHlwZT1kZXZpY2VfdHlw
ZSkKKyAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2VfdHlwZV0ucGFyc2VfYWxs
X2V4cGVjdGF0aW9ucygpCisKKyAgICAgICAgICAgIHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVdID0g
eyAnX19yb290X18nOiB7ICdjb3VudCc6IDAsICdza2lwJzogMCwgJ3Bhc3MnOiAwLCAnZmxha3kn
OiAwLCAnZmFpbCc6IDAsICdoYXNfdGVzdHMnOiBGYWxzZSB9fQorICAgICAgICAgICAgZGV2aWNl
X3Rlc3Rfc3RhdHMgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlXQorCisgICAgICAgICAgICBtb2Rl
bCA9IHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2VfdHlwZV0ubW9kZWwoKQorICAgICAgICAgICAg
dGVzdHNfc2tpcHBlZCA9IG1vZGVsLmdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhw
ZWN0YXRpb25zLlNLSVApCisgICAgICAgICAgICB0ZXN0c19wYXNzaW5nID0gbW9kZWwuZ2V0X3Rl
c3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuUEFTUykKKyAgICAgICAgICAg
IHRlc3RzX2ZsYWt5ID0gbW9kZWwuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBl
Y3RhdGlvbnMuRkxBS1kpCisgICAgICAgICAgICB0ZXN0c19taXNjX2ZhaWwgPSBtb2RlbC5nZXRf
dGVzdHNfd2l0aF9yZXN1bHRfdHlwZSh0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMKQorCisgICAgICAg
ICAgICBkZWYgX2luY3JlbWVudF9zdGF0KGRpcm5hbWUsIHRlc3RfbmFtZSwgdGVzdF9pbl9kaXJl
Y3RvcnkpOgorICAgICAgICAgICAgICAgIGlmIGRpcm5hbWUgaW4gZGV2aWNlX3Rlc3Rfc3RhdHM6
CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydjb3VudCdd
ICs9IDEKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkZXZpY2Vf
dGVzdF9zdGF0c1tkaXJuYW1lXSA9IHsgJ2NvdW50JzogMSwgJ3NraXAnOiAwLCAncGFzcyc6IDAs
ICdmbGFreSc6IDAsICdmYWlsJzogMCwgJ2hhc190ZXN0cyc6IEZhbHNlIH0KKworICAgICAgICAg
ICAgICAgIGlmIHRlc3RfbmFtZSBpbiB0ZXN0c19za2lwcGVkOgorICAgICAgICAgICAgICAgICAg
ICBkZXZpY2VfdGVzdF9zdGF0c1tkaXJuYW1lXVsnc2tpcCddICs9IDEKKyAgICAgICAgICAgICAg
ICBpZiB0ZXN0X25hbWUgaW4gdGVzdHNfcGFzc2luZzoKKyAgICAgICAgICAgICAgICAgICAgZGV2
aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ3Bhc3MnXSArPSAxCisgICAgICAgICAgICAgICAgaWYg
dGVzdF9uYW1lIGluIHRlc3RzX2ZsYWt5OgorICAgICAgICAgICAgICAgICAgICBkZXZpY2VfdGVz
dF9zdGF0c1tkaXJuYW1lXVsnZmxha3knXSArPSAxCisgICAgICAgICAgICAgICAgaWYgdGVzdF9u
YW1lIGluIHRlc3RzX21pc2NfZmFpbDoKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rf
c3RhdHNbZGlybmFtZV1bJ2ZhaWwnXSArPSAxCisgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rf
c3RhdHNbZGlybmFtZV1bJ2hhc190ZXN0cyddID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1b
J2hhc190ZXN0cyddIG9yIHRlc3RfaW5fZGlyZWN0b3J5CisKKworICAgICAgICAgICAgZm9yIHRl
c3RfbmFtZSBpbiBzZWxmLl9leHBlY3RhdGlvbnNbZGV2aWNlX3R5cGVdLl9mdWxsX3Rlc3RfbGlz
dDoKKyAgICAgICAgICAgICAgICBwYXRoID0gdGVzdF9uYW1lCisgICAgICAgICAgICAgICAgdGVz
dF9pbl9kaXJlY3RvcnkgPSBUcnVlCisgICAgICAgICAgICAgICAgd2hpbGUgcGF0aCAhPSAnJzoK
KyAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQorICAgICAg
ICAgICAgICAgICAgICBfaW5jcmVtZW50X3N0YXQocGF0aCBvciAnX19yb290X18nLCB0ZXN0X25h
bWUsIHRlc3RfaW5fZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICB0ZXN0X2luX2RpcmVj
dG9yeSA9IEZhbHNlCisKKyAgICAgICAgICAgIHByaW50KCcnKQorICAgICAgICAgICAgcHJpbnQo
J1N1bW1hcnkgb2YgdGVzdCBleHBlY3RhdGlvbnMge31pbiBsYXlvdXQgdGVzdCBkaXJlY3Rvcmll
czonLmZvcm1hdChmb3JfZGV2aWNlX3R5cGUpKQorICAgICAgICAgICAgcm9vdCA9IGRldmljZV90
ZXN0X3N0YXRzWydfX3Jvb3RfXyddCisgICAgICAgICAgICBwcmludCgnICAgIHt9IHRvdGFsIHRl
c3RzJy5mb3JtYXQocm9vdFsnY291bnQnXSkpCisgICAgICAgICAgICBwcmludCgnICAgIHt9IHBh
c3MnLmZvcm1hdChyb290WydwYXNzJ10pKQorICAgICAgICAgICAgcHJpbnQoJyAgICB7fSBhcmUg
c2tpcHBlZCcuZm9ybWF0KHJvb3RbJ3NraXAnXSkpCisgICAgICAgICAgICBwcmludCgnICAgIHt9
IGFyZSBmbGFreScuZm9ybWF0KHJvb3RbJ2ZsYWt5J10pKQorICAgICAgICAgICAgcHJpbnQoJyAg
ICB7fSBmYWlsIGZvciBvdGhlciByZWFzb25zJy5mb3JtYXQocm9vdFsnZmFpbCddKSkKKworICAg
ICAgICAgICAgcHJpbnQoJycpCisgICAgICAgICAgICBwcmludCgnUGVyIGRpcmVjdG9yeSByZXN1
bHRzOicpCisgICAgICAgICAgICBwcmludCgnKCogbWVhbnMgdGhlcmUgYXJlIG5vIHRlc3RzIGlu
IHRoYXQgc3BlY2lmaWMgZGlyZWN0b3J5KScpCisgICAgICAgICAgICBwcmludCgnJykKKyAgICAg
ICAgICAgIHJvd19mb3JtYXQgPSB1JyAgICB7MDo1MHN9ezE6PjhkfXsyOj44ZH17Mzo+OGR9ezQ6
PjhkfXs1Oj44ZH0nCisgICAgICAgICAgICBzcm93X2Zvcm1hdCA9IHJvd19mb3JtYXQucmVwbGFj
ZSgnZCcsICdzJykKKyAgICAgICAgICAgIHByaW50KHNyb3dfZm9ybWF0LmZvcm1hdCgnRElSRUNU
T1JZJywgJ1RPVEFMJywgJ1BBU1MnLCAnU0tJUCcsICdGTEFLWScsICdGQUlMJykpCisgICAgICAg
ICAgICBwcmludChzcm93X2Zvcm1hdC5mb3JtYXQoJy0tLS0tLS0tLScsICctLS0tLScsICctLS0t
JywgJy0tLS0nLCAnLS0tLS0nLCAnLS0tLScpKQorCisgICAgICAgICAgICBkZWYgX3Nob3VsZF9p
bmNsdWRlX2Rpcl9pbl9yZXBvcnQoZGlybmFtZSk6CisgICAgICAgICAgICAgICAgbnVtX2RpcnMg
PSBkaXJuYW1lLmNvdW50KCcvJykKKyAgICAgICAgICAgICAgICBpZiBudW1fZGlycyA+IDA6Cisg
ICAgICAgICAgICAgICAgICAgIGlmIG51bV9kaXJzID4gMToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIG51bV9kaXJzID4gMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBudW1f
ZGlycyA+IDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgbm90IHJlLm1hdGNoKHInXihpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzKS8nLCBkaXJuYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlm
IG5vdCByZS5tYXRjaChyJyhpbXBvcnRlZHxodHRwfHBsYXRmb3JtKS8nLCBkaXJuYW1lKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICAg
ICAgZWxpZiBub3QgcmUubWF0Y2gocideKGZhc3R8cGxhdGZvcm18aW1wb3J0ZWR8aHR0cCkvJywg
ZGlybmFtZSk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgICAgICBmb3IgZGlybmFtZSBpbiBzb3J0ZWQo
ZGV2aWNlX3Rlc3Rfc3RhdHMua2V5cygpKToKKyAgICAgICAgICAgICAgICBpZiBub3QgX3Nob3Vs
ZF9pbmNsdWRlX2Rpcl9pbl9yZXBvcnQoZGlybmFtZSk6CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisKKyAgICAgICAgICAgICAgICB0cnVuY2F0ZWRfZGlybmFtZSA9IHJlLnN1YihyJ14u
KiguezQ3fSkkJywgJy4uLlxnPDE+JywgZGlybmFtZSBpZiBkZXZpY2VfdGVzdF9zdGF0c1tkaXJu
YW1lXVsnaGFzX3Rlc3RzJ10gZWxzZSAne30qJy5mb3JtYXQoZGlybmFtZSkpCisgICAgICAgICAg
ICAgICAgY291bnQgPSBkZXZpY2VfdGVzdF9zdGF0c1tkaXJuYW1lXVsnY291bnQnXQorICAgICAg
ICAgICAgICAgIHBhc3NpbmcgPSBkZXZpY2VfdGVzdF9zdGF0c1tkaXJuYW1lXVsncGFzcyddCisg
ICAgICAgICAgICAgICAgc2tpcCA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydza2lwJ10K
KyAgICAgICAgICAgICAgICBmbGFreSA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydmbGFr
eSddCisgICAgICAgICAgICAgICAgZmFpbCA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydm
YWlsJ10KKyAgICAgICAgICAgICAgICBpZiBwYXNzaW5nID09IGNvdW50OgorICAgICAgICAgICAg
ICAgICAgICAjIERvbid0IHByaW50IHRoaXMgbGluZSBpZiBhbiBhbmNlc3RvciBkaXJlY3Rvcnkg
aXMgYWxsIHBhc3MgYWxzbworICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcl9kaXJuYW1lID0g
b3MucGF0aC5kaXJuYW1lKGRpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIGFuY2Vz
dG9yX2Rpcm5hbWUgYW5kIGFuY2VzdG9yX2Rpcm5hbWUgbm90IGluIGRldmljZV90ZXN0X3N0YXRz
OgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JfZGlybmFtZSA9IG9zLnBhdGguZGly
bmFtZShhbmNlc3Rvcl9kaXJuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBhbmNlc3Rvcl9k
aXJuYW1lIGFuZCBkZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJuYW1lXVsncGFzcyddID09
IGRldmljZV90ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVdWydjb3VudCddOgorICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoc3Jvd19m
b3JtYXQuZm9ybWF0KHRydW5jYXRlZF9kaXJuYW1lLCBzdHIoY291bnQpLCB1IuKWiOKWiCBQQVNT
IiwgdScg4paI4paI4paI4paI4paI4paI4paIJywgdSfilojilojilojilojilojilojilojilogn
LCB1J+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiCcpKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgICAgIGVsaWYgc2tpcCA9PSBjb3VudDoKKyAgICAgICAgICAgICAg
ICAgICAgIyBEb24ndCBwcmludCB0aGlzIGxpbmUgaWYgYW4gYW5jZXN0b3IgZGlyZWN0b3J5IGlz
IGFsbCBza2lwIGFsc28KKyAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JfZGlybmFtZSA9IG9z
LnBhdGguZGlybmFtZShkaXJuYW1lKQorICAgICAgICAgICAgICAgICAgICB3aGlsZSBhbmNlc3Rv
cl9kaXJuYW1lIGFuZCBhbmNlc3Rvcl9kaXJuYW1lIG5vdCBpbiBkZXZpY2VfdGVzdF9zdGF0czoK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yX2Rpcm5hbWUgPSBvcy5wYXRoLmRpcm5h
bWUoYW5jZXN0b3JfZGlybmFtZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgYW5jZXN0b3JfZGly
bmFtZSBhbmQgZGV2aWNlX3Rlc3Rfc3RhdHNbYW5jZXN0b3JfZGlybmFtZV1bJ3NraXAnXSA9PSBk
ZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJuYW1lXVsnY291bnQnXToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIHByaW50KHNyb3dfZm9y
bWF0LmZvcm1hdCh0cnVuY2F0ZWRfZGlybmFtZSwgc3RyKGNvdW50KSwgdSfilpHilpHilpHilpHi
lpHilpHilpEnLCB1IuKWkeKWkeKWkSBTS0lQIiwgdScg4paR4paR4paR4paR4paR4paR4paRJywg
dSfilpHilpHilpHilpHilpHilpHilpHilpEnKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgICAgICAgICBwcmludChyb3dfZm9ybWF0LmZvcm1hdCh0cnVuY2F0ZWRfZGly
bmFtZSwgY291bnQsIHBhc3NpbmcsIHNraXAsIGZsYWt5LCBmYWlsKSkKKworICAgICAgICB3aXRo
IG9wZW4oJ2xheW91dF90ZXN0cy5jc3YnLCAndycpIGFzIGNzdmZpbGU6CisgICAgICAgICAgICB3
cml0ZXIgPSBjc3Yud3JpdGVyKGNzdmZpbGUsIGRlbGltaXRlcj0nLCcsIHF1b3Rpbmc9Y3N2LlFV
T1RFX01JTklNQUwpCisKKyAgICAgICAgICAgIGhlYWRlcl9yb3dfMSA9IFsnJ10gKiAyCisgICAg
ICAgICAgICBoZWFkZXJfcm93XzIgPSBbIkRpcmVjdG9yeSIsICJUb3RhbCJdCisgICAgICAgICAg
ICBmb3IgZGV2aWNlX3R5cGUgaW4gc29ydGVkKGRldmljZV90eXBlX2xpc3QpOgorICAgICAgICAg
ICAgICAgIGhlYWRlcl9yb3dfMS5hcHBlbmQoJ3t9e30nLmZvcm1hdChzZWxmLl9wb3J0Lm5hbWUo
KSwgJywge30nLmZvcm1hdChkZXZpY2VfdHlwZSkgaWYgZGV2aWNlX3R5cGUgZWxzZSAnJykpCisg
ICAgICAgICAgICAgICAgaGVhZGVyX3Jvd18xLmV4dGVuZChbJyddICogMykKKyAgICAgICAgICAg
ICAgICBoZWFkZXJfcm93XzIuZXh0ZW5kKFsnUGFzcycsICdTa2lwJywgJ0ZsYWt5JywgJ0ZhaWwn
XSkKKyAgICAgICAgICAgIHdyaXRlci53cml0ZXJvdyhoZWFkZXJfcm93XzEpCisgICAgICAgICAg
ICB3cml0ZXIud3JpdGVyb3coaGVhZGVyX3Jvd18yKQorCisgICAgICAgICAgICBhX2RldmljZV90
ZXN0X3N0YXQgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlX2xpc3RbMF1dCisgICAgICAgICAgICBm
b3IgZGlybmFtZSBpbiBzb3J0ZWQoYV9kZXZpY2VfdGVzdF9zdGF0LmtleXMoKSk6CisgICAgICAg
ICAgICAgICAgaWYgbm90IF9zaG91bGRfaW5jbHVkZV9kaXJfaW5fcmVwb3J0KGRpcm5hbWUpOgor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHJvdyA9IFtkaXJu
YW1lLCBhX2RldmljZV90ZXN0X3N0YXRbZGlybmFtZV1bJ2NvdW50J11dCisgICAgICAgICAgICAg
ICAgZm9yIGRldmljZV90eXBlIGluIHNvcnRlZChkZXZpY2VfdHlwZV9saXN0KToKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdHMgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlXVtkaXJuYW1lXQorICAg
ICAgICAgICAgICAgICAgICByb3cuZXh0ZW5kKFtzdGF0c1sncGFzcyddLCBzdGF0c1snc2tpcCdd
LCBzdGF0c1snZmxha3knXSwgc3RhdHNbJ2ZhaWwnXV0pCisgICAgICAgICAgICAgICAgd3JpdGVy
LndyaXRlcm93KHJvdykKKworICAgICAgICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggMDgw
NDc0NTcwMDU4ZmI4YjBmYjljNGFkOTIzMDA0NzI0YzAzOTU4Yy4uZTliYTYzOWJhNzNkZDA2YzVh
NTZkNTRiNTljN2VhMjU3ZDBlMGM3YSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC04MCw3ICs4MCw3IEBA
IGRlZiBtYWluKGFyZ3YsIHN0ZG91dCwgc3RkZXJyKToKICAgICBsb2dfc3RhY2tfdHJhY2Vfb25f
Y3RybF9jKG91dHB1dF9maWxlPXN0YWNrX3RyYWNlX3BhdGgpCiAgICAgbG9nX3N0YWNrX3RyYWNl
X29uX3Rlcm0ob3V0cHV0X2ZpbGU9c3RhY2tfdHJhY2VfcGF0aCkKIAotICAgIGlmIG9wdGlvbnMu
cHJpbnRfZXhwZWN0YXRpb25zOgorICAgIGlmIG9wdGlvbnMucHJpbnRfZXhwZWN0YXRpb25zIG9y
IG9wdGlvbnMucHJpbnRfc3VtbWFyeToKICAgICAgICAgcmV0dXJuIF9wcmludF9leHBlY3RhdGlv
bnMocG9ydCwgb3B0aW9ucywgYXJncywgc3RkZXJyKQogCiAgICAgdHJ5OgpAQCAtMzE3LDYgKzMx
Nyw5IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3MpOgogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bigiLS1wcmludC1leHBlY3RhdGlvbnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICBk
ZWZhdWx0PUZhbHNlLCBoZWxwPSgiUHJpbnQgdGhlIGV4cGVjdGVkIG91dGNvbWUgZm9yIHRoZSBn
aXZlbiB0ZXN0LCBvciBhbGwgdGVzdHMgbGlzdGVkIGluIFRlc3RFeHBlY3RhdGlvbnMuICIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRG9lcyBub3QgcnVuIGFueSB0ZXN0cy4iKSksCisg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXByaW50LXN1bW1hcnkiLCBhY3Rpb249InN0
b3JlX3RydWUiLAorICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSgiUHJpbnQgYSBzdW1tYXJ5
IG9mIGhvdyB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gcnVuLCBncm91cGVkIGJ5IGRpcmVjdG9yeS4g
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEb2VzIG5vdCBydW4gYW55IHRlc3RzLiIp
KSwKICAgICBdKSkKIAogICAgIG9wdGlvbl9ncm91cF9kZWZpbml0aW9ucy5hcHBlbmQoKCJXZWIg
UGxhdGZvcm0gVGVzdCBTZXJ2ZXIgT3B0aW9ucyIsIFsKQEAgLTM2Myw3ICszNjYsMTAgQEAgZGVm
IF9wcmludF9leHBlY3RhdGlvbnMocG9ydCwgb3B0aW9ucywgYXJncywgbG9nZ2luZ19zdHJlYW0p
OgogICAgICAgICBfc2V0X3VwX2Rlcml2ZWRfb3B0aW9ucyhwb3J0LCBvcHRpb25zKQogICAgICAg
ICBtYW5hZ2VyID0gTWFuYWdlcihwb3J0LCBvcHRpb25zLCBwcmludGVyKQogCi0gICAgICAgIGV4
aXRfY29kZSA9IG1hbmFnZXIucHJpbnRfZXhwZWN0YXRpb25zKGFyZ3MpCisgICAgICAgIGlmIG9w
dGlvbnMucHJpbnRfZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgZXhpdF9jb2RlID0gbWFuYWdl
ci5wcmludF9leHBlY3RhdGlvbnMoYXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4
aXRfY29kZSA9IG1hbmFnZXIucHJpbnRfc3VtbWFyeShhcmdzKQogICAgICAgICBfbG9nLmRlYnVn
KCJQcmludGluZyBleHBlY3RhdGlvbnMgY29tcGxldGVkLCBFeGl0IHN0YXR1czogJWQiLCBleGl0
X2NvZGUpCiAgICAgICAgIHJldHVybiBleGl0X2NvZGUKICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGVycm9yOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375877</attachid>
            <date>2019-08-08 18:23:32 -0700</date>
            <delta_ts>2021-08-20 10:32:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200556-20190808182330.patch</filename>
            <type>text/plain</type>
            <size>12313</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGNlNWUzYzZmOTBmZTJmMmY5ZDEyMzM1MmM2MTIyMTY1
YmEzNjRiMy4uYzNlZWFiY2Q2MDBmODViOGRhZTdmZGJhOGRkYTNhODJiOTJjNDUwNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE5LTA4LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBU
ZWFjaCBydW4td2Via2l0LXRlc3RzIHRvIHByaW50IGEgc3VtbWFyeSBvZiB0ZXN0IHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNTU2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3
IG9wdGlvbiB0byBwcmludCBhIHN1bW1hcnkgbGlzdGluZyB0ZXN0IGV4cGVjdGF0aW9uIGhlYWx0
aC4KKyAgICAgICAgSXQgdXNlcyB0aGUgc2FtZSBleHBlY3RlZCByZXN1bHRzIGFzIC0tcHJpbnQt
ZXhwZWN0YXRpb25zLgorCisgICAgICAgIFRvIHJ1biBpdDogcnVuLXdlYmtpdC10ZXN0cyAtLXBy
aW50LXN1bW1hcnkKKworICAgICAgICBZb3UgY2FuIHBhc3MgdGhlIHNhbWUgYXJndW1lbnRzIGFz
IG5vcm1hbCBydW4td2Via2l0LXRlc3RzIGFuZCBpdCB3aWxsCisgICAgICAgIHJldHVybiBzdGF0
cyBiYXNlZCBvbiB0aGUgdGVzdHMgY29sbGVjdGVkLgorCisgICAgICAgIEl0IGFsc28gb3V0cHV0
cyBhIC5jc3YgZmlsZSB3aXRoIHRoZSBkYXRhLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIu
cHJpbnRfZXhwZWN0YXRpb25zKTogR2F0aGVyIHRoZSB0ZXN0cy4gTm90ZSB3aGV0aGVyIHRoZSB0
ZXN0CisgICAgICAgIGlzIG1hcmtlZCBhcyBza2lwLCBwYXNzLCBmbGFreSwgb3IgZmFpbCwgdGhl
IGRlZmluaXRpb25zIG9mIHdoaWNoIGFyZQorICAgICAgICBkaWN0YXRlZCBieSBtb2RlbC5nZXRf
dGVzdHNfd2l0aF9yZXN1bHRfdHlwZSgpLiBPdXRwdXQgdGhlIHJlc3VsdHMgdG8KKyAgICAgICAg
Y29tbWFuZCBsaW5lIGFzIHdlbGwgYXMgdG8gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5OiBBZGQgdGhlIG5ldyBvcHRpb24u
CisgICAgICAgIEl0IGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwYXRoIGFzIC0tcHJpbnQtZXhwZWN0
YXRpb25zLgorCiAyMDE5LTA4LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLiBHZXQgcmlkIG9mIGV4dHJhbmVvdXMgd2hpdGVzcGFjZSBpbiBDaGFu
Z2VMb2cuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCA2OTM2OWM2MWZkMmNhNTY4ZjVhODNjZGE4
ODFlMzlkYTgzZDhjZTA0Li41MjJiYzg5NDY5NDcxMWIzNGQzNDA3ZGFhYTU4MTk5YWM4ZDQ1NzE5
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTEsMyArMSw1IEBACisjIC0qLSBjb2Rpbmc6IFVU
Ri04IC0qLQorCiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR2Fib3IgUmFwY3NhbnlpIChyZ2Fib3JAaW5m
LnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQKICMKQEAgLTM0LDkgKzM2LDEyIEBA
IG9iamVjdHMgdG8gdGhlIE1hbmFnZXIuIFRoZSBNYW5hZ2VyIHRoZW4gYWdncmVnYXRlcyB0aGUg
VGVzdEZhaWx1cmVzIHRvCiBjcmVhdGUgYSBmaW5hbCByZXBvcnQuCiAiIiIKIAoraW1wb3J0IGNz
dgogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGltcG9ydCByYW5kb20K
K2ltcG9ydCByZQogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IGRlZmF1bHRkaWN0LCBPcmRlcmVkRGljdApAQCAtNjg1LDMgKzY5MCwxNDEgQEAgY2xhc3Mg
TWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfZXhwZWN0YXRpb25zX2Zv
cl9zdWJzZXQoZGV2aWNlX3R5cGUsIHRlc3RfY29sX3dpZHRoLCB0ZXN0c190b19ydW5fYnlfZGV2
aWNlW2RldmljZV90eXBlXSkKIAogICAgICAgICByZXR1cm4gMAorCisgICAgZGVmIHByaW50X3N1
bW1hcnkoc2VsZiwgYXJncyk6CisgICAgICAgIGRldmljZV90eXBlX2xpc3QgPSBzZWxmLl9wb3J0
LkRFRkFVTFRfREVWSUNFX1RZUEVTIG9yIFtzZWxmLl9wb3J0LkRFVklDRV9UWVBFXQorICAgICAg
ICB0ZXN0X3N0YXRzID0ge30KKworICAgICAgICBmb3IgZGV2aWNlX3R5cGUgaW4gZGV2aWNlX3R5
cGVfbGlzdDoKKyAgICAgICAgICAgICIiIlJ1biB0aGUgdGVzdHMgYW5kIHJldHVybiBhIFJ1bkRl
dGFpbHMgb2JqZWN0IHdpdGggdGhlIHJlc3VsdHMuIiIiCisgICAgICAgICAgICBmb3JfZGV2aWNl
X3R5cGUgPSAnZm9yIHt9ICcuZm9ybWF0KGRldmljZV90eXBlKSBpZiBkZXZpY2VfdHlwZSBlbHNl
ICcnCisgICAgICAgICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnQ29sbGVjdGluZyB0
ZXN0cyB7fS4uLicuZm9ybWF0KGZvcl9kZXZpY2VfdHlwZSkpCisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgcGF0aHMsIHRlc3RfbmFtZXMgPSBzZWxmLl9jb2xsZWN0X3Rlc3RzKGFy
Z3MsIGRldmljZV90eXBlPWRldmljZV90eXBlKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6
CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHJhaXNlZCBpZiAtLXRlc3QtbGlzdCBkb2Vzbid0
IGV4aXN0CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMuUnVuRGV0YWls
cyhleGl0X2NvZGU9LTEpCisKKyAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRl
KCdQYXJzaW5nIGV4cGVjdGF0aW9ucyB7fS4uLicuZm9ybWF0KGZvcl9kZXZpY2VfdHlwZSkpCisg
ICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNbZGV2aWNlX3R5cGVdID0gdGVzdF9leHBlY3Rh
dGlvbnMuVGVzdEV4cGVjdGF0aW9ucyhzZWxmLl9wb3J0LCB0ZXN0X25hbWVzLCBmb3JjZV9leHBl
Y3RhdGlvbnNfcGFzcz1zZWxmLl9vcHRpb25zLmZvcmNlLCBkZXZpY2VfdHlwZT1kZXZpY2VfdHlw
ZSkKKyAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2VfdHlwZV0ucGFyc2VfYWxs
X2V4cGVjdGF0aW9ucygpCisKKyAgICAgICAgICAgIHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVdID0g
eydfX3Jvb3RfXyc6IHsnY291bnQnOiAwLCAnc2tpcCc6IDAsICdwYXNzJzogMCwgJ2ZsYWt5Jzog
MCwgJ2ZhaWwnOiAwLCAnaGFzX3Rlc3RzJzogRmFsc2V9fQorICAgICAgICAgICAgZGV2aWNlX3Rl
c3Rfc3RhdHMgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlXQorCisgICAgICAgICAgICBtb2RlbCA9
IHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2VfdHlwZV0ubW9kZWwoKQorICAgICAgICAgICAgdGVz
dHNfc2tpcHBlZCA9IG1vZGVsLmdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0
YXRpb25zLlNLSVApCisgICAgICAgICAgICB0ZXN0c19wYXNzaW5nID0gbW9kZWwuZ2V0X3Rlc3Rz
X3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuUEFTUykKKyAgICAgICAgICAgIHRl
c3RzX2ZsYWt5ID0gbW9kZWwuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3Rh
dGlvbnMuRkxBS1kpCisgICAgICAgICAgICB0ZXN0c19taXNjX2ZhaWwgPSBtb2RlbC5nZXRfdGVz
dHNfd2l0aF9yZXN1bHRfdHlwZSh0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMKQorCisgICAgICAgICAg
ICBkZWYgX2luY3JlbWVudF9zdGF0KGRpcm5hbWUsIHRlc3RfbmFtZSwgdGVzdF9pbl9kaXJlY3Rv
cnkpOgorICAgICAgICAgICAgICAgIGlmIGRpcm5hbWUgaW4gZGV2aWNlX3Rlc3Rfc3RhdHM6Cisg
ICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydjb3VudCddICs9
IDEKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkZXZpY2VfdGVz
dF9zdGF0c1tkaXJuYW1lXSA9IHsnY291bnQnOiAxLCAnc2tpcCc6IDAsICdwYXNzJzogMCwgJ2Zs
YWt5JzogMCwgJ2ZhaWwnOiAwLCAnaGFzX3Rlc3RzJzogRmFsc2V9CisKKyAgICAgICAgICAgICAg
ICBpZiB0ZXN0X25hbWUgaW4gdGVzdHNfc2tpcHBlZDoKKyAgICAgICAgICAgICAgICAgICAgZGV2
aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ3NraXAnXSArPSAxCisgICAgICAgICAgICAgICAgaWYg
dGVzdF9uYW1lIGluIHRlc3RzX3Bhc3Npbmc6CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90
ZXN0X3N0YXRzW2Rpcm5hbWVdWydwYXNzJ10gKz0gMQorICAgICAgICAgICAgICAgIGlmIHRlc3Rf
bmFtZSBpbiB0ZXN0c19mbGFreToKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rfc3Rh
dHNbZGlybmFtZV1bJ2ZsYWt5J10gKz0gMQorICAgICAgICAgICAgICAgIGlmIHRlc3RfbmFtZSBp
biB0ZXN0c19taXNjX2ZhaWw6CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRz
W2Rpcm5hbWVdWydmYWlsJ10gKz0gMQorICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRz
W2Rpcm5hbWVdWydoYXNfdGVzdHMnXSA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydoYXNf
dGVzdHMnXSBvciB0ZXN0X2luX2RpcmVjdG9yeQorCisgICAgICAgICAgICBmb3IgdGVzdF9uYW1l
IGluIHNlbGYuX2V4cGVjdGF0aW9uc1tkZXZpY2VfdHlwZV0uX2Z1bGxfdGVzdF9saXN0OgorICAg
ICAgICAgICAgICAgIHBhdGggPSB0ZXN0X25hbWUKKyAgICAgICAgICAgICAgICB0ZXN0X2luX2Rp
cmVjdG9yeSA9IFRydWUKKyAgICAgICAgICAgICAgICB3aGlsZSBwYXRoICE9ICcnOgorICAgICAg
ICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCisgICAgICAgICAgICAg
ICAgICAgIF9pbmNyZW1lbnRfc3RhdChwYXRoIG9yICdfX3Jvb3RfXycsIHRlc3RfbmFtZSwgdGVz
dF9pbl9kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5fZGlyZWN0b3J5ID0g
RmFsc2UKKworICAgICAgICAgICAgcHJpbnQoJycpCisgICAgICAgICAgICBwcmludCgnU3VtbWFy
eSBvZiB0ZXN0IGV4cGVjdGF0aW9ucyB7fWluIGxheW91dCB0ZXN0IGRpcmVjdG9yaWVzOicuZm9y
bWF0KGZvcl9kZXZpY2VfdHlwZSkpCisgICAgICAgICAgICByb290ID0gZGV2aWNlX3Rlc3Rfc3Rh
dHNbJ19fcm9vdF9fJ10KKyAgICAgICAgICAgIHByaW50KCcgICAge30gdG90YWwgdGVzdHMnLmZv
cm1hdChyb290Wydjb3VudCddKSkKKyAgICAgICAgICAgIHByaW50KCcgICAge30gcGFzcycuZm9y
bWF0KHJvb3RbJ3Bhc3MnXSkpCisgICAgICAgICAgICBwcmludCgnICAgIHt9IGFyZSBza2lwcGVk
Jy5mb3JtYXQocm9vdFsnc2tpcCddKSkKKyAgICAgICAgICAgIHByaW50KCcgICAge30gYXJlIGZs
YWt5Jy5mb3JtYXQocm9vdFsnZmxha3knXSkpCisgICAgICAgICAgICBwcmludCgnICAgIHt9IGZh
aWwgZm9yIG90aGVyIHJlYXNvbnMnLmZvcm1hdChyb290WydmYWlsJ10pKQorCisgICAgICAgICAg
ICBwcmludCgnJykKKyAgICAgICAgICAgIHByaW50KCdQZXIgZGlyZWN0b3J5IHJlc3VsdHM6JykK
KyAgICAgICAgICAgIHByaW50KCcoKiBtZWFucyB0aGVyZSBhcmUgbm8gdGVzdHMgaW4gdGhhdCBz
cGVjaWZpYyBkaXJlY3RvcnkpJykKKyAgICAgICAgICAgIHByaW50KCcnKQorICAgICAgICAgICAg
cm93X2Zvcm1hdCA9IHUnICAgIHswOjUwc317MTo+OGR9ezI6PjhkfXszOj44ZH17NDo+OGR9ezU6
PjhkfScKKyAgICAgICAgICAgIHNyb3dfZm9ybWF0ID0gcm93X2Zvcm1hdC5yZXBsYWNlKCdkJywg
J3MnKQorICAgICAgICAgICAgcHJpbnQoc3Jvd19mb3JtYXQuZm9ybWF0KCdESVJFQ1RPUlknLCAn
VE9UQUwnLCAnUEFTUycsICdTS0lQJywgJ0ZMQUtZJywgJ0ZBSUwnKSkKKyAgICAgICAgICAgIHBy
aW50KHNyb3dfZm9ybWF0LmZvcm1hdCgnLS0tLS0tLS0tJywgJy0tLS0tJywgJy0tLS0nLCAnLS0t
LScsICctLS0tLScsICctLS0tJykpCisKKyAgICAgICAgICAgIGRlZiBfc2hvdWxkX2luY2x1ZGVf
ZGlyX2luX3JlcG9ydChkaXJuYW1lKToKKyAgICAgICAgICAgICAgICBudW1fZGlycyA9IGRpcm5h
bWUuY291bnQoJy8nKQorICAgICAgICAgICAgICAgIGlmIG51bV9kaXJzID4gMDoKKyAgICAgICAg
ICAgICAgICAgICAgaWYgbnVtX2RpcnMgPiAxOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYg
bnVtX2RpcnMgPiAyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG51bV9kaXJzID4g
MzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWxpZiBub3QgcmUubWF0Y2gocideKGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMpLycsIGRpcm5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgbm90IHJl
Lm1hdGNoKHInKGltcG9ydGVkfGh0dHB8cGxhdGZvcm0pLycsIGRpcm5hbWUpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgICAgICBlbGlm
IG5vdCByZS5tYXRjaChyJ14oZmFzdHxwbGF0Zm9ybXxpbXBvcnRlZHxodHRwKS8nLCBkaXJuYW1l
KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGZvciBkaXJuYW1lIGluIHNvcnRlZChkZXZpY2Vf
dGVzdF9zdGF0cy5rZXlzKCkpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBfc2hvdWxkX2luY2x1
ZGVfZGlyX2luX3JlcG9ydChkaXJuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK
KworICAgICAgICAgICAgICAgIHRydW5jYXRlZF9kaXJuYW1lID0gcmUuc3ViKHInXi4qKC57NDd9
KSQnLCAnLi4uXGc8MT4nLCBkaXJuYW1lIGlmIGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydo
YXNfdGVzdHMnXSBlbHNlICd7fSonLmZvcm1hdChkaXJuYW1lKSkKKyAgICAgICAgICAgICAgICBj
b3VudCA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydjb3VudCddCisgICAgICAgICAgICAg
ICAgcGFzc2luZyA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydwYXNzJ10KKyAgICAgICAg
ICAgICAgICBza2lwID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ3NraXAnXQorICAgICAg
ICAgICAgICAgIGZsYWt5ID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ2ZsYWt5J10KKyAg
ICAgICAgICAgICAgICBmYWlsID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ2ZhaWwnXQor
ICAgICAgICAgICAgICAgIGlmIHBhc3NpbmcgPT0gY291bnQ6CisgICAgICAgICAgICAgICAgICAg
ICMgRG9uJ3QgcHJpbnQgdGhpcyBsaW5lIGlmIGFuIGFuY2VzdG9yIGRpcmVjdG9yeSBpcyBhbGwg
cGFzcyBhbHNvCisgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yX2Rpcm5hbWUgPSBvcy5wYXRo
LmRpcm5hbWUoZGlybmFtZSkKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgYW5jZXN0b3JfZGly
bmFtZSBhbmQgYW5jZXN0b3JfZGlybmFtZSBub3QgaW4gZGV2aWNlX3Rlc3Rfc3RhdHM6CisgICAg
ICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcl9kaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKGFu
Y2VzdG9yX2Rpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIGlmIGFuY2VzdG9yX2Rpcm5hbWUg
YW5kIGRldmljZV90ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVdWydwYXNzJ10gPT0gZGV2aWNl
X3Rlc3Rfc3RhdHNbYW5jZXN0b3JfZGlybmFtZV1bJ2NvdW50J106CisgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBwcmludChzcm93X2Zvcm1hdC5m
b3JtYXQodHJ1bmNhdGVkX2Rpcm5hbWUsIHN0cihjb3VudCksIHUi4paI4paIIFBBU1MiLCB1JyDi
lojilojilojilojilojilojilognLCB1J+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiCcsIHUn4paI
4paI4paI4paI4paI4paI4paI4paIJykpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICAgICAgZWxpZiBza2lwID09IGNvdW50OgorICAgICAgICAgICAgICAgICAgICAj
IERvbid0IHByaW50IHRoaXMgbGluZSBpZiBhbiBhbmNlc3RvciBkaXJlY3RvcnkgaXMgYWxsIHNr
aXAgYWxzbworICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcl9kaXJuYW1lID0gb3MucGF0aC5k
aXJuYW1lKGRpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIGFuY2VzdG9yX2Rpcm5h
bWUgYW5kIGFuY2VzdG9yX2Rpcm5hbWUgbm90IGluIGRldmljZV90ZXN0X3N0YXRzOgorICAgICAg
ICAgICAgICAgICAgICAgICAgYW5jZXN0b3JfZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShhbmNl
c3Rvcl9kaXJuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBhbmNlc3Rvcl9kaXJuYW1lIGFu
ZCBkZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJuYW1lXVsnc2tpcCddID09IGRldmljZV90
ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVdWydjb3VudCddOgorICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoc3Jvd19mb3JtYXQuZm9y
bWF0KHRydW5jYXRlZF9kaXJuYW1lLCBzdHIoY291bnQpLCB1J+KWkeKWkeKWkeKWkeKWkeKWkeKW
kScsIHUi4paR4paR4paRIFNLSVAiLCB1JyDilpHilpHilpHilpHilpHilpHilpEnLCB1J+KWkeKW
keKWkeKWkeKWkeKWkeKWkeKWkScpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgICAgIHByaW50KHJvd19mb3JtYXQuZm9ybWF0KHRydW5jYXRlZF9kaXJuYW1lLCBj
b3VudCwgcGFzc2luZywgc2tpcCwgZmxha3ksIGZhaWwpKQorCisgICAgICAgIHdpdGggb3Blbign
bGF5b3V0X3Rlc3RzLmNzdicsICd3JykgYXMgY3N2ZmlsZToKKyAgICAgICAgICAgIHdyaXRlciA9
IGNzdi53cml0ZXIoY3N2ZmlsZSwgZGVsaW1pdGVyPScsJywgcXVvdGluZz1jc3YuUVVPVEVfTUlO
SU1BTCkKKworICAgICAgICAgICAgaGVhZGVyX3Jvd18xID0gWycnXSAqIDIKKyAgICAgICAgICAg
IGhlYWRlcl9yb3dfMiA9IFsiRGlyZWN0b3J5IiwgIlRvdGFsIl0KKyAgICAgICAgICAgIGZvciBk
ZXZpY2VfdHlwZSBpbiBzb3J0ZWQoZGV2aWNlX3R5cGVfbGlzdCk6CisgICAgICAgICAgICAgICAg
aGVhZGVyX3Jvd18xLmFwcGVuZCgne317fScuZm9ybWF0KHNlbGYuX3BvcnQubmFtZSgpLCAnLCB7
fScuZm9ybWF0KGRldmljZV90eXBlKSBpZiBkZXZpY2VfdHlwZSBlbHNlICcnKSkKKyAgICAgICAg
ICAgICAgICBoZWFkZXJfcm93XzEuZXh0ZW5kKFsnJ10gKiAzKQorICAgICAgICAgICAgICAgIGhl
YWRlcl9yb3dfMi5leHRlbmQoWydQYXNzJywgJ1NraXAnLCAnRmxha3knLCAnRmFpbCddKQorICAg
ICAgICAgICAgd3JpdGVyLndyaXRlcm93KGhlYWRlcl9yb3dfMSkKKyAgICAgICAgICAgIHdyaXRl
ci53cml0ZXJvdyhoZWFkZXJfcm93XzIpCisKKyAgICAgICAgICAgIGFfZGV2aWNlX3Rlc3Rfc3Rh
dCA9IHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVfbGlzdFswXV0KKyAgICAgICAgICAgIGZvciBkaXJu
YW1lIGluIHNvcnRlZChhX2RldmljZV90ZXN0X3N0YXQua2V5cygpKToKKyAgICAgICAgICAgICAg
ICBpZiBub3QgX3Nob3VsZF9pbmNsdWRlX2Rpcl9pbl9yZXBvcnQoZGlybmFtZSk6CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgcm93ID0gW2Rpcm5hbWUsIGFf
ZGV2aWNlX3Rlc3Rfc3RhdFtkaXJuYW1lXVsnY291bnQnXV0KKyAgICAgICAgICAgICAgICBmb3Ig
ZGV2aWNlX3R5cGUgaW4gc29ydGVkKGRldmljZV90eXBlX2xpc3QpOgorICAgICAgICAgICAgICAg
ICAgICBzdGF0cyA9IHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVdW2Rpcm5hbWVdCisgICAgICAgICAg
ICAgICAgICAgIHJvdy5leHRlbmQoW3N0YXRzWydwYXNzJ10sIHN0YXRzWydza2lwJ10sIHN0YXRz
WydmbGFreSddLCBzdGF0c1snZmFpbCddXSkKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVy
b3cocm93KQorCisgICAgICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCAwODA0NzQ1NzAw
NThmYjhiMGZiOWM0YWQ5MjMwMDQ3MjRjMDM5NThjLi5lOWJhNjM5YmE3M2RkMDZjNWE1NmQ1NGI1
OWM3ZWEyNTdkMGUwYzdhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTgwLDcgKzgwLDcgQEAgZGVmIG1h
aW4oYXJndiwgc3Rkb3V0LCBzdGRlcnIpOgogICAgIGxvZ19zdGFja190cmFjZV9vbl9jdHJsX2Mo
b3V0cHV0X2ZpbGU9c3RhY2tfdHJhY2VfcGF0aCkKICAgICBsb2dfc3RhY2tfdHJhY2Vfb25fdGVy
bShvdXRwdXRfZmlsZT1zdGFja190cmFjZV9wYXRoKQogCi0gICAgaWYgb3B0aW9ucy5wcmludF9l
eHBlY3RhdGlvbnM6CisgICAgaWYgb3B0aW9ucy5wcmludF9leHBlY3RhdGlvbnMgb3Igb3B0aW9u
cy5wcmludF9zdW1tYXJ5OgogICAgICAgICByZXR1cm4gX3ByaW50X2V4cGVjdGF0aW9ucyhwb3J0
LCBvcHRpb25zLCBhcmdzLCBzdGRlcnIpCiAKICAgICB0cnk6CkBAIC0zMTcsNiArMzE3LDkgQEAg
ZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLXBy
aW50LWV4cGVjdGF0aW9ucyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgIGRlZmF1bHQ9
RmFsc2UsIGhlbHA9KCJQcmludCB0aGUgZXhwZWN0ZWQgb3V0Y29tZSBmb3IgdGhlIGdpdmVuIHRl
c3QsIG9yIGFsbCB0ZXN0cyBsaXN0ZWQgaW4gVGVzdEV4cGVjdGF0aW9ucy4gIgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJEb2VzIG5vdCBydW4gYW55IHRlc3RzLiIpKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oIi0tcHJpbnQtc3VtbWFyeSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCisgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9KCJQcmludCBhIHN1bW1hcnkgb2YgaG93
IHRlc3RzIGFyZSBleHBlY3RlZCB0byBydW4sIGdyb3VwZWQgYnkgZGlyZWN0b3J5LiAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkRvZXMgbm90IHJ1biBhbnkgdGVzdHMuIikpLAogICAg
IF0pKQogCiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25zLmFwcGVuZCgoIldlYiBQbGF0Zm9y
bSBUZXN0IFNlcnZlciBPcHRpb25zIiwgWwpAQCAtMzYzLDcgKzM2NiwxMCBAQCBkZWYgX3ByaW50
X2V4cGVjdGF0aW9ucyhwb3J0LCBvcHRpb25zLCBhcmdzLCBsb2dnaW5nX3N0cmVhbSk6CiAgICAg
ICAgIF9zZXRfdXBfZGVyaXZlZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpCiAgICAgICAgIG1hbmFn
ZXIgPSBNYW5hZ2VyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCiAKLSAgICAgICAgZXhpdF9jb2Rl
ID0gbWFuYWdlci5wcmludF9leHBlY3RhdGlvbnMoYXJncykKKyAgICAgICAgaWYgb3B0aW9ucy5w
cmludF9leHBlY3RhdGlvbnM6CisgICAgICAgICAgICBleGl0X2NvZGUgPSBtYW5hZ2VyLnByaW50
X2V4cGVjdGF0aW9ucyhhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXhpdF9jb2Rl
ID0gbWFuYWdlci5wcmludF9zdW1tYXJ5KGFyZ3MpCiAgICAgICAgIF9sb2cuZGVidWcoIlByaW50
aW5nIGV4cGVjdGF0aW9ucyBjb21wbGV0ZWQsIEV4aXQgc3RhdHVzOiAlZCIsIGV4aXRfY29kZSkK
ICAgICAgICAgcmV0dXJuIGV4aXRfY29kZQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>375879</attachid>
            <date>2019-08-08 19:07:35 -0700</date>
            <delta_ts>2019-08-08 19:07:35 -0700</delta_ts>
            <desc>layout_tests.csv</desc>
            <filename>layout_tests.csv</filename>
            <type>text/csv</type>
            <size>13364</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">LCxtYWMtY2F0YWxpbmEtd2syLCwsDQpEaXJlY3RvcnksVG90YWwsUGFzcyxTa2lwLEZsYWt5LEZh
aWwNCl9fcm9vdF9fLDU1NjU5LDQ2Njg4LDcxMjcsODUwLDk5NA0KYWNjZXNzaWJpbGl0eSw4MzYs
NjI5LDE5Niw5LDINCmFuaW1hdGlvbnMsMTY2LDE0OSwxLDEyLDQNCmFwcGxpY2F0aW9ubWFuaWZl
c3QsNiw2LDAsMCwwDQpjYW52YXMsNzc1LDc2MSwwLDgsNg0KY29tcG9zaXRpbmcsNzM2LDY4Mywx
NywyMCwxNg0KY29udGVudGZpbHRlcmluZywyMSwyMSwwLDAsMA0KY3J5cHRvLDQ3NCw0NTEsMjMs
MCwwDQpjc3MtY3VzdG9tLXByb3BlcnRpZXMtYXBpLDEwLDEwLDAsMCwwDQpjc3MtZGFyay1tb2Rl
LDEzLDEwLDMsMCwwDQpjc3MtdHlwZWRvbSwzLDMsMCwwLDANCmNzczEsMTA5LDEwOSwwLDAsMA0K
Y3NzMi4xLDk2Myw5NTMsOCwwLDINCmNzczMsMTkxOCwxODM5LDQzLDYsMzANCmNzc29tLDYsNiww
LDAsMA0KZGlzcGxheWxpc3RzLDUsNSwwLDAsMA0KZG9tLDI1MzAsMjQ5NCwzNSwwLDENCmVkaXRp
bmcsMjA1NSwxNzUyLDI3MSw1LDI3DQpmYXN0LDEzMzI4LDEyMDEzLDExMDcsMTA1LDEwMw0KZmFz
dC9hbmltYXRpb24sMzYsMzMsMiwxLDANCmZhc3QvYXR0YWNobWVudCwyMSwxOSwyLDAsMA0KZmFz
dC9hdXRvcmVzaXplLDMsMCwzLDAsMA0KZmFzdC9iYWNrZ3JvdW5kcywxMDAsOTgsMCwxLDENCmZh
c3QvYmxvY2ssNjM0LDYyOSwzLDAsMg0KZmFzdC9ib2R5LXByb3BhZ2F0aW9uLDY1LDY1LDAsMCww
DQpmYXN0L2JvcmRlcnMsMTY1LDE2MCwwLDIsMw0KZmFzdC9ib3gtZGVjb3JhdGlvbi1icmVhaywz
LDMsMCwwLDANCmZhc3QvYm94LXNoYWRvdywyNiwyNSwxLDAsMA0KZmFzdC9ib3gtc2l6aW5nLDEy
LDEyLDAsMCwwDQpmYXN0L2NhbnZhcyw1MTMsNDg3LDIsMTgsNg0KZmFzdC9jbGlwLDI3LDI3LDAs
MCwwDQpmYXN0L2NvbXBhY3QsMywzLDAsMCwwDQpmYXN0L2NvbnN0cnVjdG9ycywyLDIsMCwwLDAN
CmZhc3QvY29va2llcywyLDIsMCwwLDANCmZhc3QvY3NzLDE0OTksMTQ3MSwxNiw3LDUNCmZhc3Qv
Y3NzLWN1c3RvbS1wYWludCwxNSwxNCwwLDEsMA0KZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQs
MTA1LDEwNCwwLDAsMQ0KZmFzdC9jc3MtZ3JpZC1sYXlvdXQsMzM2LDMyNSwxLDEsOQ0KZmFzdC9j
c3MtaW50cmluc2ljLWRpbWVuc2lvbnMsNDEsMzksMCwwLDINCmZhc3QvY3NzMy10ZXh0LDg0LDcx
LDExLDAsMg0KZmFzdC9jdXN0b20tZWxlbWVudHMsMjAsMjAsMCwwLDANCmZhc3QvZGV2aWNlLW9y
aWVudGF0aW9uLDYsMCw2LDAsMA0KZmFzdC9kb2N0eXBlcywxNCwxNCwwLDAsMA0KZmFzdC9kb20s
MTYxNSwxNTUxLDQ1LDgsMTENCmZhc3QvZHluYW1pYyw5MCw4NywxLDAsMg0KZmFzdC9lbmNvZGlu
ZywxMTUsMTE0LDEsMCwwDQpmYXN0L2V2ZW50cyw5MzcsNTE5LDQwOSwyLDcNCmZhc3QvZXZlbnRz
b3VyY2UsMiwyLDAsMCwwDQpmYXN0L2Zhc3QtbW9iaWxlLXNjcm9sbGluZywyLDIsMCwwLDANCmZh
c3QvZmlsZXMsNDIsMjUsMTcsMCwwDQpmYXN0L2ZpbHRlci1pbWFnZSw3LDcsMCwwLDANCmZhc3Qv
Zml4ZWQtbGF5b3V0LDEsMSwwLDAsMA0KZmFzdC9mbGV4Ym94LDY2LDY2LDAsMCwwDQpmYXN0L2Zv
cm1zLDExNjMsOTc1LDE4MCw2LDINCmZhc3QvZnJhbWVzLDIzOSwyMjMsNyw5LDANCmZhc3QvZ3Jh
ZGllbnRzLDY1LDY1LDAsMCwwDQpmYXN0L2hhcm5lc3MsMjUsMjAsMywwLDINCmZhc3QvaGlkcGks
NzIsNjUsMCwxLDYNCmZhc3QvaGlzdG9yeSw3Nyw3MCw0LDIsMQ0KZmFzdC9odG1sLDEzOCwxMzcs
MSwwLDANCmZhc3QvaW1hZ2VzLDE3MCwxNjAsNywzLDANCmZhc3QvaW5saW5lLDEyMCwxMTksMCww
LDENCmZhc3QvaW5saW5lLWJsb2NrLDMxLDMxLDAsMCwwDQpmYXN0L2lubmVySFRNTCwxNywxNyww
LDAsMA0KZmFzdC9pbnNwZWN0b3Itc3VwcG9ydCw2LDYsMCwwLDANCmZhc3QvaW52YWxpZCwzNSwz
NSwwLDAsMA0KZmFzdC9sYXllcnMsNTEsNTEsMCwwLDANCmZhc3QvbGVha3MsMywyLDEsMCwwDQpm
YXN0L2xpbmUtZ3JpZCwxMiwxMiwwLDAsMA0KZmFzdC9saXN0cyw4MCw3OSwxLDAsMA0KZmFzdC9s
b2FkZXIsMTg2LDE3NSw5LDIsMA0KZmFzdC9tYXNraW5nLDgsOCwwLDAsMA0KZmFzdC9tZWRpYSwx
MTcsMTEzLDQsMCwwDQpmYXN0L21lZGlhY2FwdHVyZWZyb21lbGVtZW50LDEwLDQsNCwyLDANCmZh
c3QvbWVkaWFzdHJlYW0sMTE4LDEwMyw5LDUsMQ0KZmFzdC9taXNjLDUsNSwwLDAsMA0KZmFzdC9t
dWx0aWNvbCwzOTYsMzkzLDAsMCwzDQpmYXN0L292ZXJmbG93LDc3LDc1LDIsMCwwDQpmYXN0L3Bh
cnNlciwyMDcsMjA2LDEsMCwwDQpmYXN0L3BlcmZvcm1hbmNlLDMsMywwLDAsMA0KZmFzdC9waWN0
dXJlLDQsNCwwLDAsMA0KZmFzdC9wcmVsb2FkZXIsMTcsMTUsMCwyLDANCmZhc3QvcmVmbGVjdGlv
bnMsMTgsMTgsMCwwLDANCmZhc3QvcmVnZXgsMjMsMjMsMCwwLDANCmZhc3QvcmVwYWludCwyOTgs
Mjg4LDQsNCwyDQpmYXN0L3JlcGxhY2VkLDEwMSw5NiwzLDIsMA0KZmFzdC9ydWJ5LDk2LDkxLDQs
MCwxDQpmYXN0L3Njcm9sbGluZywyMDEsMTA1LDkyLDMsMQ0KZmFzdC9zZWxlY3RvcnMsMzQ4LDM0
NywxLDAsMA0KZmFzdC9zaGFkb3ctZG9tLDEyMSwxMTYsNSwwLDANCmZhc3Qvc2hhcGVzLDEyNCwx
MjQsMCwwLDANCmZhc3Qvc2hyaW5rLXdyYXAsMSwxLDAsMCwwDQpmYXN0L3NwYXRpYWwtbmF2aWdh
dGlvbiw0MiwwLDQyLDAsMA0KZmFzdC9zcGVlY2hzeW50aGVzaXMsMTIsMTEsMCwxLDANCmZhc3Qv
c3RvcmFnZSwyLDIsMCwwLDANCmZhc3Qvc3ViLXBpeGVsLDUyLDQ4LDAsMCw0DQpmYXN0L3RhYmxl
LDQxMiw0MDcsMiwyLDENCmZhc3QvdGV4dCw3NzcsNzQ1LDYsNywxOQ0KZmFzdC90ZXh0LWF1dG9z
aXppbmcsMjUsMTUsMiw4LDANCmZhc3QvdGV4dC1pbmRpY2F0b3IsMywzLDAsMCwwDQpmYXN0L3Rv
a2VuaXplciw0MSw0MSwwLDAsMA0KZmFzdC90cmFuc2Zvcm1zLDMxLDMxLDAsMCwwDQpmYXN0L3Vy
bCwzOCwzOCwwLDAsMA0KZmFzdC92aWV3cG9ydCwxODAsMCwxODAsMCwwDQpmYXN0L3Zpc3VhbC12
aWV3cG9ydCwzNiwyNyw5LDAsMA0KZmFzdC93ZWItc2hhcmUsMiwyLDAsMCwwDQpmYXN0L3dvcmtl
cnMsNTEsNDcsMiwyLDANCmZhc3Qvd3JpdGluZy1tb2RlLDgwLDY5LDEsMiw4DQpmYXN0L3htbGh0
dHByZXF1ZXN0LDM0LDMzLDAsMSwwDQpmYXN0L3hwYXRoLDY5LDY5LDAsMCwwDQpmYXN0L3hzbCw0
NCw0NCwwLDAsMA0KZmFzdC96b29taW5nLDQsMywxLDAsMA0KZmV0Y2gsOSw4LDEsMCwwDQpmb250
cywxMCwxMCwwLDAsMA0KZnVsbHNjcmVlbiw1OCw1OCwwLDAsMA0KZ2FtZXBhZCw1LDMsMCwyLDAN
Cmdlb21ldHJ5LDIsMiwwLDAsMA0KaHRtbDVsaWIsOTcsOTcsMCwwLDANCmh0dHAsMzQ4NiwzMTU5
LDIwNiw3OSw0Mg0KaHR0cC90ZXN0cywzMjk4LDI5OTAsMjA0LDY1LDM5DQpodHRwL3Rlc3RzL0lu
ZGV4ZWREQiw0LDQsMCwwLDANCmh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uLDE1LDE1LDAs
MCwwDQpodHRwL3Rlc3RzL2FwcGNhY2hlLDg3LDg1LDIsMCwwDQpodHRwL3Rlc3RzL2JsaW5rLDgs
OCwwLDAsMA0KaHR0cC90ZXN0cy9jYWNoZSw3Niw2NiwzLDcsMA0KaHR0cC90ZXN0cy9jYWNoZS1z
dG9yYWdlLDYsNSwwLDEsMA0KaHR0cC90ZXN0cy9jYW52YXMsMTMsMTIsMCwwLDENCmh0dHAvdGVz
dHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gsMTYsMTYsMCwwLDANCmh0dHAv
dGVzdHMvY29udGVudGV4dGVuc2lvbnMsNjEsNTgsMCwzLDANCmh0dHAvdGVzdHMvY29udGVudGZp
bHRlcmluZyw0LDQsMCwwLDANCmh0dHAvdGVzdHMvY29va2llcyw0MSwzNywzLDAsMQ0KaHR0cC90
ZXN0cy9jc3MsMjEsMTgsMCwzLDANCmh0dHAvdGVzdHMvZG9tLDIwLDIwLDAsMCwwDQpodHRwL3Rl
c3RzL2Rvd25sb2FkLDEyLDksMywwLDANCmh0dHAvdGVzdHMvZXZlbnRzLDQsMiwyLDAsMA0KaHR0
cC90ZXN0cy9ldmVudHNvdXJjZSwxNywxNywwLDAsMA0KaHR0cC90ZXN0cy9mZXRjaCwxMCw5LDAs
MSwwDQpodHRwL3Rlc3RzL2ZpbGVhcGksNCw0LDAsMCwwDQpodHRwL3Rlc3RzL2ZyYW1lLXRocm90
dGxpbmcsMiwyLDAsMCwwDQpodHRwL3Rlc3RzL2Z1bGxzY3JlZW4sMiwyLDAsMCwwDQpodHRwL3Rl
c3RzL2dsb2JhbGhpc3RvcnksNiw0LDIsMCwwDQpodHRwL3Rlc3RzL2d6aXAtY29udGVudC1lbmNv
ZGluZyw0LDQsMCwwLDANCmh0dHAvdGVzdHMvaGlzdG9yeSwzNiwzNSwwLDAsMQ0KaHR0cC90ZXN0
cy9pbWFnZXMsMTQsMTAsNCwwLDANCmh0dHAvdGVzdHMvaW5jcmVtZW50YWwsNyw2LDEsMCwwDQpo
dHRwL3Rlc3RzL2luc3BlY3Rvciw0MCwzNSw0LDEsMA0KaHR0cC90ZXN0cy9pbnRlcnNlY3Rpb24t
b2JzZXJ2ZXIsMSwxLDAsMCwwDQpodHRwL3Rlc3RzL2xvYWRpbmcsNTUsNDYsNCwzLDINCmh0dHAv
dGVzdHMvbG9jYWwsMzYsMjAsMTQsMCwyDQpodHRwL3Rlc3RzL21lZGlhLDgwLDU3LDgsMTAsNQ0K
aHR0cC90ZXN0cy9tZXNzYWdpbmcsMiwyLDAsMCwwDQpodHRwL3Rlc3RzL21pbWUsOSw5LDAsMCww
DQpodHRwL3Rlc3RzL21pc2MsMTY5LDE1Niw5LDMsMQ0KaHR0cC90ZXN0cy9tdWx0aXBhcnQsMTEs
OSwyLDAsMA0KaHR0cC90ZXN0cy9uYXZpZ2F0aW9uLDE2NSwxMzksMjAsNCwyDQpodHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMsOSw5LDAsMCwwDQpodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0LDE4LDE4
LDAsMCwwDQpodHRwL3Rlc3RzL3BlcmZvcm1hbmNlLDksOSwwLDAsMA0KaHR0cC90ZXN0cy9wbHVn
aW5zLDIzLDIyLDEsMCwwDQpodHRwL3Rlc3RzL3BvaW50ZXItbG9jayw3LDcsMCwwLDANCmh0dHAv
dGVzdHMvcHJlY29ubmVjdCwzLDMsMCwwLDANCmh0dHAvdGVzdHMvcHJlbG9hZCwyMywyMSwxLDEs
MA0KaHR0cC90ZXN0cy9xdWlja2xvb2ssMTIsMCwxMiwwLDANCmh0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LDI0LDI0LDAsMCwwDQpodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUsMjQs
MjQsMCwwLDANCmh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LXNjcmlwdCwyNCwyNCwwLDAsMA0K
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLDY1LDU2LDUsNCwwDQpodHRwL3Rlc3Rz
L3NlY3VyaXR5LDEzNzgsMTI3Myw4NCw1LDE2DQpodHRwL3Rlc3RzL3NzbCwyNywyNiwxLDAsMA0K
aHR0cC90ZXN0cy9zdG9yYWdlLDIsMiwwLDAsMA0KaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzLDI4
LDI0LDMsMSwwDQpodHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0eSw4LDgsMCwwLDANCmh0
dHAvdGVzdHMvc3ZnLDgsNywwLDEsMA0KaHR0cC90ZXN0cy91cmksNyw3LDAsMCwwDQpodHRwL3Rl
c3RzL3dlYkFQSVN0YXRpc3RpY3MsNCwwLDQsMCwwDQpodHRwL3Rlc3RzL3dlYmFyY2hpdmUsNSwy
LDAsMCwzDQpodHRwL3Rlc3RzL3dlYmZvbnQsNCwzLDEsMCwwDQpodHRwL3Rlc3RzL3dlYmdsLDQs
MywxLDAsMA0KaHR0cC90ZXN0cy93ZWJydGMsMywxLDAsMiwwDQpodHRwL3Rlc3RzL3dlYnNvY2tl
dCwxNTYsMTM5LDgsNiwzDQpodHRwL3Rlc3RzL3dvcmtlcnMsNzgsNzUsMSwyLDANCmh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QsMjc0LDI2NCwxLDcsMg0KaHR0cC90ZXN0cy94bWx2aWV3ZXIsMTIs
MTIsMCwwLDANCmh0dHAvdGVzdHMveHNsLDEsMSwwLDAsMA0KaHR0cC93cHQsMTg4LDE2OSwyLDE0
LDMNCmh0dHAvd3B0LzJkY29udGV4dCwzLDMsMCwwLDANCmh0dHAvd3B0L2JlYWNvbiwxOCwxNyww
LDAsMQ0KaHR0cC93cHQvY2FjaGUtc3RvcmFnZSwxMCwxMCwwLDAsMA0KaHR0cC93cHQvY3JlZGVu
dGlhbC1tYW5hZ2VtZW50LDUsNSwwLDAsMA0KaHR0cC93cHQvY3Jvc3Mtb3JpZ2luLXJlc291cmNl
LXBvbGljeSwxLDEsMCwwLDANCmh0dHAvd3B0L2NyeXB0bywyMiwyMiwwLDAsMA0KaHR0cC93cHQv
Y3NzLDQsNCwwLDAsMA0KaHR0cC93cHQvY3Nzb20sMSwxLDAsMCwwDQpodHRwL3dwdC9lbnRyaWVz
LWFwaSwxLDEsMCwwLDANCmh0dHAvd3B0L2ZldGNoLDE4LDE4LDAsMCwwDQpodHRwL3dwdC9nZW9t
ZXRyeSwyLDIsMCwwLDANCmh0dHAvd3B0L2h0bWwsNyw0LDIsMSwwDQpodHRwL3dwdC9sb2FkaW5n
LDEsMSwwLDAsMA0KaHR0cC93cHQvbWVkaWFyZWNvcmRlciw0LDQsMCwwLDANCmh0dHAvd3B0L29m
ZnNjcmVlbi1jYW52YXMsNCw0LDAsMCwwDQpodHRwL3dwdC9wcmVmZXRjaCw0LDQsMCwwLDANCmh0
dHAvd3B0L3ByZWxvYWQsMywzLDAsMCwwDQpodHRwL3dwdC9yZXNvdXJjZS10aW1pbmcsMjQsMTIs
MCwxMSwxDQpodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMsMTUsMTQsMCwxLDANCmh0dHAvd3B0L3dl
YmF1ZGlvLDEsMSwwLDAsMA0KaHR0cC93cHQvd2ViYXV0aG4sMjksMjgsMCwwLDENCmh0dHAvd3B0
L3dlYnJ0YywzLDIsMCwxLDANCmh0dHAvd3B0L3dvcmtlcnMsOCw4LDAsMCwwDQppZXRlc3RjZW50
ZXIsMTQ1MSwxNDE4LDIsMCwzMQ0KaW1wb3J0ZWQsMTM1NTYsOTc4MSwyOTcxLDIwMSw2MDMNCmlt
cG9ydGVkL2JsaW5rLDExMTMsMTA5MSw3LDksNg0KaW1wb3J0ZWQvYmxpbmsvYWNjZXNzaWJpbGl0
eSwyLDIsMCwwLDANCmltcG9ydGVkL2JsaW5rL2FuaW1hdGlvbnMsMjksMjksMCwwLDANCmltcG9y
dGVkL2JsaW5rL2NvbXBvc2l0aW5nLDY4LDY3LDAsMSwwDQppbXBvcnRlZC9ibGluay9jc3MtcGFy
c2VyLDEsMSwwLDAsMA0KaW1wb3J0ZWQvYmxpbmsvY3NzMywzOCwzOCwwLDAsMA0KaW1wb3J0ZWQv
YmxpbmsvY3Nzb20sMSwxLDAsMCwwDQppbXBvcnRlZC9ibGluay9kaWFsb2csNiw2LDAsMCwwDQpp
bXBvcnRlZC9ibGluay9lZGl0aW5nLDM0LDM0LDAsMCwwDQppbXBvcnRlZC9ibGluay9mYXN0LDY0
Miw2MzAsNCw0LDQNCmltcG9ydGVkL2JsaW5rL2Z1bGxzY3JlZW4sMSwxLDAsMCwwDQppbXBvcnRl
ZC9ibGluay9odHRwLDI5LDI2LDAsMSwyDQppbXBvcnRlZC9ibGluay9pbXBvcnRlZCwxMDcsMTA3
LDAsMCwwDQppbXBvcnRlZC9ibGluay9sb2FkZXIsMSwxLDAsMCwwDQppbXBvcnRlZC9ibGluay9t
ZWRpYSwzLDMsMCwwLDANCmltcG9ydGVkL2JsaW5rL3BhaW50LDEyLDEyLDAsMCwwDQppbXBvcnRl
ZC9ibGluay9wbHVnaW5zLDQsNCwwLDAsMA0KaW1wb3J0ZWQvYmxpbmsvcHJpbnRpbmcsMSwwLDEs
MCwwDQppbXBvcnRlZC9ibGluay9zY3JvbGxiYXJzLDMsMywwLDAsMA0KaW1wb3J0ZWQvYmxpbmsv
c3RvcmFnZSw1LDEsMiwyLDANCmltcG9ydGVkL2JsaW5rL3N2ZywxMDEsMTAxLDAsMCwwDQppbXBv
cnRlZC9ibGluay90cmFuc2Zvcm1zLDMsMywwLDAsMA0KaW1wb3J0ZWQvYmxpbmsvdHJhbnNpdGlv
bnMsOSw4LDAsMSwwDQppbXBvcnRlZC9ibGluay92aXJ0dWFsLDMsMywwLDAsMA0KaW1wb3J0ZWQv
Ymxpbmsvd2ViZXhwb3NlZCwyLDIsMCwwLDANCmltcG9ydGVkL21vemlsbGEsNTYxLDQ2OCwxLDYs
ODYNCmltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMsMjEsMTcsMSwzLDANCmltcG9ydGVk
L21vemlsbGEvY3NzLXRyYW5zaXRpb25zLDE1LDE0LDAsMSwwDQppbXBvcnRlZC9tb3ppbGxhL3N2
Zyw1MjUsNDM3LDAsMiw4Ng0KaW1wb3J0ZWQvdzNjLDExODgyLDgyMjIsMjk2MywxODYsNTExDQpp
bXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcsMjQ0LDI0NCwwLDAsMA0KaW1w
b3J0ZWQvdzNjL2NhbnZhcyw3ODQsNjg4LDQyLDAsNTQNCmltcG9ydGVkL3czYy9pMThuLDk0LDkz
LDAsMCwxDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLDEwNzYwLDcxOTcsMjkyMSwx
ODYsNDU2DQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dCw3LDYsMCwx
LDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvRmlsZUFQSSw0NSw0MiwwLDEsMg0K
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIsMzUxLDMzNCw0LDEzLDAN
CmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJLDkwLDcwLDE2LDQs
MA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJJREwsMjIsMjIsMCwwLDANCmlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaCwzLDAsMywwLDAN
CmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvYmVhY29uLDE5LDE4LDAsMSwwDQppbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5LDQ2Miwy
NTQsMjA4LDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb3JzLDIyLDksMSw1
LDcNCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3JlZGVudGlhbC1tYW5hZ2VtZW50
LDUsNSwwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MsMzA1NywyMzE1
LDM0MCwxOSwzODMNCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzLXRpbWluZy0x
LDQsNCwwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMsNjIsNjAsMiwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tLDI4Niwy
ODIsMCwzLDENCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tcGFyc2luZywyNCwy
NCwwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZywxMDYsMCwx
MDYsMCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY3J5cHRlZC1tZWRpYSwx
MDAsMCwxMDAsMCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNl
LDYxLDU5LDEsMCwxDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoLDI4Miwy
MjgsNDEsOSw0DQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUsMTAsOSww
LDAsMQ0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sLDE4OTUsMTcwMCwxMzAs
NDEsMjQNCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2ViaXRtYXAtcmVuZGVy
aW5nY29udGV4dCw2LDYsMCwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW5m
cmFzdHJ1Y3R1cmUsMjYsMTYsNywwLDMNCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW5uZXJUZXh0LDIsMiwwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbnRl
cnNlY3Rpb24tb2JzZXJ2ZXIsMzIsMzIsMCwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbG9hZGluZyw0LDIsMiwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bWF0aG1sLDcwLDYxLDEsMyw1DQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlh
LXNvdXJjZSw2NCwyOCwyNyw5LDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVk
aWFjYXB0dXJlLWZyb21lbGVtZW50LDQsMSwwLDEsMg0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3JkLDYsNSwwLDEsMA0KaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtc3RyZWFtcywzMSwzMSwwLDAsMA0KaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9taW1lc25pZmYsMywzLDAsMCwwDQppbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL21zdC1jb250ZW50LWhpbnQsMiwxLDEsMCwwDQppbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL25hdmlnYXRpb24tdGltaW5nLDIsMiwwLDAsMA0KaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ub3RpZmljYXRpb25zLDksOSwwLDAsMA0KaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QsNzQsMzYsMzgsMCwwDQpp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BlcmZvcm1hbmNlLXRpbWVsaW5lLDIsMiww
LDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzLDkyLDMy
LDYwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wcmVsb2FkLDE0LDE0LDAs
MCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3F1aXJrcyw2LDYsMCwwLDANCmlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVmZXJyZXItcG9saWN5LDE2MjksMCwxNjI5
LDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNpemUtb2JzZXJ2ZXIsNSw0
LDAsMSwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlLXRpbWluZyw1
NCw0MiwzLDYsMw0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZWN1cmUtY29udGV4
dHMsOCwxLDcsMCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1p
bmcsMTAsNiw0LDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMsMjkyLDI0OCwzMywxMCwxDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3No
YWRvdy1kb20sNDIsNDIsMCwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3Ry
ZWFtcywxMDgsMTA2LDAsMiwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3RvdWNo
LWV2ZW50cyw1LDAsNSwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdXJsLDI1
LDI0LDAsMSwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3VzZXItdGltaW5nLDQy
LDQyLDAsMCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zpc3VhbC12aWV3cG9y
dCwxMiwxMiwwLDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtLDUwLDUw
LDAsMCwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zLDY0
LDYzLDAsMSwwDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1zaGFyZSw1LDUs
MCwwLDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8sODYsODQsMSww
LDENCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VibWVzc2FnaW5nLDk4LDc0LDI0
LDAsMA0KaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMsMTAzLDkwLDcsMiw0
DQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMsMjgzLDE1NCw4Nyw0
MSwxDQppbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMsMTc5LDE0OCwyOSwy
LDANCmltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyLDI5OCwyNzIsNCw5LDEzDQpp
bnNwZWN0b3IsNDM2LDM0Niw2LDg0LDANCmludGVyc2VjdGlvbi1vYnNlcnZlciwxMSwxMSwwLDAs
MA0KanF1ZXJ5LDExLDEwLDEsMCwwDQpqcywxMzExLDEyOTEsNywxMSwyDQpsZWdhY3ktYW5pbWF0
aW9uLWVuZ2luZSw0ODYsNDE1LDksNjAsMg0KbG9hZGVyLDM2LDMyLDMsMSwwDQptYXRobWwsMTg3
LDE4MCw3LDAsMA0KbWVkaWEsMTEzMiw4NzMsMTQ1LDgyLDMyDQptZW1vcnksMSwwLDAsMSwwDQpt
aHRtbCwxMSwwLDExLDAsMA0KcGFnZW92ZXJsYXksNiw2LDAsMCwwDQpwZXJmLDIyLDAsMjIsMCww
DQpwZXJmb3JtYW5jZS1hcGksMTksMTYsMCwzLDANCnBsYXRmb3JtLDI1Niw0NywxOTgsOCwzDQpw
bGF0Zm9ybS9ndGssMjYsMCwyNiwwLDANCnBsYXRmb3JtL2d0ay9mYXN0LDcsMCw3LDAsMA0KcGxh
dGZvcm0vZ3RrL2ZvbnRzLDE2LDAsMTYsMCwwDQpwbGF0Zm9ybS9ndGsvcGx1Z2lucywxLDAsMSww
LDANCnBsYXRmb3JtL2d0ay9zY3JvbGxiYXJzLDIsMCwyLDAsMA0KcGxhdGZvcm0vaW9zLDg1LDAs
ODUsMCwwDQpwbGF0Zm9ybS9pb3MvZmFzdCw4LDAsOCwwLDANCnBsYXRmb3JtL2lvcy9pb3MsNzEs
MCw3MSwwLDANCnBsYXRmb3JtL2lvcy9tZWRpYSwzLDAsMywwLDANCnBsYXRmb3JtL2lvcy9tZWRp
YXN0cmVhbSwzLDAsMywwLDANCnBsYXRmb3JtL2lwYWQsMTgsMCwxOCwwLDANCnBsYXRmb3JtL2lw
YWQvZmFzdCwxMywwLDEzLDAsMA0KcGxhdGZvcm0vaXBhZC9tZWRpYSw1LDAsNSwwLDANCnBsYXRm
b3JtL2lwaG9uZS03LDQsMCw0LDAsMA0KcGxhdGZvcm0vaXBob25lLTcvZmFzdCwzLDAsMywwLDAN
CnBsYXRmb3JtL2lwaG9uZS03L3RpbGVkLWRyYXdpbmcsMSwwLDEsMCwwDQpwbGF0Zm9ybS9tYWMs
NzksMzgsMzQsNSwyDQpwbGF0Zm9ybS9tYWMtd2sxLDEsMCwxLDAsMA0KcGxhdGZvcm0vbWFjLXdr
MS9mYXN0LDEsMCwxLDAsMA0KcGxhdGZvcm0vbWFjLXdrMiwxMyw5LDAsMywxDQpwbGF0Zm9ybS9t
YWMtd2syL2FjY2Vzc2liaWxpdHksMSwxLDAsMCwwDQpwbGF0Zm9ybS9tYWMtd2syL3BsdWdpbnMs
MTIsOCwwLDMsMQ0KcGxhdGZvcm0vbWFjL2Zhc3QsNDcsMjIsMjAsMywyDQpwbGF0Zm9ybS9tYWMv
Zm9udHMsMSwxLDAsMCwwDQpwbGF0Zm9ybS9tYWMvbWVkaWEsMTIsMTAsMCwyLDANCnBsYXRmb3Jt
L21hYy9wbHVnaW5zLDE2LDMsMTMsMCwwDQpwbGF0Zm9ybS9tYWMvc2Nyb2xsYmFycywxLDAsMSww
LDANCnBsYXRmb3JtL21hYy9zdmcsMSwxLDAsMCwwDQpwbGF0Zm9ybS9tYWMvd2VicnRjLDEsMSww
LDAsMA0KcGxhdGZvcm0vd2luLDMwLDAsMzAsMCwwDQpwbGF0Zm9ybS93aW4vZWRpdGluZywzLDAs
MywwLDANCnBsYXRmb3JtL3dpbi9mYXN0LDE3LDAsMTcsMCwwDQpwbGF0Zm9ybS93aW4vaW52ZXJ0
ZWQtY29sb3JzLDEsMCwxLDAsMA0KcGxhdGZvcm0vd2luL3BsdWdpbnMsOSwwLDksMCwwDQpwbHVn
aW5zLDE1NCw5OCwzMSwyMCw1DQpwb2ludGVyLWxvY2ssMTUsMTAsNSwwLDANCnBvaW50ZXJldmVu
dHMsNjMsOSw1NCwwLDANCnByaW50aW5nLDYyLDYxLDEsMCwwDQpxdWlja2xvb2ssMTYsMCwxNiww
LDANCnJlc2l6ZS1vYnNlcnZlciw2LDYsMCwwLDANCnNjcm9sbGJhcnMsNDgsNDUsMywwLDANCnNj
cm9sbGluZ2Nvb3JkaW5hdG9yLDczLDM4LDMzLDIsMA0Kc2VjdXJpdHksMzQsMjUsNSw0LDANCnN0
b3JhZ2UsNzM0LDY4NSwyNywxMyw5DQpzdHJlYW1zLDI5LDI1LDAsNCwwDQpzdmcsMjc1OSwyNjgy
LDEwLDM1LDMyDQpzd2lwZSw1LDMsMCwxLDENCnN5c3RlbS1wcmV2aWV3LDIsMCwyLDAsMA0KdGFi
bGVzLDk1OCw5NTcsMCwxLDANCnRpbGVkLWRyYXdpbmcsMTM2LDEyNCwxLDExLDANCnRyYW5zZm9y
bXMsNTQsNTQsMCwwLDANCnRyYW5zaXRpb25zLDExNiw2Niw3LDQyLDENCnRyYXZlcnNhbCwzNCwz
NCwwLDAsMA0KdXNlcnNjcmlwdHMsMTksMTYsMywwLDANCndhc20sMywzLDAsMCwwDQp3ZWJhbmlt
YXRpb25zLDIyLDIyLDAsMCwwDQp3ZWJhcmNoaXZlLDM0LDI1LDIsMiw1DQp3ZWJhdWRpbywxMTYs
MTAyLDYsNywxDQp3ZWJleHBvc2VkLDEsMSwwLDAsMA0Kd2ViZ2wsMzM2MSwxNzAzLDE2MTgsNiwz
NA0Kd2ViZ3B1LDE0OSwxNDgsMCwxLDANCndlYnJ0Yyw4Miw4MCwwLDIsMA0Kd2VidnIsMiwyLDAs
MCwwDQp3b3JrZXJzLDE5LDcsMTAsMiwwDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436007</attachid>
            <date>2021-08-20 10:32:54 -0700</date>
            <delta_ts>2021-08-20 13:06:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200556-20210820103253.patch</filename>
            <type>text/plain</type>
            <size>11678</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4MTMyMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDIxLTA4LTIwICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZWFjaCBydW4td2Via2l0LXRlc3RzIHRvIHByaW50IGEgc3VtbWFyeSBvZiB0ZXN0IHN0
YXR1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBh
IG5ldyBvcHRpb24gdG8gcHJpbnQgYSBzdW1tYXJ5IGxpc3RpbmcgdGVzdCBleHBlY3RhdGlvbiBo
ZWFsdGguCisgICAgICAgIEl0IHVzZXMgdGhlIHNhbWUgZXhwZWN0ZWQgcmVzdWx0cyBhcyAtLXBy
aW50LWV4cGVjdGF0aW9ucy4KKworICAgICAgICBUbyBydW4gaXQ6IHJ1bi13ZWJraXQtdGVzdHMg
LS1wcmludC1zdW1tYXJ5CisKKyAgICAgICAgWW91IGNhbiBwYXNzIHRoZSBzYW1lIGFyZ3VtZW50
cyBhcyBub3JtYWwgcnVuLXdlYmtpdC10ZXN0cyBhbmQgaXQgd2lsbAorICAgICAgICByZXR1cm4g
c3RhdHMgYmFzZWQgb24gdGhlIHRlc3RzIGNvbGxlY3RlZC4KKworICAgICAgICBJdCBhbHNvIG91
dHB1dHMgYSAuY3N2IGZpbGUgd2l0aCB0aGUgZGF0YS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5h
Z2VyLnByaW50X2V4cGVjdGF0aW9ucyk6IEdhdGhlciB0aGUgdGVzdHMuIE5vdGUgd2hldGhlciB0
aGUgdGVzdAorICAgICAgICBpcyBtYXJrZWQgYXMgc2tpcCwgcGFzcywgZmxha3ksIG9yIGZhaWws
IHRoZSBkZWZpbml0aW9ucyBvZiB3aGljaCBhcmUKKyAgICAgICAgZGljdGF0ZWQgYnkgbW9kZWwu
Z2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUoKS4gT3V0cHV0IHRoZSByZXN1bHRzIHRvCisgICAg
ICAgIGNvbW1hbmQgbGluZSBhcyB3ZWxsIGFzIHRvIGZpbGUuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weTogQWRkIHRoZSBuZXcgb3B0
aW9uLgorICAgICAgICBJdCBnb2VzIHRocm91Z2ggdGhlIHNhbWUgcGF0aCBhcyAtLXByaW50LWV4
cGVjdGF0aW9ucy4KKwogMjAyMS0wOC0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIGFsbCBXVFIgb3V0cHV0IGJlZm9yZSBDb250ZW50LVR5cGU6
dGV4dC9wbGFpbiBmb3IgV2ViUlRDIHRlc3RzIGluIGNhc2Ugb2Yga25vd24gZXhjZXNzaXZlIGxv
Z2dpbmcKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQkocmV2aXNpb24gMjgxMzIwKQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQkod29ya2luZyBj
b3B5KQpAQCAtNzksNyArNzksNyBAQCBkZWYgbWFpbihhcmd2LCBzdGRvdXQsIHN0ZGVycik6CiAg
ICAgbG9nX3N0YWNrX3RyYWNlX29uX3NpZ25hbCgnU0lHVEVSTScsIG91dHB1dF9maWxlPXN0YWNr
X3RyYWNlX3BhdGgpCiAgICAgbG9nX3N0YWNrX3RyYWNlX29uX3NpZ25hbCgnU0lHSU5UJywgb3V0
cHV0X2ZpbGU9c3RhY2tfdHJhY2VfcGF0aCkKIAotICAgIGlmIG9wdGlvbnMucHJpbnRfZXhwZWN0
YXRpb25zOgorICAgIGlmIG9wdGlvbnMucHJpbnRfZXhwZWN0YXRpb25zIG9yIG9wdGlvbnMucHJp
bnRfc3VtbWFyeToKICAgICAgICAgcmV0dXJuIF9wcmludF9leHBlY3RhdGlvbnMocG9ydCwgb3B0
aW9ucywgYXJncywgc3RkZXJyKQogCiAgICAgdHJ5OgpAQCAtMzMyLDYgKzMzMiw5IEBAIGRlZiBw
YXJzZV9hcmdzKGFyZ3MpOgogICAgICAgICAgICAgIi0tcHJpbnQtZXhwZWN0YXRpb25zIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgIGhlbHA9KCJQcmlu
dCB0aGUgZXhwZWN0ZWQgb3V0Y29tZSBmb3IgdGhlIGdpdmVuIHRlc3QsIG9yIGFsbCB0ZXN0cyBs
aXN0ZWQgaW4gVGVzdEV4cGVjdGF0aW9ucy4gRG9lcyBub3QgcnVuIGFueSB0ZXN0cy4iKSksCiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKAorICAgICAgICAgICAgIi0tcHJpbnQtc3VtbWFy
eSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICBoZWxw
PSgiUHJpbnQgYSBzdW1tYXJ5IG9mIGhvdyB0ZXN0cyBhcmUgZXhwZWN0ZWQgdG8gcnVuLCBncm91
cGVkIGJ5IGRpcmVjdG9yeS4gRG9lcyBub3QgcnVuIGFueSB0ZXN0cy4iKSksCisgICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKAogICAgICAgICAgICAgIi0td2ViZ2wtdGVzdC1zdWl0ZSIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICBoZWxwPSgiUnVu
IGV4aGF1c3RpdmUgd2ViZ2wgbGlzdCwgaW5jbHVkaW5nIHRlc3Qgb3JkaW5hcmlseSBza2lwcGVk
IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBFcXVpdmFsZW50IHRvICctLWFkZGl0aW9uYWwtZXhw
ZWN0YXRpb25zPUxheW91dFRlc3RzL3dlYmdsL1Rlc3RFeHBlY3RhdGlvbnMgd2ViZ2wnIikpLAog
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigKQEAgLTM5NCw3ICszOTcsMTAgQEAgZGVmIF9w
cmludF9leHBlY3RhdGlvbnMocG9ydCwgb3B0aW9ucywgYQogICAgICAgICBfc2V0X3VwX2Rlcml2
ZWRfb3B0aW9ucyhwb3J0LCBvcHRpb25zKQogICAgICAgICBtYW5hZ2VyID0gTWFuYWdlcihwb3J0
LCBvcHRpb25zLCBwcmludGVyKQogCi0gICAgICAgIGV4aXRfY29kZSA9IG1hbmFnZXIucHJpbnRf
ZXhwZWN0YXRpb25zKGFyZ3MpCisgICAgICAgIGlmIG9wdGlvbnMucHJpbnRfZXhwZWN0YXRpb25z
OgorICAgICAgICAgICAgZXhpdF9jb2RlID0gbWFuYWdlci5wcmludF9leHBlY3RhdGlvbnMoYXJn
cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4aXRfY29kZSA9IG1hbmFnZXIucHJpbnRf
c3VtbWFyeShhcmdzKQogICAgICAgICBfbG9nLmRlYnVnKCJQcmludGluZyBleHBlY3RhdGlvbnMg
Y29tcGxldGVkLCBFeGl0IHN0YXR1czogJWQiLCBleGl0X2NvZGUpCiAgICAgICAgIHJldHVybiBl
eGl0X2NvZGUKICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyLnB5CShyZXZpc2lvbiAyODEzMjApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNSBAQAorIyAtKi0gY29kaW5nOiBVVEYtOCAtKi0KKwogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEwIEdh
Ym9yIFJhcGNzYW55aSAocmdhYm9yQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkCiAjCkBAIC0zNCw5ICszNiwxMiBAQCBvYmplY3RzIHRvIHRoZSBNYW5hZ2VyLiBUaGUgTWFu
YWdlciB0aGVuCiBjcmVhdGUgYSBmaW5hbCByZXBvcnQuCiAiIiIKIAoraW1wb3J0IGNzdgogaW1w
b3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGltcG9ydCByYW5kb20KK2ltcG9y
dCByZQogaW1wb3J0IHNodXRpbAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKQEAgLTc3MywzICs3
NzgsMTM0IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX3ByaW50
X2V4cGVjdGF0aW9uc19mb3Jfc3Vic2V0KGRldmljZV90eXBlLCB0ZXN0X2NvbF93aWR0aCwgdGVz
dHNfdG9fcnVuX2J5X2RldmljZVtkZXZpY2VfdHlwZV0pCiAKICAgICAgICAgcmV0dXJuIDAKKwor
ICAgIGRlZiBwcmludF9zdW1tYXJ5KHNlbGYsIGFyZ3MpOgorICAgICAgICBkZXZpY2VfdHlwZV9s
aXN0ID0gc2VsZi5fcG9ydC5ERUZBVUxUX0RFVklDRV9UWVBFUyBvciBbc2VsZi5fcG9ydC5ERVZJ
Q0VfVFlQRV0KKyAgICAgICAgdGVzdF9zdGF0cyA9IHt9CisKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgc2VsZi5fY29sbGVjdF90ZXN0cyhhcmdzLCBkZXZpY2VfdHlwZV9saXN0KQorICAgICAg
ICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICMgVGhpcyBpcyByYWlzZWQgaWYgLS10ZXN0
LWxpc3QgZG9lc24ndCBleGlzdAorICAgICAgICAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMu
UnVuRGV0YWlscyhleGl0X2NvZGU9LTEpCisKKyAgICAgICAgZm9yIGRldmljZV90eXBlLCBleHBl
Y3RhdGlvbnMgaW4gc2VsZi5fZXhwZWN0YXRpb25zLml0ZW1zKCk6CisgICAgICAgICAgICB0ZXN0
X3N0YXRzW2RldmljZV90eXBlXSA9IHsnX19yb290X18nOiB7J2NvdW50JzogMCwgJ3NraXAnOiAw
LCAncGFzcyc6IDAsICdmbGFreSc6IDAsICdmYWlsJzogMCwgJ2hhc190ZXN0cyc6IEZhbHNlfX0K
KyAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRzID0gdGVzdF9zdGF0c1tkZXZpY2VfdHlwZV0K
KworICAgICAgICAgICAgbW9kZWwgPSBleHBlY3RhdGlvbnMubW9kZWwoKQorICAgICAgICAgICAg
dGVzdHNfc2tpcHBlZCA9IG1vZGVsLmdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhw
ZWN0YXRpb25zLlNLSVApCisgICAgICAgICAgICB0ZXN0c19wYXNzaW5nID0gbW9kZWwuZ2V0X3Rl
c3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3RhdGlvbnMuUEFTUykKKyAgICAgICAgICAg
IHRlc3RzX2ZsYWt5ID0gbW9kZWwuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBl
Y3RhdGlvbnMuRkxBS1kpCisgICAgICAgICAgICB0ZXN0c19taXNjX2ZhaWwgPSBtb2RlbC5nZXRf
dGVzdHNfd2l0aF9yZXN1bHRfdHlwZSh0ZXN0X2V4cGVjdGF0aW9ucy5GQUlMKQorCisgICAgICAg
ICAgICBkZWYgX2luY3JlbWVudF9zdGF0KGRpcm5hbWUsIHRlc3RfbmFtZSwgdGVzdF9pbl9kaXJl
Y3RvcnkpOgorICAgICAgICAgICAgICAgIGlmIGRpcm5hbWUgaW4gZGV2aWNlX3Rlc3Rfc3RhdHM6
CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydjb3VudCdd
ICs9IDEKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkZXZpY2Vf
dGVzdF9zdGF0c1tkaXJuYW1lXSA9IHsnY291bnQnOiAxLCAnc2tpcCc6IDAsICdwYXNzJzogMCwg
J2ZsYWt5JzogMCwgJ2ZhaWwnOiAwLCAnaGFzX3Rlc3RzJzogRmFsc2V9CisKKyAgICAgICAgICAg
ICAgICBpZiB0ZXN0X25hbWUgaW4gdGVzdHNfc2tpcHBlZDoKKyAgICAgICAgICAgICAgICAgICAg
ZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ3NraXAnXSArPSAxCisgICAgICAgICAgICAgICAg
aWYgdGVzdF9uYW1lIGluIHRlc3RzX3Bhc3Npbmc6CisgICAgICAgICAgICAgICAgICAgIGRldmlj
ZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydwYXNzJ10gKz0gMQorICAgICAgICAgICAgICAgIGlmIHRl
c3RfbmFtZSBpbiB0ZXN0c19mbGFreToKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rf
c3RhdHNbZGlybmFtZV1bJ2ZsYWt5J10gKz0gMQorICAgICAgICAgICAgICAgIGlmIHRlc3RfbmFt
ZSBpbiB0ZXN0c19taXNjX2ZhaWw6CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0
YXRzW2Rpcm5hbWVdWydmYWlsJ10gKz0gMQorICAgICAgICAgICAgICAgIGRldmljZV90ZXN0X3N0
YXRzW2Rpcm5hbWVdWydoYXNfdGVzdHMnXSA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydo
YXNfdGVzdHMnXSBvciB0ZXN0X2luX2RpcmVjdG9yeQorCisgICAgICAgICAgICBmb3IgdGVzdF9u
YW1lIGluIGV4cGVjdGF0aW9ucy5fZnVsbF90ZXN0X2xpc3Q6CisgICAgICAgICAgICAgICAgcGF0
aCA9IHRlc3RfbmFtZQorICAgICAgICAgICAgICAgIHRlc3RfaW5fZGlyZWN0b3J5ID0gVHJ1ZQor
ICAgICAgICAgICAgICAgIHdoaWxlIHBhdGggIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIHBh
dGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKKyAgICAgICAgICAgICAgICAgICAgX2luY3JlbWVu
dF9zdGF0KHBhdGggb3IgJ19fcm9vdF9fJywgdGVzdF9uYW1lLCB0ZXN0X2luX2RpcmVjdG9yeSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdF9pbl9kaXJlY3RvcnkgPSBGYWxzZQorCisgICAgICAg
ICAgICBwcmludCgnJykKKyAgICAgICAgICAgIHByaW50KCdTdW1tYXJ5IG9mIHRlc3QgZXhwZWN0
YXRpb25zIHt9aW4gbGF5b3V0IHRlc3QgZGlyZWN0b3JpZXM6Jy5mb3JtYXQodSdmb3Ige30gJy5m
b3JtYXQoZGV2aWNlX3R5cGUpIGlmIGRldmljZV90eXBlIGVsc2UgJycpKQorICAgICAgICAgICAg
cm9vdCA9IGRldmljZV90ZXN0X3N0YXRzWydfX3Jvb3RfXyddCisgICAgICAgICAgICBwcmludCgn
ICAgIHt9IHRvdGFsIHRlc3RzJy5mb3JtYXQocm9vdFsnY291bnQnXSkpCisgICAgICAgICAgICBw
cmludCgnICAgIHt9IHBhc3MnLmZvcm1hdChyb290WydwYXNzJ10pKQorICAgICAgICAgICAgcHJp
bnQoJyAgICB7fSBhcmUgc2tpcHBlZCcuZm9ybWF0KHJvb3RbJ3NraXAnXSkpCisgICAgICAgICAg
ICBwcmludCgnICAgIHt9IGFyZSBmbGFreScuZm9ybWF0KHJvb3RbJ2ZsYWt5J10pKQorICAgICAg
ICAgICAgcHJpbnQoJyAgICB7fSBmYWlsIGZvciBvdGhlciByZWFzb25zJy5mb3JtYXQocm9vdFsn
ZmFpbCddKSkKKworICAgICAgICAgICAgcHJpbnQoJycpCisgICAgICAgICAgICBwcmludCgnUGVy
IGRpcmVjdG9yeSByZXN1bHRzOicpCisgICAgICAgICAgICBwcmludCgnKCogbWVhbnMgdGhlcmUg
YXJlIG5vIHRlc3RzIGluIHRoYXQgc3BlY2lmaWMgZGlyZWN0b3J5KScpCisgICAgICAgICAgICBw
cmludCgnJykKKyAgICAgICAgICAgIHJvd19mb3JtYXQgPSB1JyAgICB7MDo1MHN9ezE6PjhkfXsy
Oj44ZH17Mzo+OGR9ezQ6PjhkfXs1Oj44ZH0nCisgICAgICAgICAgICBzcm93X2Zvcm1hdCA9IHJv
d19mb3JtYXQucmVwbGFjZSgnZCcsICdzJykKKyAgICAgICAgICAgIHByaW50KHNyb3dfZm9ybWF0
LmZvcm1hdCgnRElSRUNUT1JZJywgJ1RPVEFMJywgJ1BBU1MnLCAnU0tJUCcsICdGTEFLWScsICdG
QUlMJykpCisgICAgICAgICAgICBwcmludChzcm93X2Zvcm1hdC5mb3JtYXQoJy0tLS0tLS0tLScs
ICctLS0tLScsICctLS0tJywgJy0tLS0nLCAnLS0tLS0nLCAnLS0tLScpKQorCisgICAgICAgICAg
ICBkZWYgX3Nob3VsZF9pbmNsdWRlX2Rpcl9pbl9yZXBvcnQoZGlybmFtZSk6CisgICAgICAgICAg
ICAgICAgbnVtX2RpcnMgPSBkaXJuYW1lLmNvdW50KCcvJykKKyAgICAgICAgICAgICAgICBpZiBu
dW1fZGlycyA+IDA6CisgICAgICAgICAgICAgICAgICAgIGlmIG51bV9kaXJzID4gMToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIG51bV9kaXJzID4gMjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBudW1fZGlycyA+IDM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgbm90IHJlLm1h
dGNoKHInXihpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzKS8nLCBkaXJuYW1lKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICBlbGlmIG5vdCByZS5tYXRjaChyJyhpbXBvcnRlZHxodHRwfHBsYXRmb3JtKS8n
LCBkaXJuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgICAgICAgICAgICAgZWxpZiBub3QgcmUubWF0Y2gocideKGZhc3R8cGxhdGZvcm18aW1w
b3J0ZWR8aHR0cCkvJywgZGlybmFtZSk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgICAgICBmb3IgZGly
bmFtZSBpbiBzb3J0ZWQoZGV2aWNlX3Rlc3Rfc3RhdHMua2V5cygpKToKKyAgICAgICAgICAgICAg
ICBpZiBub3QgX3Nob3VsZF9pbmNsdWRlX2Rpcl9pbl9yZXBvcnQoZGlybmFtZSk6CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICB0cnVuY2F0ZWRfZGlybmFt
ZSA9IHJlLnN1YihyJ14uKiguezQ3fSkkJywgJy4uLlxnPDE+JywgZGlybmFtZSBpZiBkZXZpY2Vf
dGVzdF9zdGF0c1tkaXJuYW1lXVsnaGFzX3Rlc3RzJ10gZWxzZSAne30qJy5mb3JtYXQoZGlybmFt
ZSkpCisgICAgICAgICAgICAgICAgY291bnQgPSBkZXZpY2VfdGVzdF9zdGF0c1tkaXJuYW1lXVsn
Y291bnQnXQorICAgICAgICAgICAgICAgIHBhc3NpbmcgPSBkZXZpY2VfdGVzdF9zdGF0c1tkaXJu
YW1lXVsncGFzcyddCisgICAgICAgICAgICAgICAgc2tpcCA9IGRldmljZV90ZXN0X3N0YXRzW2Rp
cm5hbWVdWydza2lwJ10KKyAgICAgICAgICAgICAgICBmbGFreSA9IGRldmljZV90ZXN0X3N0YXRz
W2Rpcm5hbWVdWydmbGFreSddCisgICAgICAgICAgICAgICAgZmFpbCA9IGRldmljZV90ZXN0X3N0
YXRzW2Rpcm5hbWVdWydmYWlsJ10KKyAgICAgICAgICAgICAgICBpZiBwYXNzaW5nID09IGNvdW50
OgorICAgICAgICAgICAgICAgICAgICAjIERvbid0IHByaW50IHRoaXMgbGluZSBpZiBhbiBhbmNl
c3RvciBkaXJlY3RvcnkgaXMgYWxsIHBhc3MgYWxzbworICAgICAgICAgICAgICAgICAgICBhbmNl
c3Rvcl9kaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKGRpcm5hbWUpCisgICAgICAgICAgICAgICAg
ICAgIHdoaWxlIGFuY2VzdG9yX2Rpcm5hbWUgYW5kIGFuY2VzdG9yX2Rpcm5hbWUgbm90IGluIGRl
dmljZV90ZXN0X3N0YXRzOgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JfZGlybmFt
ZSA9IG9zLnBhdGguZGlybmFtZShhbmNlc3Rvcl9kaXJuYW1lKQorICAgICAgICAgICAgICAgICAg
ICBpZiBhbmNlc3Rvcl9kaXJuYW1lIGFuZCBkZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJu
YW1lXVsncGFzcyddID09IGRldmljZV90ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVdWydjb3Vu
dCddOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoc3Jvd19mb3JtYXQuZm9ybWF0KHRydW5jYXRlZF9kaXJuYW1lLCBzdHIoY291bnQp
LCB1IuKWiOKWiCBQQVNTIiwgdScg4paI4paI4paI4paI4paI4paI4paIJywgdSfilojilojiloji
lojilojilojilojilognLCB1J+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiCcpKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsaWYgc2tpcCA9PSBjb3VudDoK
KyAgICAgICAgICAgICAgICAgICAgIyBEb24ndCBwcmludCB0aGlzIGxpbmUgaWYgYW4gYW5jZXN0
b3IgZGlyZWN0b3J5IGlzIGFsbCBza2lwIGFsc28KKyAgICAgICAgICAgICAgICAgICAgYW5jZXN0
b3JfZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShkaXJuYW1lKQorICAgICAgICAgICAgICAgICAg
ICB3aGlsZSBhbmNlc3Rvcl9kaXJuYW1lIGFuZCBhbmNlc3Rvcl9kaXJuYW1lIG5vdCBpbiBkZXZp
Y2VfdGVzdF9zdGF0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9yX2Rpcm5hbWUg
PSBvcy5wYXRoLmRpcm5hbWUoYW5jZXN0b3JfZGlybmFtZSkKKyAgICAgICAgICAgICAgICAgICAg
aWYgYW5jZXN0b3JfZGlybmFtZSBhbmQgZGV2aWNlX3Rlc3Rfc3RhdHNbYW5jZXN0b3JfZGlybmFt
ZV1bJ3NraXAnXSA9PSBkZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJuYW1lXVsnY291bnQn
XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAg
IHByaW50KHNyb3dfZm9ybWF0LmZvcm1hdCh0cnVuY2F0ZWRfZGlybmFtZSwgc3RyKGNvdW50KSwg
dSfilpHilpHilpHilpHilpHilpHilpEnLCB1IuKWkeKWkeKWkSBTS0lQIiwgdScg4paR4paR4paR
4paR4paR4paR4paRJywgdSfilpHilpHilpHilpHilpHilpHilpHilpEnKSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBwcmludChyb3dfZm9ybWF0LmZvcm1h
dCh0cnVuY2F0ZWRfZGlybmFtZSwgY291bnQsIHBhc3NpbmcsIHNraXAsIGZsYWt5LCBmYWlsKSkK
KworICAgICAgICB3aXRoIG9wZW4oJ2xheW91dF90ZXN0cy5jc3YnLCAndycpIGFzIGNzdmZpbGU6
CisgICAgICAgICAgICB3cml0ZXIgPSBjc3Yud3JpdGVyKGNzdmZpbGUsIGRlbGltaXRlcj0nLCcs
IHF1b3Rpbmc9Y3N2LlFVT1RFX01JTklNQUwpCisKKyAgICAgICAgICAgIGhlYWRlcl9yb3dfMSA9
IFsnJ10gKiAyCisgICAgICAgICAgICBoZWFkZXJfcm93XzIgPSBbIkRpcmVjdG9yeSIsICJUb3Rh
bCJdCisgICAgICAgICAgICBmb3IgZGV2aWNlX3R5cGUgaW4gc29ydGVkKGRldmljZV90eXBlX2xp
c3QpOgorICAgICAgICAgICAgICAgIGhlYWRlcl9yb3dfMS5hcHBlbmQoJ3t9e30nLmZvcm1hdChz
ZWxmLl9wb3J0Lm5hbWUoKSwgJywge30nLmZvcm1hdChkZXZpY2VfdHlwZSkgaWYgZGV2aWNlX3R5
cGUgZWxzZSAnJykpCisgICAgICAgICAgICAgICAgaGVhZGVyX3Jvd18xLmV4dGVuZChbJyddICog
MykKKyAgICAgICAgICAgICAgICBoZWFkZXJfcm93XzIuZXh0ZW5kKFsnUGFzcycsICdTa2lwJywg
J0ZsYWt5JywgJ0ZhaWwnXSkKKyAgICAgICAgICAgIHdyaXRlci53cml0ZXJvdyhoZWFkZXJfcm93
XzEpCisgICAgICAgICAgICB3cml0ZXIud3JpdGVyb3coaGVhZGVyX3Jvd18yKQorCisgICAgICAg
ICAgICBhX2RldmljZV90ZXN0X3N0YXQgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlX2xpc3RbMF1d
CisgICAgICAgICAgICBmb3IgZGlybmFtZSBpbiBzb3J0ZWQoYV9kZXZpY2VfdGVzdF9zdGF0Lmtl
eXMoKSk6CisgICAgICAgICAgICAgICAgaWYgbm90IF9zaG91bGRfaW5jbHVkZV9kaXJfaW5fcmVw
b3J0KGRpcm5hbWUpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAg
ICAgIHJvdyA9IFtkaXJuYW1lLCBhX2RldmljZV90ZXN0X3N0YXRbZGlybmFtZV1bJ2NvdW50J11d
CisgICAgICAgICAgICAgICAgZm9yIGRldmljZV90eXBlIGluIHNvcnRlZChkZXZpY2VfdHlwZV9s
aXN0KToKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBl
XVtkaXJuYW1lXQorICAgICAgICAgICAgICAgICAgICByb3cuZXh0ZW5kKFtzdGF0c1sncGFzcydd
LCBzdGF0c1snc2tpcCddLCBzdGF0c1snZmxha3knXSwgc3RhdHNbJ2ZhaWwnXV0pCisgICAgICAg
ICAgICAgICAgd3JpdGVyLndyaXRlcm93KHJvdykKKworICAgICAgICByZXR1cm4gMAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436018</attachid>
            <date>2021-08-20 13:06:27 -0700</date>
            <delta_ts>2021-08-20 14:57:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200556-20210820130627.patch</filename>
            <type>text/plain</type>
            <size>12928</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4MTMyOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDIxLTA4LTIwICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZWFjaCBydW4td2Via2l0LXRlc3RzIHRvIHByaW50IGEgc3VtbWFyeSBvZiB0ZXN0IHN0
YXR1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAw
NTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBh
IG5ldyBvcHRpb24gdG8gcHJpbnQgYSBzdW1tYXJ5IGxpc3RpbmcgdGVzdCBleHBlY3RhdGlvbiBo
ZWFsdGguCisgICAgICAgIEl0IHVzZXMgdGhlIHNhbWUgZXhwZWN0ZWQgcmVzdWx0cyBhcyAtLXBy
aW50LWV4cGVjdGF0aW9ucy4KKworICAgICAgICBUbyBydW4gaXQ6IHJ1bi13ZWJraXQtdGVzdHMg
LS1wcmludC1zdW1tYXJ5CisKKyAgICAgICAgWW91IGNhbiBwYXNzIHRoZSBzYW1lIGFyZ3VtZW50
cyBhcyBub3JtYWwgcnVuLXdlYmtpdC10ZXN0cyBhbmQgaXQgd2lsbAorICAgICAgICByZXR1cm4g
c3RhdHMgYmFzZWQgb24gdGhlIHRlc3RzIGNvbGxlY3RlZC4KKworICAgICAgICBJdCBhbHNvIG91
dHB1dHMgYSAuY3N2IGZpbGUgd2l0aCB0aGUgZGF0YS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHk6CisgICAgICAgIChNYW5h
Z2VyLnByaW50X2V4cGVjdGF0aW9ucyk6IEdhdGhlciB0aGUgdGVzdHMuIE5vdGUgd2hldGhlciB0
aGUgdGVzdAorICAgICAgICBpcyBtYXJrZWQgYXMgc2tpcCwgcGFzcywgZmxha3ksIG9yIGZhaWws
IHRoZSBkZWZpbml0aW9ucyBvZiB3aGljaCBhcmUKKyAgICAgICAgZGljdGF0ZWQgYnkgbW9kZWwu
Z2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUoKS4gT3V0cHV0IHRoZSByZXN1bHRzIHRvCisgICAg
ICAgIGNvbW1hbmQgbGluZSBhcyB3ZWxsIGFzIHRvIGZpbGUuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weTogQWRkIHRoZSBuZXcgb3B0
aW9uLgorICAgICAgICBJdCBnb2VzIHRocm91Z2ggdGhlIHNhbWUgcGF0aCBhcyAtLXByaW50LWV4
cGVjdGF0aW9ucy4KKwogMjAyMS0wOC0yMCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxj
bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gR1RLLUxpbnV4
LTY0LWJpdC1SZWxlYXNlLVNraXAtRmFpbGluZy1UZXN0cyB3b3JrZXIgc2hvdWxkIHJ1biBvbmx5
IGxheW91dCB0ZXN0cwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CShyZXZpc2lvbiAyODEzMjgpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIGRlZiBtYWluKGFyZ3YsIHN0ZG91dCwgc3Rk
ZXJyKToKICAgICBsb2dfc3RhY2tfdHJhY2Vfb25fc2lnbmFsKCdTSUdURVJNJywgb3V0cHV0X2Zp
bGU9c3RhY2tfdHJhY2VfcGF0aCkKICAgICBsb2dfc3RhY2tfdHJhY2Vfb25fc2lnbmFsKCdTSUdJ
TlQnLCBvdXRwdXRfZmlsZT1zdGFja190cmFjZV9wYXRoKQogCi0gICAgaWYgb3B0aW9ucy5wcmlu
dF9leHBlY3RhdGlvbnM6CisgICAgaWYgb3B0aW9ucy5wcmludF9leHBlY3RhdGlvbnMgb3Igb3B0
aW9ucy5wcmludF9zdW1tYXJ5OgogICAgICAgICByZXR1cm4gX3ByaW50X2V4cGVjdGF0aW9ucyhw
b3J0LCBvcHRpb25zLCBhcmdzLCBzdGRlcnIpCiAKICAgICB0cnk6CkBAIC0zMzIsNiArMzMyLDkg
QEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAgICAgICAiLS1wcmludC1leHBlY3RhdGlv
bnMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgaGVs
cD0oIlByaW50IHRoZSBleHBlY3RlZCBvdXRjb21lIGZvciB0aGUgZ2l2ZW4gdGVzdCwgb3IgYWxs
IHRlc3RzIGxpc3RlZCBpbiBUZXN0RXhwZWN0YXRpb25zLiBEb2VzIG5vdCBydW4gYW55IHRlc3Rz
LiIpKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oCisgICAgICAgICAgICAiLS1wcmlu
dC1zdW1tYXJ5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAg
ICAgIGhlbHA9KCJQcmludCBhIHN1bW1hcnkgb2YgaG93IHRlc3RzIGFyZSBleHBlY3RlZCB0byBy
dW4sIGdyb3VwZWQgYnkgZGlyZWN0b3J5LiBEb2VzIG5vdCBydW4gYW55IHRlc3RzLiIpKSwKKyAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oCiAgICAgICAgICAgICAiLS13ZWJnbC10ZXN0LXN1
aXRlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgIGhl
bHA9KCJSdW4gZXhoYXVzdGl2ZSB3ZWJnbCBsaXN0LCBpbmNsdWRpbmcgdGVzdCBvcmRpbmFyaWx5
IHNraXBwZWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIEVxdWl2YWxlbnQgdG8gJy0tYWRkaXRp
b25hbC1leHBlY3RhdGlvbnM9TGF5b3V0VGVzdHMvd2ViZ2wvVGVzdEV4cGVjdGF0aW9ucyB3ZWJn
bCciKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKApAQCAtMzk0LDcgKzM5NywxMCBA
QCBkZWYgX3ByaW50X2V4cGVjdGF0aW9ucyhwb3J0LCBvcHRpb25zLCBhCiAgICAgICAgIF9zZXRf
dXBfZGVyaXZlZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpCiAgICAgICAgIG1hbmFnZXIgPSBNYW5h
Z2VyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCiAKLSAgICAgICAgZXhpdF9jb2RlID0gbWFuYWdl
ci5wcmludF9leHBlY3RhdGlvbnMoYXJncykKKyAgICAgICAgaWYgb3B0aW9ucy5wcmludF9leHBl
Y3RhdGlvbnM6CisgICAgICAgICAgICBleGl0X2NvZGUgPSBtYW5hZ2VyLnByaW50X2V4cGVjdGF0
aW9ucyhhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXhpdF9jb2RlID0gbWFuYWdl
ci5wcmludF9zdW1tYXJ5KGFyZ3MpCiAgICAgICAgIF9sb2cuZGVidWcoIlByaW50aW5nIGV4cGVj
dGF0aW9ucyBjb21wbGV0ZWQsIEV4aXQgc3RhdHVzOiAlZCIsIGV4aXRfY29kZSkKICAgICAgICAg
cmV0dXJuIGV4aXRfY29kZQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyb3I6CkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVn
cmF0aW9udGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQkocmV2aXNpb24gMjgx
MzI4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTkyNCw3ICs5MjQsNyBA
QCBjbGFzcyBSdW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBTdHJlYW1UCiAKICAgICAgICAgd2l0
aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQ6CiAgICAgICAgICAgICBsb2dnaW5nID0gU3Ry
aW5nSU8oKQotICAgICAgICAgICAgcnVuX3dlYmtpdF90ZXN0cy5fcHJpbnRfZXhwZWN0YXRpb25z
KHBvcnQsIHJ1bl93ZWJraXRfdGVzdHMucGFyc2VfYXJncyhbXSlbMF0sIFtdLCBsb2dnaW5nX3N0
cmVhbT1sb2dnaW5nKQorICAgICAgICAgICAgcnVuX3dlYmtpdF90ZXN0cy5fcHJpbnRfZXhwZWN0
YXRpb25zKHBvcnQsIHJ1bl93ZWJraXRfdGVzdHMucGFyc2VfYXJncyhbJy0tcHJpbnQtZXhwZWN0
YXRpb25zJ10pWzBdLCBbXSwgbG9nZ2luZ19zdHJlYW09bG9nZ2luZykKIAogICAgICAgICBjdXJy
ZW50X3R5cGUgPSBOb25lCiAgICAgICAgIGJ5X3R5cGUgPSB7fQpAQCAtOTcxLDcgKzk3MSw3IEBA
IGNsYXNzIFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVQKIAogICAgICAgICB3aXRo
IE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIGxvZ2dpbmcgPSBTdHJp
bmdJTygpCi0gICAgICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9wcmludF9leHBlY3RhdGlvbnMo
cG9ydCwgcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKFtdKVswXSwgW10sIGxvZ2dpbmdfc3Ry
ZWFtPWxvZ2dpbmcpCisgICAgICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9wcmludF9leHBlY3Rh
dGlvbnMocG9ydCwgcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9hcmdzKFsnLS1wcmludC1leHBlY3Rh
dGlvbnMnXSlbMF0sIFtdLCBsb2dnaW5nX3N0cmVhbT1sb2dnaW5nKQogCiAgICAgICAgIGN1cnJl
bnRfdHlwZSA9IE5vbmUKICAgICAgICAgYnlfdHlwZSA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXIucHkJKHJldmlzaW9uIDI4MTMyOCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1
IEBACisjIC0qLSBjb2Rpbmc6IFVURi04IC0qLQorCiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR2Fib3Ig
UmFwY3NhbnlpIChyZ2Fib3JAaW5mLnUtc3plZ2VkLmh1KSwgVW5pdmVyc2l0eSBvZiBTemVnZWQK
ICMKQEAgLTM0LDkgKzM2LDEyIEBAIG9iamVjdHMgdG8gdGhlIE1hbmFnZXIuIFRoZSBNYW5hZ2Vy
IHRoZW4KIGNyZWF0ZSBhIGZpbmFsIHJlcG9ydC4KICIiIgogCitpbXBvcnQgY3N2CiBpbXBvcnQg
anNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogaW1wb3J0IHJhbmRvbQoraW1wb3J0IHJl
CiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQpAQCAtNzczLDMgKzc3OCwx
MzQgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRfZXhw
ZWN0YXRpb25zX2Zvcl9zdWJzZXQoZGV2aWNlX3R5cGUsIHRlc3RfY29sX3dpZHRoLCB0ZXN0c190
b19ydW5fYnlfZGV2aWNlW2RldmljZV90eXBlXSkKIAogICAgICAgICByZXR1cm4gMAorCisgICAg
ZGVmIHByaW50X3N1bW1hcnkoc2VsZiwgYXJncyk6CisgICAgICAgIGRldmljZV90eXBlX2xpc3Qg
PSBzZWxmLl9wb3J0LkRFRkFVTFRfREVWSUNFX1RZUEVTIG9yIFtzZWxmLl9wb3J0LkRFVklDRV9U
WVBFXQorICAgICAgICB0ZXN0X3N0YXRzID0ge30KKworICAgICAgICB0cnk6CisgICAgICAgICAg
ICBzZWxmLl9jb2xsZWN0X3Rlc3RzKGFyZ3MsIGRldmljZV90eXBlX2xpc3QpCisgICAgICAgIGV4
Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgIyBUaGlzIGlzIHJhaXNlZCBpZiAtLXRlc3QtbGlz
dCBkb2Vzbid0IGV4aXN0CisgICAgICAgICAgICByZXR1cm4gdGVzdF9ydW5fcmVzdWx0cy5SdW5E
ZXRhaWxzKGV4aXRfY29kZT0tMSkKKworICAgICAgICBmb3IgZGV2aWNlX3R5cGUsIGV4cGVjdGF0
aW9ucyBpbiBzZWxmLl9leHBlY3RhdGlvbnMuaXRlbXMoKToKKyAgICAgICAgICAgIHRlc3Rfc3Rh
dHNbZGV2aWNlX3R5cGVdID0geydfX3Jvb3RfXyc6IHsnY291bnQnOiAwLCAnc2tpcCc6IDAsICdw
YXNzJzogMCwgJ2ZsYWt5JzogMCwgJ2ZhaWwnOiAwLCAnaGFzX3Rlc3RzJzogRmFsc2V9fQorICAg
ICAgICAgICAgZGV2aWNlX3Rlc3Rfc3RhdHMgPSB0ZXN0X3N0YXRzW2RldmljZV90eXBlXQorCisg
ICAgICAgICAgICBtb2RlbCA9IGV4cGVjdGF0aW9ucy5tb2RlbCgpCisgICAgICAgICAgICB0ZXN0
c19za2lwcGVkID0gbW9kZWwuZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUodGVzdF9leHBlY3Rh
dGlvbnMuU0tJUCkKKyAgICAgICAgICAgIHRlc3RzX3Bhc3NpbmcgPSBtb2RlbC5nZXRfdGVzdHNf
d2l0aF9yZXN1bHRfdHlwZSh0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKQorICAgICAgICAgICAgdGVz
dHNfZmxha3kgPSBtb2RlbC5nZXRfdGVzdHNfd2l0aF9yZXN1bHRfdHlwZSh0ZXN0X2V4cGVjdGF0
aW9ucy5GTEFLWSkKKyAgICAgICAgICAgIHRlc3RzX21pc2NfZmFpbCA9IG1vZGVsLmdldF90ZXN0
c193aXRoX3Jlc3VsdF90eXBlKHRlc3RfZXhwZWN0YXRpb25zLkZBSUwpCisKKyAgICAgICAgICAg
IGRlZiBfaW5jcmVtZW50X3N0YXQoZGlybmFtZSwgdGVzdF9uYW1lLCB0ZXN0X2luX2RpcmVjdG9y
eSk6CisgICAgICAgICAgICAgICAgaWYgZGlybmFtZSBpbiBkZXZpY2VfdGVzdF9zdGF0czoKKyAg
ICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ2NvdW50J10gKz0g
MQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRldmljZV90ZXN0
X3N0YXRzW2Rpcm5hbWVdID0geydjb3VudCc6IDEsICdza2lwJzogMCwgJ3Bhc3MnOiAwLCAnZmxh
a3knOiAwLCAnZmFpbCc6IDAsICdoYXNfdGVzdHMnOiBGYWxzZX0KKworICAgICAgICAgICAgICAg
IGlmIHRlc3RfbmFtZSBpbiB0ZXN0c19za2lwcGVkOgorICAgICAgICAgICAgICAgICAgICBkZXZp
Y2VfdGVzdF9zdGF0c1tkaXJuYW1lXVsnc2tpcCddICs9IDEKKyAgICAgICAgICAgICAgICBpZiB0
ZXN0X25hbWUgaW4gdGVzdHNfcGFzc2luZzoKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rl
c3Rfc3RhdHNbZGlybmFtZV1bJ3Bhc3MnXSArPSAxCisgICAgICAgICAgICAgICAgaWYgdGVzdF9u
YW1lIGluIHRlc3RzX2ZsYWt5OgorICAgICAgICAgICAgICAgICAgICBkZXZpY2VfdGVzdF9zdGF0
c1tkaXJuYW1lXVsnZmxha3knXSArPSAxCisgICAgICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGlu
IHRlc3RzX21pc2NfZmFpbDoKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rfc3RhdHNb
ZGlybmFtZV1bJ2ZhaWwnXSArPSAxCisgICAgICAgICAgICAgICAgZGV2aWNlX3Rlc3Rfc3RhdHNb
ZGlybmFtZV1bJ2hhc190ZXN0cyddID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFtZV1bJ2hhc190
ZXN0cyddIG9yIHRlc3RfaW5fZGlyZWN0b3J5CisKKyAgICAgICAgICAgIGZvciB0ZXN0X25hbWUg
aW4gZXhwZWN0YXRpb25zLl9mdWxsX3Rlc3RfbGlzdDoKKyAgICAgICAgICAgICAgICBwYXRoID0g
dGVzdF9uYW1lCisgICAgICAgICAgICAgICAgdGVzdF9pbl9kaXJlY3RvcnkgPSBUcnVlCisgICAg
ICAgICAgICAgICAgd2hpbGUgcGF0aCAhPSAnJzoKKyAgICAgICAgICAgICAgICAgICAgcGF0aCA9
IG9zLnBhdGguZGlybmFtZShwYXRoKQorICAgICAgICAgICAgICAgICAgICBfaW5jcmVtZW50X3N0
YXQocGF0aCBvciAnX19yb290X18nLCB0ZXN0X25hbWUsIHRlc3RfaW5fZGlyZWN0b3J5KQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2luX2RpcmVjdG9yeSA9IEZhbHNlCisKKyAgICAgICAgICAg
IHByaW50KCcnKQorICAgICAgICAgICAgcHJpbnQoJ1N1bW1hcnkgb2YgdGVzdCBleHBlY3RhdGlv
bnMge31pbiBsYXlvdXQgdGVzdCBkaXJlY3RvcmllczonLmZvcm1hdCh1J2ZvciB7fSAnLmZvcm1h
dChkZXZpY2VfdHlwZSkgaWYgZGV2aWNlX3R5cGUgZWxzZSAnJykpCisgICAgICAgICAgICByb290
ID0gZGV2aWNlX3Rlc3Rfc3RhdHNbJ19fcm9vdF9fJ10KKyAgICAgICAgICAgIHByaW50KCcgICAg
e30gdG90YWwgdGVzdHMnLmZvcm1hdChyb290Wydjb3VudCddKSkKKyAgICAgICAgICAgIHByaW50
KCcgICAge30gcGFzcycuZm9ybWF0KHJvb3RbJ3Bhc3MnXSkpCisgICAgICAgICAgICBwcmludCgn
ICAgIHt9IGFyZSBza2lwcGVkJy5mb3JtYXQocm9vdFsnc2tpcCddKSkKKyAgICAgICAgICAgIHBy
aW50KCcgICAge30gYXJlIGZsYWt5Jy5mb3JtYXQocm9vdFsnZmxha3knXSkpCisgICAgICAgICAg
ICBwcmludCgnICAgIHt9IGZhaWwgZm9yIG90aGVyIHJlYXNvbnMnLmZvcm1hdChyb290WydmYWls
J10pKQorCisgICAgICAgICAgICBwcmludCgnJykKKyAgICAgICAgICAgIHByaW50KCdQZXIgZGly
ZWN0b3J5IHJlc3VsdHM6JykKKyAgICAgICAgICAgIHByaW50KCcoKiBtZWFucyB0aGVyZSBhcmUg
bm8gdGVzdHMgaW4gdGhhdCBzcGVjaWZpYyBkaXJlY3RvcnkpJykKKyAgICAgICAgICAgIHByaW50
KCcnKQorICAgICAgICAgICAgcm93X2Zvcm1hdCA9IHUnICAgIHswOjUwc317MTo+OGR9ezI6Pjhk
fXszOj44ZH17NDo+OGR9ezU6PjhkfScKKyAgICAgICAgICAgIHNyb3dfZm9ybWF0ID0gcm93X2Zv
cm1hdC5yZXBsYWNlKCdkJywgJ3MnKQorICAgICAgICAgICAgcHJpbnQoc3Jvd19mb3JtYXQuZm9y
bWF0KCdESVJFQ1RPUlknLCAnVE9UQUwnLCAnUEFTUycsICdTS0lQJywgJ0ZMQUtZJywgJ0ZBSUwn
KSkKKyAgICAgICAgICAgIHByaW50KHNyb3dfZm9ybWF0LmZvcm1hdCgnLS0tLS0tLS0tJywgJy0t
LS0tJywgJy0tLS0nLCAnLS0tLScsICctLS0tLScsICctLS0tJykpCisKKyAgICAgICAgICAgIGRl
ZiBfc2hvdWxkX2luY2x1ZGVfZGlyX2luX3JlcG9ydChkaXJuYW1lKToKKyAgICAgICAgICAgICAg
ICBudW1fZGlycyA9IGRpcm5hbWUuY291bnQoJy8nKQorICAgICAgICAgICAgICAgIGlmIG51bV9k
aXJzID4gMDoKKyAgICAgICAgICAgICAgICAgICAgaWYgbnVtX2RpcnMgPiAxOgorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgbnVtX2RpcnMgPiAyOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIG51bV9kaXJzID4gMzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBub3QgcmUubWF0Y2go
cideKGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMpLycsIGRpcm5hbWUpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsaWYgbm90IHJlLm1hdGNoKHInKGltcG9ydGVkfGh0dHB8cGxhdGZvcm0pLycsIGRp
cm5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICAgICAgICAgICAgICBlbGlmIG5vdCByZS5tYXRjaChyJ14oZmFzdHxwbGF0Zm9ybXxpbXBvcnRl
ZHxodHRwKS8nLCBkaXJuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGZvciBkaXJuYW1l
IGluIHNvcnRlZChkZXZpY2VfdGVzdF9zdGF0cy5rZXlzKCkpOgorICAgICAgICAgICAgICAgIGlm
IG5vdCBfc2hvdWxkX2luY2x1ZGVfZGlyX2luX3JlcG9ydChkaXJuYW1lKToKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAgIHRydW5jYXRlZF9kaXJuYW1lID0g
cmUuc3ViKHInXi4qKC57NDd9KSQnLCAnLi4uXGc8MT4nLCBkaXJuYW1lIGlmIGRldmljZV90ZXN0
X3N0YXRzW2Rpcm5hbWVdWydoYXNfdGVzdHMnXSBlbHNlICd7fSonLmZvcm1hdChkaXJuYW1lKSkK
KyAgICAgICAgICAgICAgICBjb3VudCA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVdWydjb3Vu
dCddCisgICAgICAgICAgICAgICAgcGFzc2luZyA9IGRldmljZV90ZXN0X3N0YXRzW2Rpcm5hbWVd
WydwYXNzJ10KKyAgICAgICAgICAgICAgICBza2lwID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGlybmFt
ZV1bJ3NraXAnXQorICAgICAgICAgICAgICAgIGZsYWt5ID0gZGV2aWNlX3Rlc3Rfc3RhdHNbZGly
bmFtZV1bJ2ZsYWt5J10KKyAgICAgICAgICAgICAgICBmYWlsID0gZGV2aWNlX3Rlc3Rfc3RhdHNb
ZGlybmFtZV1bJ2ZhaWwnXQorICAgICAgICAgICAgICAgIGlmIHBhc3NpbmcgPT0gY291bnQ6Cisg
ICAgICAgICAgICAgICAgICAgICMgRG9uJ3QgcHJpbnQgdGhpcyBsaW5lIGlmIGFuIGFuY2VzdG9y
IGRpcmVjdG9yeSBpcyBhbGwgcGFzcyBhbHNvCisgICAgICAgICAgICAgICAgICAgIGFuY2VzdG9y
X2Rpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZGlybmFtZSkKKyAgICAgICAgICAgICAgICAgICAg
d2hpbGUgYW5jZXN0b3JfZGlybmFtZSBhbmQgYW5jZXN0b3JfZGlybmFtZSBub3QgaW4gZGV2aWNl
X3Rlc3Rfc3RhdHM6CisgICAgICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcl9kaXJuYW1lID0g
b3MucGF0aC5kaXJuYW1lKGFuY2VzdG9yX2Rpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIGlm
IGFuY2VzdG9yX2Rpcm5hbWUgYW5kIGRldmljZV90ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVd
WydwYXNzJ10gPT0gZGV2aWNlX3Rlc3Rfc3RhdHNbYW5jZXN0b3JfZGlybmFtZV1bJ2NvdW50J106
CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBw
cmludChzcm93X2Zvcm1hdC5mb3JtYXQodHJ1bmNhdGVkX2Rpcm5hbWUsIHN0cihjb3VudCksIHUi
4paI4paIIFBBU1MiLCB1JyDilojilojilojilojilojilojilognLCB1J+KWiOKWiOKWiOKWiOKW
iOKWiOKWiOKWiCcsIHUn4paI4paI4paI4paI4paI4paI4paI4paIJykpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxpZiBza2lwID09IGNvdW50OgorICAg
ICAgICAgICAgICAgICAgICAjIERvbid0IHByaW50IHRoaXMgbGluZSBpZiBhbiBhbmNlc3RvciBk
aXJlY3RvcnkgaXMgYWxsIHNraXAgYWxzbworICAgICAgICAgICAgICAgICAgICBhbmNlc3Rvcl9k
aXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKGRpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHdo
aWxlIGFuY2VzdG9yX2Rpcm5hbWUgYW5kIGFuY2VzdG9yX2Rpcm5hbWUgbm90IGluIGRldmljZV90
ZXN0X3N0YXRzOgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jZXN0b3JfZGlybmFtZSA9IG9z
LnBhdGguZGlybmFtZShhbmNlc3Rvcl9kaXJuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBh
bmNlc3Rvcl9kaXJuYW1lIGFuZCBkZXZpY2VfdGVzdF9zdGF0c1thbmNlc3Rvcl9kaXJuYW1lXVsn
c2tpcCddID09IGRldmljZV90ZXN0X3N0YXRzW2FuY2VzdG9yX2Rpcm5hbWVdWydjb3VudCddOgor
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgcHJp
bnQoc3Jvd19mb3JtYXQuZm9ybWF0KHRydW5jYXRlZF9kaXJuYW1lLCBzdHIoY291bnQpLCB1J+KW
keKWkeKWkeKWkeKWkeKWkeKWkScsIHUi4paR4paR4paRIFNLSVAiLCB1JyDilpHilpHilpHilpHi
lpHilpHilpEnLCB1J+KWkeKWkeKWkeKWkeKWkeKWkeKWkeKWkScpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHByaW50KHJvd19mb3JtYXQuZm9ybWF0KHRy
dW5jYXRlZF9kaXJuYW1lLCBjb3VudCwgcGFzc2luZywgc2tpcCwgZmxha3ksIGZhaWwpKQorCisg
ICAgICAgIHdpdGggb3BlbignbGF5b3V0X3Rlc3RzLmNzdicsICd3JykgYXMgY3N2ZmlsZToKKyAg
ICAgICAgICAgIHdyaXRlciA9IGNzdi53cml0ZXIoY3N2ZmlsZSwgZGVsaW1pdGVyPScsJywgcXVv
dGluZz1jc3YuUVVPVEVfTUlOSU1BTCkKKworICAgICAgICAgICAgaGVhZGVyX3Jvd18xID0gWycn
XSAqIDIKKyAgICAgICAgICAgIGhlYWRlcl9yb3dfMiA9IFsiRGlyZWN0b3J5IiwgIlRvdGFsIl0K
KyAgICAgICAgICAgIGZvciBkZXZpY2VfdHlwZSBpbiBzb3J0ZWQoZGV2aWNlX3R5cGVfbGlzdCk6
CisgICAgICAgICAgICAgICAgaGVhZGVyX3Jvd18xLmFwcGVuZCgne317fScuZm9ybWF0KHNlbGYu
X3BvcnQubmFtZSgpLCAnLCB7fScuZm9ybWF0KGRldmljZV90eXBlKSBpZiBkZXZpY2VfdHlwZSBl
bHNlICcnKSkKKyAgICAgICAgICAgICAgICBoZWFkZXJfcm93XzEuZXh0ZW5kKFsnJ10gKiAzKQor
ICAgICAgICAgICAgICAgIGhlYWRlcl9yb3dfMi5leHRlbmQoWydQYXNzJywgJ1NraXAnLCAnRmxh
a3knLCAnRmFpbCddKQorICAgICAgICAgICAgd3JpdGVyLndyaXRlcm93KGhlYWRlcl9yb3dfMSkK
KyAgICAgICAgICAgIHdyaXRlci53cml0ZXJvdyhoZWFkZXJfcm93XzIpCisKKyAgICAgICAgICAg
IGFfZGV2aWNlX3Rlc3Rfc3RhdCA9IHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVfbGlzdFswXV0KKyAg
ICAgICAgICAgIGZvciBkaXJuYW1lIGluIHNvcnRlZChhX2RldmljZV90ZXN0X3N0YXQua2V5cygp
KToKKyAgICAgICAgICAgICAgICBpZiBub3QgX3Nob3VsZF9pbmNsdWRlX2Rpcl9pbl9yZXBvcnQo
ZGlybmFtZSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAg
cm93ID0gW2Rpcm5hbWUsIGFfZGV2aWNlX3Rlc3Rfc3RhdFtkaXJuYW1lXVsnY291bnQnXV0KKyAg
ICAgICAgICAgICAgICBmb3IgZGV2aWNlX3R5cGUgaW4gc29ydGVkKGRldmljZV90eXBlX2xpc3Qp
OgorICAgICAgICAgICAgICAgICAgICBzdGF0cyA9IHRlc3Rfc3RhdHNbZGV2aWNlX3R5cGVdW2Rp
cm5hbWVdCisgICAgICAgICAgICAgICAgICAgIHJvdy5leHRlbmQoW3N0YXRzWydwYXNzJ10sIHN0
YXRzWydza2lwJ10sIHN0YXRzWydmbGFreSddLCBzdGF0c1snZmFpbCddXSkKKyAgICAgICAgICAg
ICAgICB3cml0ZXIud3JpdGVyb3cocm93KQorCisgICAgICAgIHJldHVybiAwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>