<?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>163318</bug_id>
          
          <creation_ts>2016-10-11 22:15:36 -0700</creation_ts>
          <short_desc>Add an option to validate-committer-lists to retire inactive committers and reviewers</short_desc>
          <delta_ts>2018-02-01 10:30:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=115387</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=153591</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239178</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-11 22:15:36 -0700</bug_when>
    <thetext>Add an option to validate-committer-lists to retire inactive committers and reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239180</commentid>
    <comment_count>1</comment_count>
      <attachid>291332</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-11 22:23:04 -0700</bug_when>
    <thetext>Created attachment 291332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239181</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-11 22:23:56 -0700</bug_when>
    <thetext>Running --retire makes the following changes:

 45$ $ ./Tools/Scripts/validate-committer-lists -r
Finding inactive reviewers and committers (this may take a while)...

Making the following reviewers inactive:
Retiring reviewer: Tim Omernick
Retiring reviewer: Laszlo Gombos
Retiring reviewer: Holger Freyther
Retiring reviewer: Jochen Eisinger
Retiring reviewer: Chang Shu
Retiring reviewer: Alice Liu
Inactive reviewer committed, considered active: Jon Honeycutt
Retiring reviewer: Ojan Vafai
Retiring reviewer: Stephen Chenney
Retiring reviewer: Cameron Zwarich
Retiring reviewer: Kenneth Rohde Christiansen
Retiring reviewer: Steve Block
Retiring reviewer: Chris Rogers
Retiring reviewer: Dirk Pranke
Retiring reviewer: Pratik Solanki
Retiring reviewer: Pavel Feldman
Retiring reviewer: John Sullivan
Retiring reviewer: Xan Lopez
Retiring reviewer: Darin Fisher
Retiring reviewer: Philip Rogers
Retiring reviewer: Vicki Murley
Retiring reviewer: Ken Kocienda
Retiring reviewer: Dumitru Daniliuc
Retiring reviewer: Maciej Stachowiak
Retiring reviewer: Jian Li
Retiring reviewer: Mihai Parparita
Retiring reviewer: Nate Chapin
Retiring reviewer: Alexander Pavlov
Retiring reviewer: Noam Rosenthal
Retiring reviewer: Kenneth Russell
Retiring reviewer: Kevin Ollivier
Retiring reviewer: Mihnea Ovidenie
Retiring reviewer: George Staikos
Retiring reviewer: Chris Blumenberg
Retiring reviewer: Yury Semikhatsky
Retiring reviewer: Alexandru Chiculita
Retiring reviewer: Rob Buis
Retiring reviewer: Justin Garcia
Retiring reviewer: Allan Sandfeld Jensen
Retiring reviewer: Adrienne Walker
Retiring reviewer: Emil A Eklund
Retiring reviewer: Tor Arne Vestbø
Retiring reviewer: Kent Tamura
Retiring reviewer: Mark Rowe
Retiring reviewer: David Harrison
Retiring reviewer: Stephen White
Retiring reviewer: Kevin McCullough
Retiring reviewer: Jan Alonzo
Inactive reviewer committed, considered active: Sukolsak Sakshuwong
Retiring reviewer: Vsevolod Vlasov
Retiring reviewer: Caio Marcelo de Oliveira Filho
Retiring reviewer: James Robinson
Retiring reviewer: Yuta Kitamura
Retiring reviewer: Tony Gentilcore
Retiring reviewer: Chris Marrin
Retiring reviewer: Jocelyn Turcotte
Retiring reviewer: Kevin Decker
Retiring reviewer: Yong Li
Retiring reviewer: Andrei Bucur
Retiring reviewer: Adam Barth
Retiring reviewer: Richard Williamson
Retiring reviewer: Hajime Morrita
Retiring reviewer: Dirk Schulze
Retiring reviewer: Adele Peterson
Retiring reviewer: Adam Treat
Retiring reviewer: David Levin
Retiring reviewer: Elliott Sprehn
Retiring reviewer: Julien Chaffraix
Retiring reviewer: Shinichiro Hamaji
Retiring reviewer: Luiz Agostini
Retiring reviewer: Tony Chang
Retiring reviewer: Lars Knoll
Retiring reviewer: Nico Weber
Inactive reviewer committed, considered active: Nan Wang
Retiring reviewer: Kentaro Hara
Retiring reviewer: Alexis Menard
Retiring reviewer: Jeremy Orlow
Retiring reviewer: Alp Toker
Retiring reviewer: Simon Hausmann
Retiring reviewer: Mark Hahnenberg
Retiring reviewer: Eric Seidel
Retiring reviewer: Zack Rusin
Retiring reviewer: Chris Jerdonek
Retiring reviewer: Abhishek Arya
Retiring reviewer: Don Melton
Retiring reviewer: Ariya Hidayat
Retiring reviewer: Zoltan Horvath
Retiring reviewer: Bem Jones-Bey
Retiring reviewer: Steve Falkenburg
Retiring reviewer: Levi Weintraub
Retiring reviewer: Dimitri Glazkov
Retiring reviewer: Adam Roben
Retiring reviewer: Dmitry Titov
Retiring reviewer: Nikolas Zimmermann

Making the following committers inactive:
Retiring committer: Jae Hyun Park
Retiring committer: Simon Pena
Retiring committer: Anthony Ricaud
Retiring committer: Dana Jansens
Retiring committer: Pierre d&apos;Herbemont
Retiring committer: Andre Boule
Retiring committer: Zeno Albisser
Retiring committer: Satish Sampath
Retiring committer: Alexandre Elias
Retiring committer: Xianzhu Wang
Retiring committer: Dominic Mazzoni
Retiring committer: Dongwoo Joshua Im
Retiring committer: Ruth Fong
Retiring committer: Xiaomei Ji
Retiring committer: Michael Brüning
Retiring committer: Nima Ghanavatian
Retiring committer: Kiran Muppala
Retiring committer: Ion Rosca
Retiring committer: Mikhail Pozdnyakov
Retiring committer: Michael Nordman
Retiring committer: Collin Jackson
Retiring committer: Ben Wells
Retiring committer: Dominik Röttsches
Retiring committer: Pierre Rossi
Retiring committer: Igor Trindade Oliveira
Retiring committer: Mads Ager
Retiring committer: Anna Cavender
Retiring committer: Dongseong Hwang
Retiring committer: Kenji Imasaki
Retiring committer: Mary Wu
Retiring committer: Cary Clark
Retiring committer: Andrew Wellington
Retiring committer: Ademar de Souza Reis Jr
Retiring committer: Arko Saha
Retiring committer: Tibor Meszaros
Retiring committer: Devin Rousso
Retiring committer: Marcelo Lira
Retiring committer: Byungseon Shin
Retiring committer: Matt Rajca
Retiring committer: Leandro Gracia Gil
Retiring committer: Kaustubh Atrawalkar
Retiring committer: Jia Pu
Retiring committer: Ami Fischman
Retiring committer: Bear Travis
Retiring committer: Taiju Tsuiki
Retiring committer: Mikhail Naganov
Retiring committer: Charles Reis
Retiring committer: Joone Hur
Retiring committer: Shinya Kawanaka
Retiring committer: Kwang Yul Seo
Retiring committer: Dániel Bátyai
Retiring committer: Mihai Tica
Retiring committer: Brendan Long
Retiring committer: Victor Jaquez
Retiring committer: Helder Correia
Retiring committer: Michelangelo De Simone
Retiring committer: Tobias Reiss
Retiring committer: Jinwoo Song
Retiring committer: Denis Nomiyama
Retiring committer: Thomas Sepez
Retiring committer: Eric Roman
Retiring committer: Aaron Boodman
Retiring committer: Karen Grunberg
Retiring committer: Andrey Kosyakov
Retiring committer: Pierre-Olivier Latour
Retiring committer: Kim Grönholm
Retiring committer: Victor Wang
Retiring committer: Lauro Neto
Retiring committer: Alice Boxhall
Retiring committer: Tom Hudson
Retiring committer: Anton Muhin
Retiring committer: Drew Wilson
Retiring committer: Christian Dywan
Retiring committer: Kelly Norton
Retiring committer: Glenn Adams
Retiring committer: Benjamin Kalman
Retiring committer: Peter Varga
Retiring committer: Nat Duca
Retiring committer: Hugo Parente Lima
Retiring committer: Santosh Mahto
Retiring committer: David Grogan
Retiring committer: Gabor Loki
Retiring committer: Eugene Klyuchnikov
Retiring committer: Adam Langley
Retiring committer: Jesus Sanchez-Palencia
Retiring committer: Eli Fidler
Retiring committer: Chris Petersen
Retiring committer: Robert Hogan
Retiring committer: Kent Hansen
Retiring committer: Hin-Chung Lam
Retiring committer: Thiago de Barros Lacerda
Retiring committer: Adam Kallai
Retiring committer: Peter Molnar
Retiring committer: Krzysztof Kowalczyk
Retiring committer: Kimmo Kinnunen
Retiring committer: Mahesh Kulkarni
Retiring committer: Daniel Cheng
Retiring committer: Kihong Kwon
Retiring committer: Thiago Marcos P. Santos
Retiring committer: Shawn Singh
Retiring committer: Aaron Colwell
Retiring committer: Sadrul Habib Chowdhury
Retiring committer: Naoki Takano
Retiring committer: Cosmin Truta
Retiring committer: Alexander Færøy
Retiring committer: Chris Guillory
Retiring committer: Matt Lilek
Retiring committer: Andres Gomez
Retiring committer: Ian Vollick
Retiring committer: Janos Badics
Retiring committer: Justin Novosad
Inactive committer reviewed, considered active: Zoltan Herczeg
Retiring committer: Erik Arvidsson
Retiring committer: Luciano Wolf
Retiring committer: John Abd-El-Malek
Retiring committer: Pam Greene
Retiring committer: David Smith
Retiring committer: Ilya Sherman
Retiring committer: Maxime Britto
Retiring committer: Amruth Raj
Retiring committer: Dan Winship
Retiring committer: Mark Pilgrim
Retiring committer: Joshua Bell
Retiring committer: Marcus Voltis Bulach
Retiring committer: Samuel White
Retiring committer: John Knottenbelt
Retiring committer: Dmitry Gorbik
Retiring committer: Julie Parent
Retiring committer: Roland Steiner
Retiring committer: Jay Civelli
Retiring committer: Mike Lawther
Retiring committer: Evan Stade
Retiring committer: Zsolt Borbely
Retiring committer: Terry Anderson
Retiring committer: Cris Neckar
Retiring committer: Roland Takacs
Retiring committer: Diego Pino Garcia
Retiring committer: Evan Martin
Retiring committer: Jens Alfke
Retiring committer: Seokju Kwon
Retiring committer: Carol Szabo
Retiring committer: Dinu Jacob
Retiring committer: Nick Diego Yamane
Retiring committer: Gabor Rapcsanyi
Retiring committer: Vineet Chaudhary
Retiring committer: Kangil Han
Retiring committer: Trey Matteson
Retiring committer: Graham Dennis
Retiring committer: Jason Liu
Retiring committer: Elliot Poger
Retiring committer: Hans Wennborg
Retiring committer: Rafael Brandao
Retiring committer: Pravin D
Retiring committer: Noel Gordon
Retiring committer: Dave Barton
Retiring committer: Viatcheslav Ostapenko
Retiring committer: Bruno de Oliveira Abinader
Retiring committer: Szilard Ledan-Muntean
Retiring committer: Dominic Cooney
Retiring committer: Girish Ramakrishnan
Retiring committer: Rik Cabanier
Retiring committer: Jacky Jiang
Retiring committer: Vivek Galatage
Retiring committer: Ilya Tikhonovsky
Retiring committer: Jenn Braithwaite
Retiring committer: Shivakumar J M
Retiring committer: Kristof Kosztyo
Retiring committer: Kinuko Yasuda
Retiring committer: Antoine Labour
Retiring committer: Raymond Toy
Retiring committer: Vitaly Repeshko
Retiring committer: Fady Samuel
Retiring committer: Takashi Toyoshima
Retiring committer: Tom Zakrajsek
Retiring committer: Alec Flett
Retiring committer: Roger Fong
Retiring committer: Jarred Nicholls
Retiring committer: Balazs Kelemen
Retiring committer: William Siegrist
Retiring committer: Mike Thole
Retiring committer: Takashi Sakamoto
Retiring committer: Li Yin
Retiring committer: Diego Gonzalez
Retiring committer: Gurpreet Kaur
Retiring committer: Feng Qian
Retiring committer: László Langó
Retiring committer: Bill Budge
Retiring committer: Martin Hock
Retiring committer: Ivan Ivan Krstić
Inactive committer reviewed, considered active: Stephanie Lewis
Retiring committer: Tamas Gergely
Retiring committer: Anton D&apos;Auria
Retiring committer: Jeffrey Pfau
Retiring committer: Yuzo Fujishima
Retiring committer: Matt Perry
Retiring committer: Yuqiang Xian
Retiring committer: Sergio Correia
Retiring committer: Jeremy Moskovich
Retiring committer: Jake Nielsen
Retiring committer: Radu Stavila
Retiring committer: Gregg Tavares
Retiring committer: Dmitry Lomov
Retiring committer: Kenichi Ishibashi
Retiring committer: Zoltan Arvai
Retiring committer: Nayan Kumar K
Retiring committer: Tommy Widenflycht
Retiring committer: Lucas De Marchi
Retiring committer: Albert J. Wong
Retiring committer: Victor Carbune
Retiring committer: Ben Murdoch
Retiring committer: Charles Wei
Retiring committer: Dave Tharp
Retiring committer: Jakub Wieczorek
Retiring committer: Nadav Rotem
Retiring committer: Alexander Kellett
Retiring committer: Matthew Mirman
Retiring committer: Kalyan Kondapally
Retiring committer: Pablo Flouret
Retiring committer: Mike Reed
Retiring committer: Patrick Gansterer
Retiring committer: Jakob Petsovits
Retiring committer: Tristan O&apos;Tierney
Retiring committer: Matt Falkenhagen
Retiring committer: Yaar Schnitman
Retiring committer: Andy Wingo
Retiring committer: Andrew Scherkus
Retiring committer: Sudarsana Nagineni
Retiring committer: Steve Lacey
Retiring committer: Alok Priyadarshi
Retiring committer: Mike Fenton
Retiring committer: Michał Pakuła vel Rutka
Retiring committer: Andras Becsi
Retiring committer: Justin Schuh
Retiring committer: Chris Evans
Retiring committer: Eva Balazsfalvi
Retiring committer: Matt Delaney
Retiring committer: Cameron McCormack
Retiring committer: Rafael Weinstein
Retiring committer: Andrey Adaykin
Retiring committer: Hironori Bono
Retiring committer: Vangelis Kokkevis
Retiring committer: Yi Shen
Retiring committer: Andrzej Badowski
Retiring committer: John Gregg
Retiring committer: Hans Muller
Retiring committer: Greg Bolsinga
Retiring committer: Basile Clement
Retiring committer: Anton Obzhirov
Retiring committer: Keishi Hattori
Retiring committer: Arvid Nilsson
Retiring committer: Joe Thomas
Retiring committer: Brian Holt
Retiring committer: Robert Kroeger
Retiring committer: Xingnan Wang
Retiring committer: Peter Gal
Retiring committer: Xiaohai Wei
Retiring committer: Joost de Valk
Retiring committer: Andrew Lo
Retiring committer: Peter Beverloo
Retiring committer: Siddharth Mathur
Retiring committer: Konrad Piascik
Retiring committer: Jono Wells
Retiring committer: Raphael Kubo da Costa
Retiring committer: James Kozianski
Retiring committer: Ravi Kasibhatla
Retiring committer: Laszlo Vidacs
Retiring committer: Jungshik Shin
Retiring committer: Hyowon Kim
Retiring committer: Benjamin Otte
Retiring committer: Andrei Popescu
Retiring committer: Dhi Aurrahman
Retiring committer: Sami Kyöstilä
Retiring committer: Ken Buchanan
Retiring committer: Silvia Pfeiffer
Retiring committer: Luke Macpherson
Retiring committer: Arpita Bahuguna
Retiring committer: James Hawkins
Retiring committer: Leo Yang
Retiring committer: Pavel Podivilov
Retiring committer: James Simonsen
Retiring committer: Mihai Maerean
Retiring committer: Arno Renevier
Retiring committer: Florin Malita
Retiring committer: Qi Zhang
Retiring committer: Jonathan Dong
Retiring committer: Yael Aharon
Retiring committer: Eric Uhrhane
Retiring committer: Fumitoshi Ukai
Retiring committer: Mike West
Retiring committer: Brett Wilson
Retiring committer: Peter Kasting
Retiring committer: Yoshifumi Inoue
Retiring committer: Michael Pruett
Retiring committer: Zhenyao Mo
Retiring committer: Vincent Scheib
Retiring committer: Victoria Kirst
Retiring committer: Renata Hodovan
Retiring committer: Max Vujovic
Retiring committer: David Farler
Retiring committer: W. James MacLean
Retiring committer: Leandro Pereira
Retiring committer: Hayato Ito
Retiring committer: Matt Daiter
Retiring committer: Gavin Peters
Retiring committer: Benjamin C Meyer
Retiring committer: Byungwoo Lee
Retiring committer: Johnny Ding
Retiring committer: Adam Klein
Retiring committer: David Michael Barr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239182</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-11 22:25:19 -0700</bug_when>
    <thetext>I decided to mark committers as inactive so they don&apos;t show up on https://webkit.org/team/

We still have some inactive Contributors (neither committers nor reviewers) who are still on that page. Maybe we need to look for the last bugzilla activity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239215</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-12 00:35:46 -0700</bug_when>
    <thetext>&gt; Making the following committers inactive:
&gt; ...
&gt; Retiring committer: Devin Rousso

This does not make sense. Devin has commits as recently as this week (10/6/2016).
&lt;https://trac.webkit.org/search?q=devin+rousso&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239242</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 05:19:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Making the following committers inactive:
&gt; &gt; ...
&gt; &gt; Retiring committer: Devin Rousso
&gt; 
&gt; This does not make sense. Devin has commits as recently as this week
&gt; (10/6/2016).
&gt; &lt;https://trac.webkit.org/search?q=devin+rousso&gt;

It seems the patches landed via commit queue aren&apos;t counted by this 
script. Devin&apos;s last manually commited change was more than a year:
https://trac.webkit.org/changeset/188733</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239275</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-12 07:42:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Making the following committers inactive:
&gt; &gt; &gt; ...
&gt; &gt; &gt; Retiring committer: Devin Rousso
&gt; &gt; 
&gt; &gt; This does not make sense. Devin has commits as recently as this week
&gt; &gt; (10/6/2016).
&gt; &gt; &lt;https://trac.webkit.org/search?q=devin+rousso&gt;
&gt; 
&gt; It seems the patches landed via commit queue aren&apos;t counted by this 
&gt; script. Devin&apos;s last manually commited change was more than a year:
&gt; https://trac.webkit.org/changeset/188733

We encourage people to use the commit queue. Isn&apos;t it a problem if the script does not account for patches committed via CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239288</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-12 08:38:37 -0700</bug_when>
    <thetext>The script uses the git &lt;author&gt; of a commit, which CQ correctly sets to the patch author in most cases, but in some cases commit-queue shows up as patch author:

commit cd903fc8f8f6742ed3d45e6e34d72f8767a38aca
Author: commit-queue@webkit.org &lt;commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc&gt;
Date:   Thu Oct 6 23:11:01 2016 +0000

Maybe this is when the author doesn&apos;t have commit privs yet?

I can try to fix the script to deal with that case by grepping for &quot;Patch by&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239291</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-12 08:46:19 -0700</bug_when>
    <thetext>Actually it looks like commit-queue@webkit.org is both &lt;author&gt; and &lt;committer&gt; in git, since svn isn&apos;t able to distinguish both (unless we do something like https://github.com/Bioconductor/BiocGithubHelp/wiki/Preserve-git-committer-in-dcommit). This is unfortunate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239292</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 08:54:25 -0700</bug_when>
    <thetext>Author is commit-queue@webkit.org only if the original author&apos;s
e-mail address doesn&apos;t have valid commit rights for the SVN server.

If you have commit rigths, an SVN post commit hook fixes the author field.
But it can&apos;t do it if the committer use different mail address in the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239306</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-12 09:21:18 -0700</bug_when>
    <thetext>suggestnominations.py already has a logic to parse &quot;Patch by&quot; 
line first and then the author field. We could reuse that code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239313</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-12 09:26:58 -0700</bug_when>
    <thetext>Thanks, I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240101</commentid>
    <comment_count>12</comment_count>
      <attachid>291566</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-13 22:11:38 -0700</bug_when>
    <thetext>Created attachment 291566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240102</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-13 22:12:21 -0700</bug_when>
    <thetext>Output from this patch (which fixes the commit-queue issue):

Making the following reviewers inactive:
Retiring reviewer: Tim Omernick
Retiring reviewer: Laszlo Gombos
Retiring reviewer: Holger Freyther
Retiring reviewer: Jochen Eisinger
Retiring reviewer: Chang Shu
Retiring reviewer: Alice Liu
Inactive reviewer committed, considered active: Jon Honeycutt
Retiring reviewer: Ojan Vafai
Retiring reviewer: Stephen Chenney
Retiring reviewer: Cameron Zwarich
Retiring reviewer: Kenneth Rohde Christiansen
Retiring reviewer: Steve Block
Retiring reviewer: Chris Rogers
Retiring reviewer: Dirk Pranke
Retiring reviewer: Pratik Solanki
Retiring reviewer: Pavel Feldman
Retiring reviewer: John Sullivan
Inactive reviewer committed, considered active: Xan Lopez
Retiring reviewer: Darin Fisher
Inactive reviewer committed, considered active: Philip Rogers
Retiring reviewer: Vicki Murley
Retiring reviewer: Ken Kocienda
Retiring reviewer: Dumitru Daniliuc
Retiring reviewer: Maciej Stachowiak
Retiring reviewer: Jian Li
Retiring reviewer: Mihai Parparita
Retiring reviewer: Nate Chapin
Retiring reviewer: Alexander Pavlov
Retiring reviewer: Noam Rosenthal
Retiring reviewer: Kenneth Russell
Retiring reviewer: Kevin Ollivier
Retiring reviewer: Mihnea Ovidenie
Retiring reviewer: George Staikos
Retiring reviewer: Chris Blumenberg
Retiring reviewer: Yury Semikhatsky
Retiring reviewer: Alexandru Chiculita
Retiring reviewer: Rob Buis
Retiring reviewer: Justin Garcia
Retiring reviewer: Allan Sandfeld Jensen
Retiring reviewer: Adrienne Walker
Retiring reviewer: Emil A Eklund
Retiring reviewer: Tor Arne Vestbø
Retiring reviewer: Kent Tamura
Retiring reviewer: Mark Rowe
Retiring reviewer: David Harrison
Retiring reviewer: Stephen White
Retiring reviewer: Kevin McCullough
Retiring reviewer: Jan Alonzo
Inactive reviewer committed, considered active: Sukolsak Sakshuwong
Retiring reviewer: Vsevolod Vlasov
Retiring reviewer: Caio Marcelo de Oliveira Filho
Retiring reviewer: James Robinson
Retiring reviewer: Yuta Kitamura
Retiring reviewer: Tony Gentilcore
Retiring reviewer: Chris Marrin
Retiring reviewer: Jocelyn Turcotte
Retiring reviewer: Kevin Decker
Retiring reviewer: Yong Li
Retiring reviewer: Andrei Bucur
Retiring reviewer: Adam Barth
Retiring reviewer: Richard Williamson
Retiring reviewer: Hajime Morrita
Retiring reviewer: Dirk Schulze
Retiring reviewer: Adele Peterson
Retiring reviewer: Adam Treat
Retiring reviewer: David Levin
Retiring reviewer: Elliott Sprehn
Retiring reviewer: Julien Chaffraix
Retiring reviewer: Shinichiro Hamaji
Retiring reviewer: Luiz Agostini
Retiring reviewer: Tony Chang
Retiring reviewer: Lars Knoll
Retiring reviewer: Nico Weber
Inactive reviewer committed, considered active: Nan Wang
Retiring reviewer: Kentaro Hara
Retiring reviewer: Alexis Menard
Retiring reviewer: Jeremy Orlow
Retiring reviewer: Alp Toker
Retiring reviewer: Simon Hausmann
Retiring reviewer: Mark Hahnenberg
Retiring reviewer: Eric Seidel
Retiring reviewer: Zack Rusin
Retiring reviewer: Chris Jerdonek
Retiring reviewer: Abhishek Arya
Retiring reviewer: Don Melton
Retiring reviewer: Ariya Hidayat
Retiring reviewer: Zoltan Horvath
Retiring reviewer: Bem Jones-Bey
Retiring reviewer: Steve Falkenburg
Retiring reviewer: Levi Weintraub
Retiring reviewer: Dimitri Glazkov
Retiring reviewer: Adam Roben
Retiring reviewer: Dmitry Titov
Retiring reviewer: Nikolas Zimmermann

Making the following committers inactive:
Retiring committer: Viatcheslav Ostapenko
Retiring committer: Jae Hyun Park
Retiring committer: Simon Pena
Retiring committer: Anthony Ricaud
Retiring committer: Dana Jansens
Retiring committer: Pierre d&apos;Herbemont
Retiring committer: Andre Boule
Retiring committer: Zeno Albisser
Retiring committer: Satish Sampath
Retiring committer: Alexandre Elias
Retiring committer: Xianzhu Wang
Retiring committer: Dominic Mazzoni
Retiring committer: Dongwoo Joshua Im
Retiring committer: Tristan O&apos;Tierney
Retiring committer: Ruth Fong
Retiring committer: Xiaomei Ji
Retiring committer: Michael Brüning
Retiring committer: Kiran Muppala
Retiring committer: Ion Rosca
Retiring committer: Mikhail Pozdnyakov
Retiring committer: Girish Ramakrishnan
Retiring committer: Collin Jackson
Retiring committer: Ben Wells
Retiring committer: Dominik Röttsches
Retiring committer: Pierre Rossi
Retiring committer: Nick Diego Yamane
Retiring committer: Igor Trindade Oliveira
Retiring committer: Mads Ager
Retiring committer: Dongseong Hwang
Retiring committer: Kenji Imasaki
Retiring committer: Mary Wu
Retiring committer: Cary Clark
Retiring committer: Andrew Wellington
Retiring committer: Jia Pu
Retiring committer: Ademar de Souza Reis Jr
Retiring committer: Arko Saha
Retiring committer: Tibor Meszaros
Retiring committer: Marcelo Lira
Retiring committer: Byungseon Shin
Retiring committer: Matt Rajca
Retiring committer: Leandro Gracia Gil
Retiring committer: Kaustubh Atrawalkar
Retiring committer: Ami Fischman
Retiring committer: Bear Travis
Retiring committer: Taiju Tsuiki
Retiring committer: Mikhail Naganov
Retiring committer: Charles Reis
Retiring committer: Joone Hur
Retiring committer: Shinya Kawanaka
Retiring committer: Kwang Yul Seo
Retiring committer: Dániel Bátyai
Retiring committer: Mihai Tica
Retiring committer: Brendan Long
Retiring committer: Victor Jaquez
Retiring committer: Helder Correia
Retiring committer: Michelangelo De Simone
Retiring committer: Tobias Reiss
Retiring committer: Andrew Scherkus
Retiring committer: Denis Nomiyama
Retiring committer: Vitaly Repeshko
Retiring committer: Eric Roman
Retiring committer: Aaron Boodman
Retiring committer: Karen Grunberg
Retiring committer: Andrey Kosyakov
Retiring committer: Pierre-Olivier Latour
Retiring committer: Kim Grönholm
Retiring committer: Victor Wang
Retiring committer: Rafael Antognolli
Retiring committer: Lauro Neto
Retiring committer: Alice Boxhall
Retiring committer: Tom Hudson
Retiring committer: Tamas Gergely
Retiring committer: Anton Muhin
Retiring committer: Drew Wilson
Retiring committer: Maxime Simon
Retiring committer: Thomas Sepez
Retiring committer: Christian Dywan
Retiring committer: Kelly Norton
Retiring committer: Glenn Adams
Retiring committer: Benjamin Kalman
Retiring committer: Peter Varga
Retiring committer: Nat Duca
Retiring committer: Hugo Parente Lima
Retiring committer: Santosh Mahto
Retiring committer: Maxime Britto
Retiring committer: Gabor Loki
Retiring committer: Eugene Klyuchnikov
Retiring committer: Tom Zakrajsek
Retiring committer: Adam Langley
Retiring committer: Jesus Sanchez-Palencia
Retiring committer: Eli Fidler
Retiring committer: Chris Petersen
Retiring committer: Kent Hansen
Retiring committer: Hin-Chung Lam
Retiring committer: Ken Buchanan
Retiring committer: Adam Kallai
Retiring committer: Zsolt Borbely
Retiring committer: Peter Molnar
Retiring committer: Krzysztof Kowalczyk
Retiring committer: Alok Priyadarshi
Retiring committer: Mahesh Kulkarni
Retiring committer: Daniel Cheng
Retiring committer: Kihong Kwon
Retiring committer: Nima Ghanavatian
Retiring committer: Thiago Marcos P. Santos
Retiring committer: Shawn Singh
Retiring committer: Hyowon Kim
Retiring committer: Aaron Colwell
Retiring committer: Sadrul Habib Chowdhury
Retiring committer: Naoki Takano
Retiring committer: Cosmin Truta
Retiring committer: Alexander Færøy
Retiring committer: Chris Guillory
Retiring committer: Matt Lilek
Retiring committer: Andres Gomez
Retiring committer: Ian Vollick
Retiring committer: Janos Badics
Retiring committer: Justin Novosad
Retiring committer: Michael Nordman
Inactive committer reviewed, considered active: Zoltan Herczeg
Retiring committer: Erik Arvidsson
Retiring committer: Luciano Wolf
Retiring committer: John Abd-El-Malek
Retiring committer: Pam Greene
Retiring committer: David Smith
Retiring committer: Ilya Sherman
Retiring committer: David Grogan
Retiring committer: Amruth Raj
Retiring committer: William Siegrist
Retiring committer: Dan Winship
Retiring committer: Mark Pilgrim
Retiring committer: Mike Thole
Retiring committer: Joshua Bell
Retiring committer: Marcus Voltis Bulach
Retiring committer: Samuel White
Retiring committer: John Knottenbelt
Retiring committer: Dmitry Gorbik
Retiring committer: Julie Parent
Retiring committer: Roland Steiner
Retiring committer: Takashi Sakamoto
Retiring committer: Jay Civelli
Retiring committer: Thiago de Barros Lacerda
Retiring committer: Mike Lawther
Retiring committer: Evan Stade
Retiring committer: Terry Anderson
Retiring committer: Cris Neckar
Retiring committer: Roland Takacs
Retiring committer: Diego Pino Garcia
Retiring committer: Evan Martin
Retiring committer: Jens Alfke
Retiring committer: Seokju Kwon
Retiring committer: Carol Szabo
Retiring committer: Dinu Jacob
Retiring committer: Gabor Rapcsanyi
Retiring committer: Vineet Chaudhary
Retiring committer: Kangil Han
Retiring committer: Graham Dennis
Retiring committer: Jason Liu
Retiring committer: Elliot Poger
Retiring committer: Jakob Petsovits
Retiring committer: Hans Wennborg
Retiring committer: Rafael Brandao
Retiring committer: Rafael Weinstein
Retiring committer: Pravin D
Retiring committer: Noel Gordon
Retiring committer: Dave Barton
Retiring committer: Bruno de Oliveira Abinader
Retiring committer: Szilard Ledan-Muntean
Retiring committer: Dominic Cooney
Retiring committer: Andrzej Badowski
Retiring committer: Rik Cabanier
Retiring committer: Jacky Jiang
Retiring committer: Vivek Galatage
Retiring committer: Ilya Tikhonovsky
Retiring committer: Jenn Braithwaite
Retiring committer: Shivakumar J M
Retiring committer: Kristof Kosztyo
Retiring committer: Kinuko Yasuda
Retiring committer: Antoine Labour
Retiring committer: Raymond Toy
Retiring committer: Fady Samuel
Retiring committer: Takashi Toyoshima
Retiring committer: Alec Flett
Retiring committer: Roger Fong
Retiring committer: Jarred Nicholls
Retiring committer: Balazs Kelemen
Retiring committer: Li Yin
Retiring committer: Diego Gonzalez
Retiring committer: Gurpreet Kaur
Retiring committer: Feng Qian
Retiring committer: László Langó
Retiring committer: Bill Budge
Retiring committer: Martin Hock
Retiring committer: Ivan Ivan Krstić
Inactive committer reviewed, considered active: Stephanie Lewis
Retiring committer: Anton D&apos;Auria
Retiring committer: Jeffrey Pfau
Retiring committer: Yuzo Fujishima
Retiring committer: Matt Perry
Retiring committer: Yuqiang Xian
Retiring committer: Sergio Correia
Retiring committer: Jeremy Moskovich
Retiring committer: Jake Nielsen
Retiring committer: Radu Stavila
Retiring committer: Gregg Tavares
Retiring committer: Dmitry Lomov
Retiring committer: Kenichi Ishibashi
Retiring committer: Zoltan Arvai
Retiring committer: Tommy Widenflycht
Retiring committer: Lucas De Marchi
Retiring committer: Albert J. Wong
Retiring committer: Victor Carbune
Retiring committer: Ben Murdoch
Retiring committer: Charles Wei
Retiring committer: Michael Pruett
Retiring committer: Dave Tharp
Retiring committer: Jakub Wieczorek
Retiring committer: Nadav Rotem
Retiring committer: Alexander Kellett
Retiring committer: Matthew Mirman
Retiring committer: Kalyan Kondapally
Retiring committer: Pablo Flouret
Retiring committer: Mike Reed
Retiring committer: Patrick Gansterer
Retiring committer: Sudarsana Nagineni
Retiring committer: Matt Falkenhagen
Retiring committer: Yaar Schnitman
Retiring committer: Andy Wingo
Retiring committer: Jinwoo Song
Retiring committer: Anna Cavender
Retiring committer: Steve Lacey
Retiring committer: Kimmo Kinnunen
Retiring committer: Mike Fenton
Retiring committer: Michał Pakuła vel Rutka
Retiring committer: Andras Becsi
Retiring committer: Justin Schuh
Retiring committer: Chris Evans
Retiring committer: Eva Balazsfalvi
Retiring committer: Dhi Aurrahman
Retiring committer: Matt Delaney
Retiring committer: Mike Belshe
Retiring committer: Cameron McCormack
Retiring committer: Andrey Adaykin
Retiring committer: Hironori Bono
Retiring committer: Vangelis Kokkevis
Retiring committer: Yi Shen
Retiring committer: John Gregg
Retiring committer: Nayan Kumar K
Retiring committer: Hans Muller
Retiring committer: Greg Bolsinga
Retiring committer: Basile Clement
Retiring committer: Anton Obzhirov
Retiring committer: Keishi Hattori
Retiring committer: Arvid Nilsson
Retiring committer: Trey Matteson
Retiring committer: Joe Thomas
Retiring committer: Brian Holt
Retiring committer: Raphael Kubo da Costa
Retiring committer: Robert Kroeger
Retiring committer: Xingnan Wang
Retiring committer: Scott Violet
Retiring committer: Xiaohai Wei
Retiring committer: Joost de Valk
Retiring committer: Andrew Lo
Retiring committer: Peter Beverloo
Retiring committer: Robert Hogan
Retiring committer: Siddharth Mathur
Retiring committer: Konrad Piascik
Retiring committer: Jono Wells
Retiring committer: James Kozianski
Retiring committer: Ravi Kasibhatla
Retiring committer: Laszlo Vidacs
Retiring committer: Jungshik Shin
Retiring committer: Benjamin Otte
Retiring committer: Andrei Popescu
Retiring committer: Sami Kyöstilä
Retiring committer: Silvia Pfeiffer
Retiring committer: Luke Macpherson
Retiring committer: Arpita Bahuguna
Retiring committer: James Hawkins
Retiring committer: Leo Yang
Retiring committer: Pavel Podivilov
Retiring committer: James Simonsen
Retiring committer: Mihai Maerean
Retiring committer: Arno Renevier
Retiring committer: Peter Gal
Retiring committer: Florin Malita
Retiring committer: Qi Zhang
Retiring committer: Jonathan Dong
Retiring committer: Yael Aharon
Retiring committer: Eric Uhrhane
Retiring committer: Fumitoshi Ukai
Retiring committer: Mike West
Retiring committer: Brett Wilson
Retiring committer: Peter Kasting
Retiring committer: Yoshifumi Inoue
Retiring committer: Zhenyao Mo
Retiring committer: Vincent Scheib
Retiring committer: Victoria Kirst
Retiring committer: Renata Hodovan
Retiring committer: Max Vujovic
Retiring committer: David Farler
Retiring committer: W. James MacLean
Retiring committer: Leandro Pereira
Retiring committer: Hayato Ito
Retiring committer: Matt Daiter
Retiring committer: Gavin Peters
Retiring committer: Benjamin C Meyer
Retiring committer: Byungwoo Lee
Retiring committer: Johnny Ding
Retiring committer: Adam Klein
Retiring committer: David Michael Barr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240445</commentid>
    <comment_count>14</comment_count>
      <attachid>291566</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-10-14 15:53:39 -0700</bug_when>
    <thetext>Comment on attachment 291566
Patch

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

This patch alternates between using single and double quotes for string literals. We should pick one style and be consistent.

&gt; Tools/Scripts/validate-committer-lists:169
&gt; +    # FIXME: this function fails to find authors of commit-queue patches.

Nit: this =&gt; This</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395357</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-01-31 23:25:31 -0800</bug_when>
    <thetext>What is the status of this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395543</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-02-01 10:30:35 -0800</bug_when>
    <thetext>Idle. Feel free to take it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395544</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-02-01 10:30:54 -0800</bug_when>
    <thetext>Don&apos;t recall why I didn&apos;t land this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291332</attachid>
            <date>2016-10-11 22:23:04 -0700</date>
            <delta_ts>2016-10-13 22:11:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163318-20161011221941.patch</filename>
            <type>text/plain</type>
            <size>14554</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MTM4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjI2NzgyYTIxZjdiZTg5ZDM4Zjg5N2EzMjgzN2RhOWQ2
MjQzMjZiYy4uNGI3YWE3ZDVmN2YxNzBjNjQzMWNhOGM4ZDY2ODcxODQ2NzAwNjI0MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
IEBACisyMDE2LTEwLTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBvcHRpb24gdG8gdmFsaWRhdGUtY29tbWl0dGVyLWxpc3RzIHRvIHJl
dGlyZSBpbmFjdGl2ZSBjb21taXR0ZXJzIGFuZCByZXZpZXdlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzMxOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIHZhbGlkYXRlLWNvbW1p
dHRlci1saXN0cyAtLXJldGlyZSwgd2hpY2ggbG9va3MgZm9yIHJldmlld2VyIGFuZCBjb21taXR0
ZXJzIHdobworICAgICAgICBoYXZlIG5vdCBiZWVuIGFjdGl2ZSBpbiB0aGUgcGFzdCB5ZWFyLCBh
bmQgbW92ZXMgdGhlbSB0byAiaW5hY3RpdmUtcmV2aWV3ZXIiIG9yCisgICAgICAgICJpbmFjdGl2
ZS1jb21taXR0ZXIiIHN0YXR1cywgdGhlbiB1cGRhdGVzIGNvbnRyaWJ1dG9ycy5qc29uLgorICAg
ICAgICAKKyAgICAgICAgSW1wcm92ZSB0aGUgbG9naWMgdG8gZmluZCBpbmFjdGl2ZSBjb21taXR0
ZXJzIChoYW5kbGluZyBlbWFpbCBhZGRyZXNzIGNoYW5nZXMpLgorCisgICAgICAgICogU2NyaXB0
cy92YWxpZGF0ZS1jb21taXR0ZXItbGlzdHM6CisgICAgICAgIChDb21taXR0ZXJMaXN0RnJvbUdp
dC5fcHJpbnRfdGhyZWVfY29sdW1uX3Jvdyk6IFVzZSB7fSBmb3JtYXR0aW5nIHdoaWNoIGJldHRl
ciBzdXBwb3J0cworICAgICAgICBVVEYtOCBvdXRwdXQuCisgICAgICAgIChDb21taXR0ZXJMaXN0
RnJvbUdpdC5fY29tbWl0dGVyc19sYXN0X2NvbW1pdHMpOiBQcmV2aW91c2x5LCB0aGlzIGZ1bmN0
aW9uIHJldHVybmVkCisgICAgICAgIChlbWFpbCwgbGFzdF9jb21taXQpLCBidXQgdXNlIG9mIGVt
YWlscyB3YXMgcHJvYmxlbWF0aWMgYmVjYXVzZSBhIGNvbnRyaWJ1dG9yIG1pZ2h0CisgICAgICAg
IHN3aXRjaCBlbWFpbCBhZGRyZXNzZXMsIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1ha2Ugc3VjaCBh
IGNvbnRyaWJ1dG9yIGluYWN0aXZlIGJ5CisgICAgICAgIG1pc3Rha2UuIEluc3RlYWQsIG1hcCBl
bWFpbHMgdG8gQ29udHJpYnV0b3JzLCBhbmQgcmV0dXJuIGEgbWFwIG9mIGZ1bGwgbmFtZSB0byBs
YXN0IGNvbW1pdCBkYXRlLgorICAgICAgICAoQ29tbWl0dGVyTGlzdEZyb21HaXQpOgorICAgICAg
ICAoQ29tbWl0dGVyTGlzdEZyb21HaXQucG9zc2libHlfZXhwaXJlZF9jb21taXR0ZXJzX2FuZF9s
YXN0X2NvbW1pdHMpOiBUYWtlcyB0aGUgb3V0cHV0CisgICAgICAgIGZyb20gX2NvbW1pdHRlcnNf
bGFzdF9jb21taXRzICh3aGljaCBpbmNsdWRlcyBhbGwgY29tbW1pdHMpLCBhbmQgZmlsdGVycyBi
eSBkYXRlLCBidWlsZGluZworICAgICAgICBhIGxpc3Qgb2YgKENvbnRyaWJ1dG9yLCBsYXN0X2Nv
bW1pdCkuCisgICAgICAgIChDb21taXR0ZXJMaXN0RnJvbUdpdC5wb3NzaWJseV9pbmFjdGl2ZV9j
b21taXR0ZXJzKTogSnVzdCByZXR1cm4gYSBsaXN0IG9mIGluYWN0aXZlIENvbnRyaWJ1dG9yIG9i
amVjdHMuCisgICAgICAgIChDb21taXR0ZXJMaXN0RnJvbUdpdC5wcmludF9wb3NzaWJseV9leHBp
cmVkX2NvbW1pdHRlcnMpOgorICAgICAgICAoQ29tbWl0dGVyTGlzdEZyb21HaXQucHJpbnRfcG9z
c2libHlfaW5hY3RpdmVfcmV2aWV3ZXJzKToKKyAgICAgICAgKG1haW4pOiBHZXQgdGhlIGxpc3Rz
IG9mIGV4cGlyZWQgY29tbWl0dGVycyBhbmQgcmV2aWV3ZXJzLCBhbmQgbWFyayB0aGVtIGFzIGlu
YWN0aXZlLCB0aGVuIHdyaXRlIHRoZSBuZXcgSlNPTi4KKyAgICAgICAgKENvbW1pdHRlckxpc3RG
cm9tR2l0LnBvc3NpYmx5X2V4cGlyZWRfY29tbWl0dGVycyk6IERlbGV0ZWQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHk6CisgICAgICAgIChD
b250cmlidXRvci5fX2luaXRfXyk6IEFkZCBhbiBpbmFjdGl2ZSBwcm9wZXJ0eS4KKyAgICAgICAg
KENvbnRyaWJ1dG9yLmFzX2RpY3QpOgorICAgICAgICAoQ29tbWl0dGVyLl9faW5pdF9fKToKKyAg
ICAgICAgKFJldmlld2VyLl9faW5pdF9fKToKKyAgICAgICAgKENvbW1pdHRlckxpc3QubG9hZF9q
c29uKToKKwogMjAxNi0xMC0xMSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dpbl0gUGFyYWxsZWwgRFJUcyBhcmUgc2hhcmluZyBwcmVmZXJlbmNlcyBh
bmQgY2FjaGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ZhbGlkYXRlLWNvbW1pdHRlci1s
aXN0cyBiL1Rvb2xzL1NjcmlwdHMvdmFsaWRhdGUtY29tbWl0dGVyLWxpc3RzCmluZGV4IDBiYTRi
N2VkMzExNTA3NzA4NzU0ODUxNDdmMjM5OTE0NzdhNjdlYzUuLjFkNDU0NDQxY2I5NWI5MmI1OWEz
M2M1NmFjN2Y3MTdhMzU4Mzg1NzcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdmFsaWRhdGUt
Y29tbWl0dGVyLWxpc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvdmFsaWRhdGUtY29tbWl0dGVyLWxp
c3RzCkBAIC0yMTQsMTggKzIxNCwzMSBAQCBjbGFzcyBDb21taXR0ZXJMaXN0RnJvbUdpdChvYmpl
Y3QpOgogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfcHJpbnRfdGhyZWVfY29sdW1uX3Jv
dyh3aWR0aHMsIHZhbHVlcyk6Ci0gICAgICAgIHByaW50ICIlcyVzJXMiICUgKHZhbHVlc1swXS5s
anVzdCh3aWR0aHNbMF0pLCB2YWx1ZXNbMV0ubGp1c3Qod2lkdGhzWzFdKSwgdmFsdWVzWzJdKQor
ICAgICAgICBmb3JtYXRfc3RyaW5nID0gJ3t7Ont3aWR0aDF9fX0ge3s6e3dpZHRoMn19fSB7e319
Jy5mb3JtYXQod2lkdGgxPXdpZHRoc1swXSwgd2lkdGgyPXdpZHRoc1sxXSkKKyAgICAgICAgcHJp
bnQgZm9ybWF0X3N0cmluZy5mb3JtYXQodmFsdWVzWzBdLCB2YWx1ZXNbMV0sIHZhbHVlc1syXSkg
Iyh2YWx1ZXNbMF0ubGp1c3Qod2lkdGhzWzBdKSwgdmFsdWVzWzFdLmxqdXN0KHdpZHRoc1sxXSks
IHZhbHVlc1syXSkKIAotICAgIGRlZiBwb3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMoc2VsZiwg
Y29tbWl0dGVyX2xpc3QpOgorICAgIGRlZiBfY29tbWl0dGVyc19sYXN0X2NvbW1pdHMoc2VsZiwg
Y29tbWl0dGVyX2xpc3QpOgogICAgICAgICBhdXRob3JzX2FuZF9sYXN0X2NvbW1pdHMgPSBzZWxm
Ll9sYXN0X2NvbW1pdF9ieV9hdXRob3IoKS5pdGVtcygpCi0gICAgICAgIGF1dGhvcnNfYW5kX2xh
c3RfY29tbWl0cy5zb3J0KGxhbWJkYSBhLGI6IGNtcChhWzFdLCBiWzFdKSwgcmV2ZXJzZT1UcnVl
KQotICAgICAgICBjb21taXR0ZXJfY3V0b2YgPSBkYXRlLnRvZGF5KCkgLSB0aW1lZGVsdGEoZGF5
cz0zNjUpCi0gICAgICAgIHJldGlyZWRfYXV0aG9yc19hbmRfbGFzdF9jb21taXRzID0gW10KKyAg
ICAgICAgIyBTb3J0IG9sZCB0byBuZXcsIHNvIG5ld2VyIGNvbW1pdCBkYXRlcyByZXBsYWNlIG9s
ZGVyIG9uZXMuCisgICAgICAgIGF1dGhvcnNfYW5kX2xhc3RfY29tbWl0cy5zb3J0KGxhbWJkYSBh
LGI6IGNtcChhWzFdLCBiWzFdKSwgcmV2ZXJzZT1GYWxzZSkKKyAgICAgICAgY29tbWl0dGVyc19s
YXN0X2NvbW1pdHMgPSB7fQogICAgICAgICBmb3IgKGF1dGhvciwgbGFzdF9jb21taXQpIGluIGF1
dGhvcnNfYW5kX2xhc3RfY29tbWl0czoKLSAgICAgICAgICAgIGxhc3RfY29tbWl0X2RhdGUgPSBk
YXRlLmZyb210aW1lc3RhbXAobGFzdF9jb21taXQpCi0gICAgICAgICAgICBpZiBjb21taXR0ZXJf
Y3V0b2YgPiBsYXN0X2NvbW1pdF9kYXRlOgotICAgICAgICAgICAgICAgIHJldGlyZWRfYXV0aG9y
c19hbmRfbGFzdF9jb21taXRzLmFwcGVuZCgoYXV0aG9yLCBsYXN0X2NvbW1pdCkpCi0gICAgICAg
IHJldHVybiByZXRpcmVkX2F1dGhvcnNfYW5kX2xhc3RfY29tbWl0cworICAgICAgICAgICAgY29t
bWl0dGVyID0gY29tbWl0dGVyX2xpc3QuY29tbWl0dGVyX2J5X2VtYWlsKGF1dGhvcikKKyAgICAg
ICAgICAgIGlmIGNvbW1pdHRlcjoKKyAgICAgICAgICAgICAgICBjb21taXR0ZXJzX2xhc3RfY29t
bWl0c1tjb21taXR0ZXIuZnVsbF9uYW1lXSA9IGRhdGUuZnJvbXRpbWVzdGFtcChsYXN0X2NvbW1p
dCkKKyAgICAgICAgcmV0dXJuIGNvbW1pdHRlcnNfbGFzdF9jb21taXRzCisKKyAgICBkZWYgcG9z
c2libHlfZXhwaXJlZF9jb21taXR0ZXJzX2FuZF9sYXN0X2NvbW1pdHMoc2VsZiwgY29tbWl0dGVy
X2xpc3QpOgorICAgICAgICBfY29tbWl0dGVyc19sYXN0X2NvbW1pdHMgPSBzZWxmLl9jb21taXR0
ZXJzX2xhc3RfY29tbWl0cyhjb21taXR0ZXJfbGlzdCkKKyAgICAgICAgZXhwaXJlZF9jb21taXR0
ZXJzX2FuZF9sYXN0X2NvbW1pdHMgPSBbXQorICAgICAgICBjb21taXR0ZXJfY3V0b2YgPSBkYXRl
LnRvZGF5KCkgLSB0aW1lZGVsdGEoZGF5cz0zNjUpCisgICAgICAgIGZvciBuYW1lLCBsYXN0X2Nv
bW1pdCBpbiBfY29tbWl0dGVyc19sYXN0X2NvbW1pdHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAg
ICBpZiBsYXN0X2NvbW1pdCA8IGNvbW1pdHRlcl9jdXRvZjoKKyAgICAgICAgICAgICAgICBleHBp
cmVkX2NvbW1pdHRlcnNfYW5kX2xhc3RfY29tbWl0cy5hcHBlbmQoKGNvbW1pdHRlcl9saXN0LmNv
bnRyaWJ1dG9yX2J5X25hbWUobmFtZSksIGxhc3RfY29tbWl0KSkKKyAgICAgICAgcmV0dXJuIGV4
cGlyZWRfY29tbWl0dGVyc19hbmRfbGFzdF9jb21taXRzCisKKyAgICBkZWYgcG9zc2libHlfaW5h
Y3RpdmVfY29tbWl0dGVycyhzZWxmLCBjb21taXR0ZXJfbGlzdCk6CisgICAgICAgIHJldHVybiBb
aXRlbVswXSBmb3IgaXRlbSBpbiBzZWxmLnBvc3NpYmx5X2V4cGlyZWRfY29tbWl0dGVyc19hbmRf
bGFzdF9jb21taXRzKGNvbW1pdHRlcl9saXN0KV0KIAogICAgIGRlZiBwb3NzaWJseV9pbmFjdGl2
ZV9yZXZpZXdlcnMoc2VsZiwgY29tbWl0dGVyX2xpc3QpOgogICAgICAgICBnaXRfbG9nX2FyZ3Mg
PSBbJ2dpdCcsICdsb2cnLCAnLS1zaW5jZT0xLnllYXInXQpAQCAtMjUxLDI0ICsyNjQsMjAgQEAg
Y2xhc3MgQ29tbWl0dGVyTGlzdEZyb21HaXQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHJldmll
d2VycwogCiAgICAgZGVmIHByaW50X3Bvc3NpYmx5X2V4cGlyZWRfY29tbWl0dGVycyhzZWxmLCBj
b21taXR0ZXJfbGlzdCk6Ci0gICAgICAgIHJldGlyZWRfYXV0aG9yc19hbmRfbGFzdF9jb21taXRz
ID0gc2VsZi5wb3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMoY29tbWl0dGVyX2xpc3QpCi0gICAg
ICAgIGNvbHVtbl93aWR0aHMgPSBbMTMsIDI1XQorICAgICAgICByZXRpcmVkX2NvbW1pdHRlcnNf
YW5kX2xhc3RfY29tbWl0cyA9IHNlbGYucG9zc2libHlfZXhwaXJlZF9jb21taXR0ZXJzX2FuZF9s
YXN0X2NvbW1pdHMoY29tbWl0dGVyX2xpc3QpCisgICAgICAgIGNvbHVtbl93aWR0aHMgPSBbMTMs
IDMyXQogICAgICAgICBwcmludAogICAgICAgICBwcmludCAiQ29tbWl0dGVycyB3aG8gaGF2ZSBu
b3QgY29tbWl0dGVkIHdpdGhpbiBvbmUgeWVhcjoiCi0gICAgICAgIHNlbGYuX3ByaW50X3RocmVl
X2NvbHVtbl9yb3coY29sdW1uX3dpZHRocywgKCJMYXN0IENvbW1pdCIsICJDb21taXR0ZXIgRW1h
aWwiLCAiQ29tbWl0dGVyIFJlY29yZCIpKQotICAgICAgICBmb3IgKGF1dGhvciwgbGFzdF9jb21t
aXQpIGluIHJldGlyZWRfYXV0aG9yc19hbmRfbGFzdF9jb21taXRzOgotICAgICAgICAgICAgY29t
bWl0dGVyX3JlY29yZCA9IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbChhdXRob3Ip
Ci0gICAgICAgICAgICBsYXN0X2NvbW1pdF9kYXRlID0gZGF0ZS5mcm9tdGltZXN0YW1wKGxhc3Rf
Y29tbWl0KQotICAgICAgICAgICAgc2VsZi5fcHJpbnRfdGhyZWVfY29sdW1uX3Jvdyhjb2x1bW5f
d2lkdGhzLCAoc3RyKGxhc3RfY29tbWl0X2RhdGUpLCBhdXRob3IsIGNvbW1pdHRlcl9yZWNvcmQp
KQorICAgICAgICBzZWxmLl9wcmludF90aHJlZV9jb2x1bW5fcm93KGNvbHVtbl93aWR0aHMsICgi
TGFzdCBDb21taXQiLCAiQ29tbWl0dGVyIEVtYWlsIiwgIkNvbW1pdHRlciBOYW1lIikpCisgICAg
ICAgIGZvciAoY29tbWl0dGVyLCBsYXN0X2NvbW1pdCkgaW4gc29ydGVkKHJldGlyZWRfY29tbWl0
dGVyc19hbmRfbGFzdF9jb21taXRzLCBrZXk9bGFtYmRhIHR1cGxlOiB0dXBsZVswXS5mdWxsX25h
bWUpOgorICAgICAgICAgICAgc2VsZi5fcHJpbnRfdGhyZWVfY29sdW1uX3Jvdyhjb2x1bW5fd2lk
dGhzLCAoc3RyKGxhc3RfY29tbWl0KSwgY29tbWl0dGVyLmZ1bGxfbmFtZS5lbmNvZGUoInV0Zi04
IiksIGNvbW1pdHRlci5idWd6aWxsYV9lbWFpbCgpKSkKIAogICAgIGRlZiBwcmludF9wb3NzaWJs
eV9pbmFjdGl2ZV9yZXZpZXdlcnMoc2VsZiwgY29tbWl0dGVyX2xpc3QpOgogICAgICAgICBpbmFj
dGl2ZV9yZXZpZXdlcnMgPSBzZWxmLnBvc3NpYmx5X2luYWN0aXZlX3Jldmlld2Vycyhjb21taXR0
ZXJfbGlzdCkKLSAgICAgICAgCi0gICAgICAgIGNvbHVtbl93aWR0aHMgPSBbMTMsIDI1XQogICAg
ICAgICBwcmludAogICAgICAgICBwcmludCAiUmV2aWV3ZXJzIHdobyBoYXZlIG5vdCByZXZpZXdl
ZCB3aXRoaW4gb25lIHllYXI6IgotICAgICAgICBmb3IgY29udHJpYnV0b3IgaW4gaW5hY3RpdmVf
cmV2aWV3ZXJzOgotICAgICAgICAgICAgcHJpbnQgIlwie31cIiB7fSIuZm9ybWF0KGNvbnRyaWJ1
dG9yLmZ1bGxfbmFtZS5lbmNvZGUoInV0Zi04IiksIGNvbnRyaWJ1dG9yLmJ1Z3ppbGxhX2VtYWls
KCkpCisgICAgICAgIGZvciBjb250cmlidXRvciBpbiBzb3J0ZWQoaW5hY3RpdmVfcmV2aWV3ZXJz
LCBrZXk9bGFtYmRhIGNvbnRyaWI6IGNvbnRyaWIuZnVsbF9uYW1lKToKKyAgICAgICAgICAgIHBy
aW50ICJ7OjMyfSB7fSIuZm9ybWF0KGNvbnRyaWJ1dG9yLmZ1bGxfbmFtZS5lbmNvZGUoInV0Zi04
IiksIGNvbnRyaWJ1dG9yLmJ1Z3ppbGxhX2VtYWlsKCkpCiAKICAgICBkZWYgcHJpbnRfY29tbWl0
dGVyc19taXNzaW5nX2Zyb21fY29tbWl0dGVyX2xpc3Qoc2VsZiwgY29tbWl0dGVyX2xpc3QpOgog
ICAgICAgICBtaXNzaW5nX2Zyb21fY29udHJpYnV0b3JzX2pzb24gPSBbXQpAQCAtMzA4LDYgKzMx
Nyw3IEBAIGRlZiBtYWluKCk6CiAgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1iIiwgIi0tY2hlY2st
YnVnemlsbGEtZW1haWxzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iQ2hlY2sgdGhlIGJ1
Z3ppbGxhX2VtYWlsIGZvciBlYWNoIGNvbW1pdHRlciBhZ2FpbnN0IGJ1Z3Mud2Via2l0Lm9yZyIp
CiAgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1kIiwgIi0tZHVtcCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGhlbHA9IkR1bXAgdGhlIGNvbnRyaWJ1dG9yIGxpc3QgYXMgSlNPTiB0byBzdGRvdXQgKHN1
aXRhYmxlIGZvciBzYXZpbmcgdG8gY29udHJpYnV0b3JzLmpzb24pIikKICAgICBwYXJzZXIuYWRk
X29wdGlvbigiLWMiLCAiLS1jYW5vbmljYWxpemUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxw
PSJDYW5vbmljYWxpemUgY29udHJpYnV0b3JzLmpzb24sIHJld3JpdGluZyBpdCBpbi1wbGFjZSIp
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1yIiwgIi0tcmV0aXJlIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgaGVscD0iUmV0aXJlIHJldmlld2VycyBhbmQgY29tbWl0dGVycyB3aG8gaGF2ZSBub3Qg
YmVlbiBhY3RpdmUgaW4gdGhlIHBhc3QgeWVhciIpCiAKICAgICAob3B0aW9ucywgYXJncykgPSBw
YXJzZXIucGFyc2VfYXJncygpCiAKQEAgLTMyMiw3ICszMzIsOCBAQCBkZWYgbWFpbigpOgogICAg
ICAgICBwcmludCAiRG9uZSIKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBDb21taXR0ZXJMaXN0
RnJvbU1haWxpbmdMaXN0KCkuY2hlY2tfZm9yX2VtYWlsc19taXNzaW5nX2Zyb21fbGlzdChjb21t
aXR0ZXJfbGlzdCkKKyAgICBpZiBub3Qgb3B0aW9ucy5yZXRpcmU6CisgICAgICAgIENvbW1pdHRl
ckxpc3RGcm9tTWFpbGluZ0xpc3QoKS5jaGVja19mb3JfZW1haWxzX21pc3NpbmdfZnJvbV9saXN0
KGNvbW1pdHRlcl9saXN0KQogIAogICAgIGlmIG5vdCBHaXQuaW5fd29ya2luZ19kaXJlY3Rvcnko
Ii4iKToKICAgICAgICAgcHJpbnQgIiIiXG5cbldBUk5JTkc6IHZhbGlkYXRlLWNvbW1pdHRlci1s
aXN0cyByZXF1aXJlcyBhIGdpdCBjaGVja291dC4KQEAgLTMzNCw2ICszNDUsNDYgQEAgVGhlIGZv
bGxvd2luZyBjaGVja3MgYXJlIGRpc2FibGVkOgogICAgICAgICByZXR1cm4gMQogCiAgICAgc3Zu
X2NvbW1pdHRlcl9saXN0ID0gQ29tbWl0dGVyTGlzdEZyb21HaXQoKQorCisgICAgaWYgb3B0aW9u
cy5yZXRpcmU6CisgICAgICAgIHByaW50ICJGaW5kaW5nIGluYWN0aXZlIHJldmlld2VycyBhbmQg
Y29tbWl0dGVycyAodGhpcyBtYXkgdGFrZSBhIHdoaWxlKS4uLiIKKyAgICAgICAgaW5hY3RpdmVf
cmV2aWV3ZXJzID0gc3ZuX2NvbW1pdHRlcl9saXN0LnBvc3NpYmx5X2luYWN0aXZlX3Jldmlld2Vy
cyhjb21taXR0ZXJfbGlzdCkKKyAgICAgICAgaW5hY3RpdmVfY29tbWl0dGVycyA9IHN2bl9jb21t
aXR0ZXJfbGlzdC5wb3NzaWJseV9pbmFjdGl2ZV9jb21taXR0ZXJzKGNvbW1pdHRlcl9saXN0KQor
CisgICAgICAgIHN0YXR1c19jaGFuZ2VkID0gRmFsc2UKKworICAgICAgICBwcmludAorICAgICAg
ICBwcmludCAiTWFraW5nIHRoZSBmb2xsb3dpbmcgcmV2aWV3ZXJzIGluYWN0aXZlOiIKKyAgICAg
ICAgZm9yIGNvbnRyaWJ1dG9yIGluIGluYWN0aXZlX3Jldmlld2VyczoKKyAgICAgICAgICAgIGlm
IGNvbnRyaWJ1dG9yLmluYWN0aXZlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
ICAgICBpZiBub3QgY29udHJpYnV0b3IgaW4gaW5hY3RpdmVfY29tbWl0dGVyczoKKyAgICAgICAg
ICAgICAgICBwcmludCAiSW5hY3RpdmUgcmV2aWV3ZXIgY29tbWl0dGVkLCBjb25zaWRlcmVkIGFj
dGl2ZTogIiArIGNvbnRyaWJ1dG9yLmZ1bGxfbmFtZS5lbmNvZGUoInV0Zi04IikKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgIlJldGlyaW5nIHJldmlld2VyOiAiICsg
Y29udHJpYnV0b3IuZnVsbF9uYW1lLmVuY29kZSgidXRmLTgiKQorICAgICAgICAgICAgICAgIGNv
bnRyaWJ1dG9yLmluYWN0aXZlID0gVHJ1ZQorICAgICAgICAgICAgICAgIHN0YXR1c19jaGFuZ2Vk
ID0gVHJ1ZQorICAgICAgICAKKyAgICAgICAgcHJpbnQKKyAgICAgICAgcHJpbnQgIk1ha2luZyB0
aGUgZm9sbG93aW5nIGNvbW1pdHRlcnMgaW5hY3RpdmU6IgorICAgICAgICBmb3IgY29udHJpYnV0
b3IgaW4gaW5hY3RpdmVfY29tbWl0dGVyczoKKyAgICAgICAgICAgIGlmIGNvbnRyaWJ1dG9yLmlu
YWN0aXZlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBjb250cmli
dXRvci5jYW5fcmV2aWV3IGFuZCBub3QgY29udHJpYnV0b3IgaW4gaW5hY3RpdmVfcmV2aWV3ZXJz
OgorICAgICAgICAgICAgICAgIHByaW50ICJJbmFjdGl2ZSBjb21taXR0ZXIgcmV2aWV3ZWQsIGNv
bnNpZGVyZWQgYWN0aXZlOiAiICsgY29udHJpYnV0b3IuZnVsbF9uYW1lLmVuY29kZSgidXRmLTgi
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAiUmV0aXJpbmcgY29t
bWl0dGVyOiAiICsgY29udHJpYnV0b3IuZnVsbF9uYW1lLmVuY29kZSgidXRmLTgiKQorICAgICAg
ICAgICAgICAgIGNvbnRyaWJ1dG9yLmluYWN0aXZlID0gVHJ1ZQorICAgICAgICAgICAgICAgIHN0
YXR1c19jaGFuZ2VkID0gVHJ1ZQorCisgICAgICAgIGlmIHN0YXR1c19jaGFuZ2VkOgorICAgICAg
ICAgICAgcHJpbnQgIlVwZGF0ZWQgY29udHJpYnV0b3JzLmpzb24uIFRoZXNlIGNoYW5nZXMgc2hv
dWxkIGJlIGNoZWNrZWQgaW4uIgorICAgICAgICAgICAgY29tbWl0dGVyX2xpc3QucmVmb3JtYXRf
aW5fcGxhY2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgIk5vIHN0YXR1cyBj
aGFuZ2UgZm9yIGFueSBjb250cmlidXRvci4iCisKKyAgICAgICAgcmV0dXJuIDAKKwogICAgIHN2
bl9jb21taXR0ZXJfbGlzdC5wcmludF9wb3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMoY29tbWl0
dGVyX2xpc3QpCiAgICAgc3ZuX2NvbW1pdHRlcl9saXN0LnByaW50X3Bvc3NpYmx5X2luYWN0aXZl
X3Jldmlld2Vycyhjb21taXR0ZXJfbGlzdCkKICAgICBzdm5fY29tbWl0dGVyX2xpc3QucHJpbnRf
Y29tbWl0dGVyc19taXNzaW5nX2Zyb21fY29tbWl0dGVyX2xpc3QoY29tbWl0dGVyX2xpc3QpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVy
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5
CmluZGV4IGFjNGZiYmNmMWIxM2I0MzExZDhiMGE1Nzk3ZjQxZjU4ZWU2NGExMDkuLjdlMjI5YjNj
MzE2MDYzZWVlMjhmYTI0OTIyMjQ1YjJmNDc1ZGI3YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5CkBAIC0zOCw3ICszOCw3IEBA
IGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIAogY2xhc3Mg
Q29udHJpYnV0b3Iob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZW1haWxf
b3JfZW1haWxzLCBpcmNfbmlja25hbWVfb3Jfbmlja25hbWVzPU5vbmUsIGFsaWFzX29yX2FsaWFz
ZXM9Tm9uZSwgZXhwZXJ0aXNlPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBl
bWFpbF9vcl9lbWFpbHMsIGlyY19uaWNrbmFtZV9vcl9uaWNrbmFtZXM9Tm9uZSwgYWxpYXNfb3Jf
YWxpYXNlcz1Ob25lLCBleHBlcnRpc2U9Tm9uZSwgaW5hY3RpdmU9RmFsc2UpOgogICAgICAgICBh
c3NlcnQobmFtZSkKICAgICAgICAgYXNzZXJ0KGVtYWlsX29yX2VtYWlscykKICAgICAgICAgc2Vs
Zi5mdWxsX25hbWUgPSBuYW1lCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIENvbnRyaWJ1dG9yKG9i
amVjdCk6CiAgICAgICAgIHNlbGYuZXhwZXJ0aXNlID0gZXhwZXJ0aXNlCiAgICAgICAgIHNlbGYu
Y2FuX2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIHNlbGYuY2FuX3JldmlldyA9IEZhbHNlCisgICAg
ICAgIHNlbGYuaW5hY3RpdmUgPSBpbmFjdGl2ZQogCiAgICAgZGVmIGJ1Z3ppbGxhX2VtYWlsKHNl
bGYpOgogICAgICAgICAjIEZJWE1FOiBXZSdyZSBhc3N1bWluZyB0aGUgZmlyc3QgZW1haWwgaXMg
YSB2YWxpZCBidWd6aWxsYSBlbWFpbCwKQEAgLTEzNSwxMCArMTM2LDExIEBAIGNsYXNzIENvbnRy
aWJ1dG9yKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuYWxpYXNlczoKICAgICAgICAgICAgIGlu
Zm9bImFsaWFzZXMiXSA9IHNlbGYuYWxpYXNlcwogCisgICAgICAgIGluYWN0aXZlX3ByZWZpeCA9
ICJpbmFjdGl2ZS0iIGlmIHNlbGYuaW5hY3RpdmUgZWxzZSAiIgogICAgICAgICBpZiBzZWxmLmNh
bl9yZXZpZXc6Ci0gICAgICAgICAgICBpbmZvWyJzdGF0dXMiXSA9ICJyZXZpZXdlciIKKyAgICAg
ICAgICAgIGluZm9bInN0YXR1cyJdID0gaW5hY3RpdmVfcHJlZml4ICsgInJldmlld2VyIgogICAg
ICAgICBlbGlmIHNlbGYuY2FuX2NvbW1pdDoKLSAgICAgICAgICAgIGluZm9bInN0YXR1cyJdID0g
ImNvbW1pdHRlciIKKyAgICAgICAgICAgIGluZm9bInN0YXR1cyJdID0gaW5hY3RpdmVfcHJlZml4
ICsgImNvbW1pdHRlciIKIAogICAgICAgICBpZiBzZWxmLmlyY19uaWNrbmFtZXM6CiAgICAgICAg
ICAgICBpbmZvWyJuaWNrcyJdID0gc2VsZi5pcmNfbmlja25hbWVzCkBAIC0xNTAsMTQgKzE1Miwx
NCBAQCBjbGFzcyBDb250cmlidXRvcihvYmplY3QpOgogCiAKIGNsYXNzIENvbW1pdHRlcihDb250
cmlidXRvcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywg
aXJjX25pY2tuYW1lPU5vbmUsIGFsaWFzX29yX2FsaWFzZXM9Tm9uZSwgZXhwZXJ0aXNlPU5vbmUp
OgotICAgICAgICBDb250cmlidXRvci5fX2luaXRfXyhzZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFp
bHMsIGlyY19uaWNrbmFtZSwgYWxpYXNfb3JfYWxpYXNlcywgZXhwZXJ0aXNlKQorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFpbHMsIGlyY19uaWNrbmFtZT1Ob25lLCBh
bGlhc19vcl9hbGlhc2VzPU5vbmUsIGV4cGVydGlzZT1Ob25lLCBpbmFjdGl2ZT1GYWxzZSk6Cisg
ICAgICAgIENvbnRyaWJ1dG9yLl9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywg
aXJjX25pY2tuYW1lLCBhbGlhc19vcl9hbGlhc2VzLCBleHBlcnRpc2UsIGluYWN0aXZlKQogICAg
ICAgICBzZWxmLmNhbl9jb21taXQgPSBUcnVlCiAKIAogY2xhc3MgUmV2aWV3ZXIoQ29tbWl0dGVy
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZW1haWxfb3JfZW1haWxzLCBpcmNfbmlj
a25hbWU9Tm9uZSwgYWxpYXNfb3JfYWxpYXNlcz1Ob25lLCBleHBlcnRpc2U9Tm9uZSk6Ci0gICAg
ICAgIENvbW1pdHRlci5fX2luaXRfXyhzZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFpbHMsIGlyY19u
aWNrbmFtZSwgYWxpYXNfb3JfYWxpYXNlcywgZXhwZXJ0aXNlKQorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFpbHMsIGlyY19uaWNrbmFtZT1Ob25lLCBhbGlhc19vcl9h
bGlhc2VzPU5vbmUsIGV4cGVydGlzZT1Ob25lLCBpbmFjdGl2ZT1GYWxzZSk6CisgICAgICAgIENv
bW1pdHRlci5fX2luaXRfXyhzZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFpbHMsIGlyY19uaWNrbmFt
ZSwgYWxpYXNfb3JfYWxpYXNlcywgZXhwZXJ0aXNlLCBpbmFjdGl2ZSkKICAgICAgICAgc2VsZi5j
YW5fcmV2aWV3ID0gVHJ1ZQogCiAKQEAgLTE5MiwxNSArMTk0LDIwIEBAIGNsYXNzIENvbW1pdHRl
ckxpc3Qob2JqZWN0KToKICAgICAgICAgZm9yIG5hbWUsIGRhdGEgaW4gY29udHJpYnV0b3JzLml0
ZXJpdGVtcygpOgogICAgICAgICAgICAgY29udHJpYnV0b3IgPSBOb25lCiAgICAgICAgICAgICBz
dGF0dXMgPSBkYXRhLmdldCgnc3RhdHVzJykKKyAgICAgICAgICAgIGluYWN0aXZlID0gRmFsc2UK
KyAgICAgICAgICAgIGlmIHN0YXR1cyBhbmQgc3RhdHVzLnN0YXJ0c3dpdGgoImluYWN0aXZlLSIp
OgorICAgICAgICAgICAgICAgIGluYWN0aXZlID0gVHJ1ZQorICAgICAgICAgICAgICAgIHN0YXR1
cyA9IHN0YXR1c1tsZW4oImluYWN0aXZlLSIpOl0KKwogICAgICAgICAgICAgaWYgc3RhdHVzID09
ICJyZXZpZXdlciI6Ci0gICAgICAgICAgICAgICAgY29udHJpYnV0b3IgPSBSZXZpZXdlcihuYW1l
LCBkYXRhLmdldCgnZW1haWxzJyksIGRhdGEuZ2V0KCduaWNrcycpLCBkYXRhLmdldCgnYWxpYXNl
cycpLCBkYXRhLmdldCgnZXhwZXJ0aXNlJykpCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3Ig
PSBSZXZpZXdlcihuYW1lLCBkYXRhLmdldCgnZW1haWxzJyksIGRhdGEuZ2V0KCduaWNrcycpLCBk
YXRhLmdldCgnYWxpYXNlcycpLCBkYXRhLmdldCgnZXhwZXJ0aXNlJyksIGluYWN0aXZlKQogICAg
ICAgICAgICAgICAgIHNlbGYuX3Jldmlld2Vycy5hcHBlbmQoY29udHJpYnV0b3IpCiAgICAgICAg
ICAgICAgICAgc2VsZi5fY29tbWl0dGVycy5hcHBlbmQoY29udHJpYnV0b3IpCiAgICAgICAgICAg
ICBlbGlmIHN0YXR1cyA9PSAiY29tbWl0dGVyIjoKLSAgICAgICAgICAgICAgICBjb250cmlidXRv
ciA9IENvbW1pdHRlcihuYW1lLCBkYXRhLmdldCgnZW1haWxzJyksIGRhdGEuZ2V0KCduaWNrcycp
LCBkYXRhLmdldCgnYWxpYXNlcycpLCBkYXRhLmdldCgnZXhwZXJ0aXNlJykpCisgICAgICAgICAg
ICAgICAgY29udHJpYnV0b3IgPSBDb21taXR0ZXIobmFtZSwgZGF0YS5nZXQoJ2VtYWlscycpLCBk
YXRhLmdldCgnbmlja3MnKSwgZGF0YS5nZXQoJ2FsaWFzZXMnKSwgZGF0YS5nZXQoJ2V4cGVydGlz
ZScpLCBpbmFjdGl2ZSkKICAgICAgICAgICAgICAgICBzZWxmLl9jb21taXR0ZXJzLmFwcGVuZChj
b250cmlidXRvcikKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY29udHJpYnV0
b3IgPSBDb250cmlidXRvcihuYW1lLCBkYXRhLmdldCgnZW1haWxzJyksIGRhdGEuZ2V0KCduaWNr
cycpLCBkYXRhLmdldCgnYWxpYXNlcycpLCBkYXRhLmdldCgnZXhwZXJ0aXNlJykpCisgICAgICAg
ICAgICAgICAgY29udHJpYnV0b3IgPSBDb250cmlidXRvcihuYW1lLCBkYXRhLmdldCgnZW1haWxz
JyksIGRhdGEuZ2V0KCduaWNrcycpLCBkYXRhLmdldCgnYWxpYXNlcycpLCBkYXRhLmdldCgnZXhw
ZXJ0aXNlJyksIGluYWN0aXZlKQogCiAgICAgICAgICAgICBzZWxmLl9jb250cmlidXRvcnMuYXBw
ZW5kKGNvbnRyaWJ1dG9yKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291566</attachid>
            <date>2016-10-13 22:11:38 -0700</date>
            <delta_ts>2016-10-14 15:53:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163318-20161013220811.patch</filename>
            <type>text/plain</type>
            <size>21396</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MTM4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjI2NzgyYTIxZjdiZTg5ZDM4Zjg5N2EzMjgzN2RhOWQ2
MjQzMjZiYy4uMjNlOWI2NWQ1MTEwNzQ5MThiYTdhMjFjMzI4MzljMjI5ZmVkMDY1YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTEwLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBvcHRpb24gdG8gdmFsaWRhdGUtY29tbWl0dGVyLWxpc3RzIHRvIHJl
dGlyZSBpbmFjdGl2ZSBjb21taXR0ZXJzIGFuZCByZXZpZXdlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzMxOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIHZhbGlkYXRlLWNvbW1p
dHRlci1saXN0cyAtLXJldGlyZSwgd2hpY2ggbG9va3MgZm9yIHJldmlld2VyIGFuZCBjb21taXR0
ZXJzIHdobworICAgICAgICBoYXZlIG5vdCBiZWVuIGFjdGl2ZSBpbiB0aGUgcGFzdCB5ZWFyLCBh
bmQgbW92ZXMgdGhlbSB0byAiaW5hY3RpdmUtcmV2aWV3ZXIiIG9yCisgICAgICAgICJpbmFjdGl2
ZS1jb21taXR0ZXIiIHN0YXR1cywgdGhlbiB1cGRhdGVzIGNvbnRyaWJ1dG9ycy5qc29uLgorICAg
ICAgICAKKyAgICAgICAgVGhlIGV4aXN0aW5nIGNvZGUgdG8gZmluZCBpbmFjdGl2ZSBjb21taXR0
ZXJzIGhhZCB0d28gcHJvYmxlbXM6IGl0IHdhcyBjb25mdXNlZAorICAgICAgICBieSBhIHBlcnNv
biB1c2luZyB0d28gZGlmZmVyZW50IGVtYWlscywgb25lIG9mIHdoaWNoIG1heSBub3QgaGF2ZSBi
ZWVuIHVzZWQgaW4gYSB5ZWFyLgorICAgICAgICBJbiBhZGRpdGlvbiwgaXQgZGlkbid0IGZpbmQg
YXV0aG9ycyBmb3IgcGF0Y2hlcyBjb21taXR0ZWQgYnkgdGhlIGNvbW1pdC1xdWV1ZS4KKyAgICAg
ICAgRml4aW5nIHRoZSBsYXR0ZXIgcHJvYmxlbSByZXF1aXJlcyBncmVwcGluZyB0aGUgY29tbWl0
IG1lc3NhZ2UsIHNvIHBvc3NpYmx5X2luYWN0aXZlX2NvbW1pdHRlcnMoKQorICAgICAgICB3YXMg
cmUtd3JpdHRlbiB0byBqdXN0ICJnaXQgbG9nIC0tc2luY2U9MS55ZWFyIiB3aXRoIG91dHB1dCB0
aGF0IGluY2x1ZGVzIHRoZSBjb21taXQKKyAgICAgICAgYm9keSwgd2hpY2ggaXMgbXVjaCBmYXN0
ZXIgdGhhbiB1c2luZyBfZmV0Y2hfYXV0aG9yc19hbmRfbGFzdF9jb21taXRfdGltZV9mcm9tX2dp
dF9sb2coKQorICAgICAgICB0aGVuIHJ1bm5pbmcgJ2dpdCBzaG93JyBmb3IgY29tbWl0LXF1ZXVl
IGNvbW1pdHMuCisgICAgICAgIAorICAgICAgICBUaWRpZWQgdXAgdGhlIG91dHB1dCBhIGxpdHRs
ZSB0byBhbHdheXMgcHJpbnQgdHdvIGNvbHVtbnMgd2hlbiBwcmludGluZyBDb250cmlidXRvcnMu
CisgICAgICAgIAorICAgICAgICBNYWRlIGxvZ2dpbmcgd29yayBjb3JyZWN0bHkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3ZhbGlkYXRlLWNvbW1pdHRlci1saXN0czoKKyAgICAgICAgKHByaW50X2xp
c3RfaWZfbm9uX2VtcHR5KToKKyAgICAgICAgKHByaW50X2NvbnRyaWJ1dG9yX2xpc3RfaWZfbm9u
X2VtcHR5KToKKyAgICAgICAgKENvbW1pdHRlckxpc3RGcm9tTWFpbGluZ0xpc3QuY2hlY2tfZm9y
X2VtYWlsc19taXNzaW5nX2Zyb21fbGlzdCk6CisgICAgICAgIChDb21taXR0ZXJMaXN0RnJvbUdp
dC5fX2luaXRfXyk6CisgICAgICAgIChDb21taXR0ZXJMaXN0RnJvbUdpdC5fZmV0Y2hfYXV0aG9y
c19hbmRfbGFzdF9jb21taXRfdGltZV9mcm9tX2dpdF9sb2cpOgorICAgICAgICAoQ29tbWl0dGVy
TGlzdEZyb21HaXQuX2ZpbGxfaW5fZW1haWxzX2Zvcl9vbGRfbG9naW5zKToKKyAgICAgICAgKENv
bW1pdHRlckxpc3RGcm9tR2l0Ll9wcmludF90aHJlZV9jb2x1bW5fcm93KToKKyAgICAgICAgKENv
bW1pdHRlckxpc3RGcm9tR2l0KToKKyAgICAgICAgKENvbW1pdHRlckxpc3RGcm9tR2l0Ll9maW5k
X2NvbW1pdF9xdWV1ZV9jb21taXRfYXV0aG9yKToKKyAgICAgICAgKENvbW1pdHRlckxpc3RGcm9t
R2l0LnBvc3NpYmx5X2luYWN0aXZlX2NvbW1pdHRlcnMpOgorICAgICAgICAoQ29tbWl0dGVyTGlz
dEZyb21HaXQucG9zc2libHlfaW5hY3RpdmVfcmV2aWV3ZXJzKToKKyAgICAgICAgKENvbW1pdHRl
ckxpc3RGcm9tR2l0LnByaW50X3Bvc3NpYmx5X2luYWN0aXZlX2NvbW1pdHRlcnMpOgorICAgICAg
ICAoQ29tbWl0dGVyTGlzdEZyb21HaXQucHJpbnRfcG9zc2libHlfaW5hY3RpdmVfcmV2aWV3ZXJz
KToKKyAgICAgICAgKENvbW1pdHRlckxpc3RGcm9tR2l0LnByaW50X2NvbW1pdHRlcnNfbWlzc2lu
Z19mcm9tX2NvbW1pdHRlcl9saXN0KToKKyAgICAgICAgKENvbW1pdHRlckxpc3RCdWd6aWxsYUNo
ZWNrZXIucHJpbnRfY29tbWl0dGVyc193aXRoX2ludmFsaWRfYnVnemlsbGFfZW1haWxzKToKKyAg
ICAgICAgKHJldGlyZV9pbmFjdGl2ZV9jb250cmlidXRvcnMpOgorICAgICAgICAoQ29uZmlndXJl
TG9nZ2luZyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKENvbW1pdHRlckxpc3RGcm9tR2l0
LnBvc3NpYmx5X2V4cGlyZWRfY29tbWl0dGVycyk6IERlbGV0ZWQuCisgICAgICAgIChDb21taXR0
ZXJMaXN0RnJvbUdpdC5wcmludF9wb3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMpOiBEZWxldGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5
OgorICAgICAgICAoQ29udHJpYnV0b3IuX19pbml0X18pOgorICAgICAgICAoQ29udHJpYnV0b3Iu
YXNfZGljdCk6CisgICAgICAgIChDb21taXR0ZXIuX19pbml0X18pOgorICAgICAgICAoUmV2aWV3
ZXIuX19pbml0X18pOgorICAgICAgICAoQ29tbWl0dGVyTGlzdC5sb2FkX2pzb24pOgorCiAyMDE2
LTEwLTExICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2luXSBQYXJhbGxlbCBEUlRzIGFyZSBzaGFyaW5nIHByZWZlcmVuY2VzIGFuZCBjYWNoZS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdmFsaWRhdGUtY29tbWl0dGVyLWxpc3RzIGIvVG9vbHMv
U2NyaXB0cy92YWxpZGF0ZS1jb21taXR0ZXItbGlzdHMKaW5kZXggMGJhNGI3ZWQzMTE1MDc3MDg3
NTQ4NTE0N2YyMzk5MTQ3N2E2N2VjNS4uNjA1NzY5Y2ZmNWM3Nzc0Zjg5YmRiMDRlNWI1Zjk5YTA2
NWVhNTM5MiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy92YWxpZGF0ZS1jb21taXR0ZXItbGlz
dHMKKysrIGIvVG9vbHMvU2NyaXB0cy92YWxpZGF0ZS1jb21taXR0ZXItbGlzdHMKQEAgLTQ4LDgg
KzQ4LDYgQEAgZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBCdWd6aWxs
YQogIyBzbyB0aGlzIGltcG9ydCBzaG91bGQgYWx3YXlzIHN1Y2NlZWQuCiBmcm9tIHdlYmtpdHB5
LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVhdXRpZnVsU291cAogCi1fbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KIGRlZiBwcmludF9saXN0X2lmX25vbl9lbXB0
eSh0aXRsZSwgbGlzdF90b19wcmludCk6CiAgICAgaWYgbm90IGxpc3RfdG9fcHJpbnQ6CiAgICAg
ICAgIHJldHVybgpAQCAtNTgsNiArNTYsMTMgQEAgZGVmIHByaW50X2xpc3RfaWZfbm9uX2VtcHR5
KHRpdGxlLCBsaXN0X3RvX3ByaW50KToKICAgICBmb3IgaXRlbSBpbiBsaXN0X3RvX3ByaW50Ogog
ICAgICAgICBwcmludCBpdGVtCiAKK2RlZiBwcmludF9jb250cmlidXRvcl9saXN0X2lmX25vbl9l
bXB0eSh0aXRsZSwgY29udHJpYnV0b3JzKToKKyAgICBpZiBub3QgY29udHJpYnV0b3JzOgorICAg
ICAgICByZXR1cm4KKyAgICBwcmludCAjIE5ld2xpbmUgYmVmb3JlIHRoZSBsaXN0CisgICAgcHJp
bnQgdGl0bGUKKyAgICBmb3IgY29udHJpYnV0b3IgaW4gc29ydGVkKGNvbnRyaWJ1dG9ycywga2V5
PWxhbWJkYSBjb250cmliOiBjb250cmliLmZ1bGxfbmFtZSk6CisgICAgICAgIHByaW50IHUnezoz
Mn0ge30nLmZvcm1hdChjb250cmlidXRvci5mdWxsX25hbWUsIGNvbnRyaWJ1dG9yLmJ1Z3ppbGxh
X2VtYWlsKCkpCiAKIGNsYXNzIENvbW1pdHRlckxpc3RGcm9tTWFpbGluZ0xpc3Qob2JqZWN0KToK
ICAgICBjb21taXR0ZXJzX2xpc3RfdXJsID0gImh0dHA6Ly9saXN0cy53ZWJraXQub3JnL21haWxt
YW4vcm9zdGVyL3dlYmtpdC1jb21taXR0ZXJzIgpAQCAtMTAwLDcgKzEwNSw3IEBAIGNsYXNzIENv
bW1pdHRlckxpc3RGcm9tTWFpbGluZ0xpc3Qob2JqZWN0KToKICAgICAgICAgbGlzdF9uYW1lID0g
IndlYmtpdC1jb21taXR0ZXJzQGxpc3RzLndlYmtpdC5vcmciCiAKICAgICAgICAgbWlzc2luZ19m
cm9tX21haWxpbmdfbGlzdCA9IHNlbGYuX2NvbW1pdGVyc19ub3RfZm91bmRfaW5fZW1haWxfbGlz
dChjb21taXR0ZXJfbGlzdC5jb21taXR0ZXJzKCksIGNvbW1pdHRlcl9lbWFpbHMpCi0gICAgICAg
IHByaW50X2xpc3RfaWZfbm9uX2VtcHR5KCJDb21taXR0ZXJzIG1pc3NpbmcgZnJvbSAlczoiICUg
bGlzdF9uYW1lLCBtaXNzaW5nX2Zyb21fbWFpbGluZ19saXN0KQorICAgICAgICBwcmludF9jb250
cmlidXRvcl9saXN0X2lmX25vbl9lbXB0eSgiQ29tbWl0dGVycyBtaXNzaW5nIGZyb20gJXM6IiAl
IGxpc3RfbmFtZSwgbWlzc2luZ19mcm9tX21haWxpbmdfbGlzdCkKIAogICAgICAgICB1c2Vyc19t
aXNzaW5nX2Zyb21fY29tbWl0dGVycyA9IHNlbGYuX2VtYWlsc19ub3RfZm91bmRfaW5fY29tbWl0
dGVyX2xpc3QoY29tbWl0dGVyX2xpc3QuY29tbWl0dGVycygpLCBjb21taXR0ZXJfZW1haWxzKQog
ICAgICAgICBwcmludF9saXN0X2lmX25vbl9lbXB0eSgiU3ViY3JpYmVycyB0byAlcyBtaXNzaW5n
IGZyb20gY29udHJpYnV0b3JzLmpzb246IiAlIGxpc3RfbmFtZSwgdXNlcnNfbWlzc2luZ19mcm9t
X2NvbW1pdHRlcnMpCkBAIC0xMTAsMTMgKzExNSwxMyBAQCBjbGFzcyBDb21taXR0ZXJMaXN0RnJv
bU1haWxpbmdMaXN0KG9iamVjdCk6CiAgICAgICAgIGxpc3RfbmFtZSA9ICJ3ZWJraXQtcmV2aWV3
ZXJzQGxpc3RzLndlYmtpdC5vcmciCiAKICAgICAgICAgbWlzc2luZ19mcm9tX21haWxpbmdfbGlz
dCA9IHNlbGYuX2NvbW1pdGVyc19ub3RfZm91bmRfaW5fZW1haWxfbGlzdChjb21taXR0ZXJfbGlz
dC5yZXZpZXdlcnMoKSwgcmV2aWV3ZXJfZW1haWxzKQotICAgICAgICBwcmludF9saXN0X2lmX25v
bl9lbXB0eSgiUmV2aWV3ZXJzIG1pc3NpbmcgZnJvbSAlczoiICUgbGlzdF9uYW1lLCBtaXNzaW5n
X2Zyb21fbWFpbGluZ19saXN0KQorICAgICAgICBwcmludF9jb250cmlidXRvcl9saXN0X2lmX25v
bl9lbXB0eSgiUmV2aWV3ZXJzIG1pc3NpbmcgZnJvbSAlczoiICUgbGlzdF9uYW1lLCBtaXNzaW5n
X2Zyb21fbWFpbGluZ19saXN0KQogCiAgICAgICAgIG1pc3NpbmdfZnJvbV9yZXZpZXdlcnMgPSBz
ZWxmLl9lbWFpbHNfbm90X2ZvdW5kX2luX2NvbW1pdHRlcl9saXN0KGNvbW1pdHRlcl9saXN0LnJl
dmlld2VycygpLCByZXZpZXdlcl9lbWFpbHMpCiAgICAgICAgIHByaW50X2xpc3RfaWZfbm9uX2Vt
cHR5KCJTdWJjcmliZXJzIHRvICVzIG1pc3NpbmcgZnJvbSByZXZpZXdlcnMgaW4gY29udHJpYnV0
b3JzLmpzb246IiAlIGxpc3RfbmFtZSwgbWlzc2luZ19mcm9tX3Jldmlld2VycykKIAogICAgICAg
ICBtaXNzaW5nX2Zyb21fY29tbWl0dGVycyA9IHNlbGYuX2VtYWlsc19ub3RfZm91bmRfaW5fY29t
bWl0dGVyX2xpc3QoY29tbWl0dGVyX2xpc3QuY29tbWl0dGVycygpLCByZXZpZXdlcl9lbWFpbHMp
Ci0gICAgICAgIHByaW50X2xpc3RfaWZfbm9uX2VtcHR5KCJTdWJjcmliZXJzIHRvICVzIGNvbXBs
ZXRlbHkgbWlzc2luZyBmcm9tIGNvbnRyaWJ1dG9ycy5qc29uOiIgJSBsaXN0X25hbWUsIG1pc3Np
bmdfZnJvbV9jb21taXR0ZXJzKQorICAgICAgICBwcmludF9saXN0X2lmX25vbl9lbXB0eSgiU3Vi
Y3JpYmVycyB0byAlcyBtaXNzaW5nIGZyb20gY29tbWl0dGVycyBpbiBjb250cmlidXRvcnMuanNv
bjoiICUgbGlzdF9uYW1lLCBtaXNzaW5nX2Zyb21fY29tbWl0dGVycykKIAogCiBjbGFzcyBDb21t
aXR0ZXJMaXN0RnJvbUdpdChvYmplY3QpOgpAQCAtMTYxLDYgKzE2Niw3IEBAIGNsYXNzIENvbW1p
dHRlckxpc3RGcm9tR2l0KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAg
ICBzZWxmLl9sYXN0X2NvbW1pdF90aW1lX2J5X2F1dGhvcl9jYWNoZSA9IHt9CiAKKyAgICAjIEZJ
WE1FOiB0aGlzIGZ1bmN0aW9uIGZhaWxzIHRvIGZpbmQgYXV0aG9ycyBvZiBjb21taXQtcXVldWUg
cGF0Y2hlcy4KICAgICBkZWYgX2ZldGNoX2F1dGhvcnNfYW5kX2xhc3RfY29tbWl0X3RpbWVfZnJv
bV9naXRfbG9nKHNlbGYpOgogICAgICAgICBsYXN0X2NvbW1pdF9kYXRlcyA9IHt9CiAgICAgICAg
IGdpdF9sb2dfYXJncyA9IFsnZ2l0JywgJ2xvZycsICctLXJldmVyc2UnLCAnLS1wcmV0dHk9Zm9y
bWF0OiVhZSAlYXQnXQpAQCAtMTc1LDcgKzE4MSw3IEBAIGNsYXNzIENvbW1pdHRlckxpc3RGcm9t
R2l0KG9iamVjdCk6CiAKICAgICAgICAgICAgIG1hdGNoX3Jlc3VsdCA9IGxpbmVfcmVnZXhwLm1h
dGNoKG91dHB1dF9saW5lKQogICAgICAgICAgICAgaWYgbm90IG1hdGNoX3Jlc3VsdDoKLSAgICAg
ICAgICAgICAgICBfbG9nLmVycm9yKCJGYWlsZWQgdG8gbWF0Y2ggbGluZTogJXMiICUgb3V0cHV0
X2xpbmUpCisgICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcigiRmFpbGVkIHRvIG1hdGNoIGxp
bmU6ICVzIiAlIG91dHB1dF9saW5lKQogICAgICAgICAgICAgICAgIGV4aXQoMSkKICAgICAgICAg
ICAgIGxhc3RfY29tbWl0X2RhdGVzW21hdGNoX3Jlc3VsdC5ncm91cCgnYXV0aG9yJyldID0gZmxv
YXQobWF0Y2hfcmVzdWx0Lmdyb3VwKCd0aW1lc3RhbXAnKSkKIApAQCAtMTk3LDcgKzIwMyw3IEBA
IGNsYXNzIENvbW1pdHRlckxpc3RGcm9tR2l0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIyBO
byBrbm93biBlbWFpbCBtYXBwaW5nLCBsaWtlbHkgbm90IGFuIGFjdGl2ZSBjb21taXR0ZXIuICBX
ZSBjb3VsZCBsb2cgaGVyZS4KICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAg
ICAjIF9sb2cuaW5mbygiJXMgLT4gJXMiICUgKGF1dGhvciwgYXV0aG9yX2VtYWlsKSkgIyBGb3Ig
c2FuaXR5IGNoZWNraW5nLgorICAgICAgICAgICAgIyBsb2dnaW5nLmluZm8oIiVzIC0+ICVzIiAl
IChhdXRob3IsIGF1dGhvcl9lbWFpbCkpICMgRm9yIHNhbml0eSBjaGVja2luZy4KICAgICAgICAg
ICAgIG5vX2VtYWlsX2NvbW1pdF90aW1lID0gc2VsZi5fbGFzdF9jb21taXRfdGltZV9ieV9hdXRo
b3JfY2FjaGUuZ2V0KGF1dGhvcikKICAgICAgICAgICAgIGVtYWlsX2NvbW1pdF90aW1lID0gc2Vs
Zi5fbGFzdF9jb21taXRfdGltZV9ieV9hdXRob3JfY2FjaGUuZ2V0KGF1dGhvcl9lbWFpbCkKICAg
ICAgICAgICAgICMgV2UgY29tcGFyZSB0aGUgdGltZXN0YW1wcyBmb3IgZXh0cmEgc2FuaXR5IGV2
ZW4gdGhvdWdoIHdlIGNvdWxkIGFzc3VtZSBjb21taXRzIGJlZm9yZSBlbWFpbCBhZGRyZXNzIHdl
cmUgdXNlZCBmb3IgbG9naW4gYXJlIGFsd2F5cyBnb2luZyB0byBiZSBvbGRlci4KQEAgLTIxNCwx
OCArMjIwLDQ1IEBAIGNsYXNzIENvbW1pdHRlckxpc3RGcm9tR2l0KG9iamVjdCk6CiAKICAgICBA
c3RhdGljbWV0aG9kCiAgICAgZGVmIF9wcmludF90aHJlZV9jb2x1bW5fcm93KHdpZHRocywgdmFs
dWVzKToKLSAgICAgICAgcHJpbnQgIiVzJXMlcyIgJSAodmFsdWVzWzBdLmxqdXN0KHdpZHRoc1sw
XSksIHZhbHVlc1sxXS5sanVzdCh3aWR0aHNbMV0pLCB2YWx1ZXNbMl0pCi0KLSAgICBkZWYgcG9z
c2libHlfZXhwaXJlZF9jb21taXR0ZXJzKHNlbGYsIGNvbW1pdHRlcl9saXN0KToKLSAgICAgICAg
YXV0aG9yc19hbmRfbGFzdF9jb21taXRzID0gc2VsZi5fbGFzdF9jb21taXRfYnlfYXV0aG9yKCku
aXRlbXMoKQotICAgICAgICBhdXRob3JzX2FuZF9sYXN0X2NvbW1pdHMuc29ydChsYW1iZGEgYSxi
OiBjbXAoYVsxXSwgYlsxXSksIHJldmVyc2U9VHJ1ZSkKLSAgICAgICAgY29tbWl0dGVyX2N1dG9m
ID0gZGF0ZS50b2RheSgpIC0gdGltZWRlbHRhKGRheXM9MzY1KQotICAgICAgICByZXRpcmVkX2F1
dGhvcnNfYW5kX2xhc3RfY29tbWl0cyA9IFtdCi0gICAgICAgIGZvciAoYXV0aG9yLCBsYXN0X2Nv
bW1pdCkgaW4gYXV0aG9yc19hbmRfbGFzdF9jb21taXRzOgotICAgICAgICAgICAgbGFzdF9jb21t
aXRfZGF0ZSA9IGRhdGUuZnJvbXRpbWVzdGFtcChsYXN0X2NvbW1pdCkKLSAgICAgICAgICAgIGlm
IGNvbW1pdHRlcl9jdXRvZiA+IGxhc3RfY29tbWl0X2RhdGU6Ci0gICAgICAgICAgICAgICAgcmV0
aXJlZF9hdXRob3JzX2FuZF9sYXN0X2NvbW1pdHMuYXBwZW5kKChhdXRob3IsIGxhc3RfY29tbWl0
KSkKLSAgICAgICAgcmV0dXJuIHJldGlyZWRfYXV0aG9yc19hbmRfbGFzdF9jb21taXRzCisgICAg
ICAgIGZvcm1hdF9zdHJpbmcgPSB1J3t7Ont3aWR0aDF9fX0ge3s6e3dpZHRoMn19fSB7e319Jy5m
b3JtYXQod2lkdGgxPXdpZHRoc1swXSwgd2lkdGgyPXdpZHRoc1sxXSkKKyAgICAgICAgcHJpbnQg
Zm9ybWF0X3N0cmluZy5mb3JtYXQodmFsdWVzWzBdLCB2YWx1ZXNbMV0sIHZhbHVlc1syXSkgIyh2
YWx1ZXNbMF0ubGp1c3Qod2lkdGhzWzBdKSwgdmFsdWVzWzFdLmxqdXN0KHdpZHRoc1sxXSksIHZh
bHVlc1syXSkKKworICAgIGRlZiBfZmluZF9jb21taXRfcXVldWVfY29tbWl0X2F1dGhvcihzZWxm
LCBib2R5KToKKyAgICAgICAgcGF0Y2hfYnlfcmVnZXhwID0gcmUuY29tcGlsZShyJ15QYXRjaCBi
eSAoP1A8bmFtZT4uKz8pXHMrPCg/UDxlbWFpbD5bXjw+XSspPiBvbiAoP1A8ZGF0ZT5cZHs0fS1c
ZHsyfS1cZHsyfSkkJywgcmUuTVVMVElMSU5FKQorICAgICAgICBhdXRob3JfbWF0Y2ggPSBwYXRj
aF9ieV9yZWdleHAuc2VhcmNoKGJvZHkpCisgICAgICAgIGlmIG5vdCBhdXRob3JfbWF0Y2g6Cisg
ICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCJDYW4ndCBmaW5kIGF1dGhvciBmb3IgY29tbWl0LXF1
ZXVlIHBhdGNoICIgKyBib2R5KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0
dXJuIGF1dGhvcl9tYXRjaC5ncm91cCgnZW1haWwnKQorICAgIAorICAgIGRlZiBwb3NzaWJseV9p
bmFjdGl2ZV9jb21taXR0ZXJzKHNlbGYsIGNvbW1pdHRlcl9saXN0KToKKyAgICAgICAgR0lUX0NP
TU1JVF9GSUVMRFMgPSBbJ2hhc2gnLCAnYXV0aG9yX25hbWUnLCAnYXV0aG9yX2VtYWlsJywgJ2Jv
ZHknXQorICAgICAgICBHSVRfTE9HX0ZJRUxEUyA9IFsnJUgnLCAnJWFuJywgJyVhZScsICclYidd
CisgICAgICAgIEdJVF9MT0dfRk9STUFUID0gJyV4MWYnLmpvaW4oR0lUX0xPR19GSUVMRFMpICsg
JyV4MWUnCisKKyAgICAgICAgZ2l0X2xvZ19hcmdzID0gWydnaXQnLCAnbG9nJywgJy0tc2luY2U9
MS55ZWFyJywgJy0tZm9ybWF0PXt9Jy5mb3JtYXQoR0lUX0xPR19GT1JNQVQpXQorICAgICAgICBw
cm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihnaXRfbG9nX2FyZ3MsIHN0ZG91dD1zdWJwcm9jZXNz
LlBJUEUpCisgICAgICAgIGdpdF9vdXRwdXQsIGVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQor
ICAgICAgICBnaXRfb3V0cHV0ID0gZ2l0X291dHB1dC5zdHJpcCgnXG5ceDFlJykuc3BsaXQoIlx4
MWUiKQorICAgICAgICBnaXRfb3V0cHV0ID0gW3Jvdy5zdHJpcCgpLnNwbGl0KCJceDFmIikgZm9y
IHJvdyBpbiBnaXRfb3V0cHV0XQorICAgICAgICBjb21taXRzID0gW2RpY3QoemlwKEdJVF9DT01N
SVRfRklFTERTLCByb3cpKSBmb3Igcm93IGluIGdpdF9vdXRwdXRdCisKKyAgICAgICAgY29tbWl0
dGVycyA9IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcnMoKQorCisgICAgICAgIGZvciBjb21taXRf
ZGljdCBpbiBjb21taXRzOgorICAgICAgICAgICAgYXV0aG9yID0gY29tbWl0X2RpY3RbJ2F1dGhv
cl9uYW1lJ10KKyAgICAgICAgICAgIGlmIGF1dGhvciA9PSAnY29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmcnOgorICAgICAgICAgICAgICAgIGF1dGhvciA9IHNlbGYuX2ZpbmRfY29tbWl0X3F1ZXVlX2Nv
bW1pdF9hdXRob3IoY29tbWl0X2RpY3RbJ2JvZHknXSkKKyAgICAgICAgICAgIGNvbW1pdHRlciA9
IGNvbW1pdHRlcl9saXN0LmNvbW1pdHRlcl9ieV9lbWFpbChhdXRob3IpCisgICAgICAgICAgICBp
ZiBjb21taXR0ZXI6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBj
b21taXR0ZXJzLnJlbW92ZShjb21taXR0ZXIpCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3IsIGU6CisgICAgICAgICAgICAgICAgICAgIHBhc3MgIyBNYXkgaGF2ZSByZW1vdmVkIHRo
ZW0gYWxyZWFkeS4KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5k
ZWJ1ZygnY29udHJpYnV0b3JzLmpzb24gaGFzIG5vIGNvbW1pdHRlciB3aXRoIHRoZSBlbWFpbCBh
ZGRyZXNzICcgKyBzdHIoYXV0aG9yKSArICcgKCcgKyBjb21taXRfZGljdFsnaGFzaCddICsgJykn
KQorCisgICAgICAgIHJldHVybiBjb21taXR0ZXJzCiAKICAgICBkZWYgcG9zc2libHlfaW5hY3Rp
dmVfcmV2aWV3ZXJzKHNlbGYsIGNvbW1pdHRlcl9saXN0KToKICAgICAgICAgZ2l0X2xvZ19hcmdz
ID0gWydnaXQnLCAnbG9nJywgJy0tc2luY2U9MS55ZWFyJ10KQEAgLTI1MCwyNSArMjgzLDEzIEBA
IGNsYXNzIENvbW1pdHRlckxpc3RGcm9tR2l0KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIHJl
dmlld2VycwogCi0gICAgZGVmIHByaW50X3Bvc3NpYmx5X2V4cGlyZWRfY29tbWl0dGVycyhzZWxm
LCBjb21taXR0ZXJfbGlzdCk6Ci0gICAgICAgIHJldGlyZWRfYXV0aG9yc19hbmRfbGFzdF9jb21t
aXRzID0gc2VsZi5wb3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMoY29tbWl0dGVyX2xpc3QpCi0g
ICAgICAgIGNvbHVtbl93aWR0aHMgPSBbMTMsIDI1XQotICAgICAgICBwcmludAotICAgICAgICBw
cmludCAiQ29tbWl0dGVycyB3aG8gaGF2ZSBub3QgY29tbWl0dGVkIHdpdGhpbiBvbmUgeWVhcjoi
Ci0gICAgICAgIHNlbGYuX3ByaW50X3RocmVlX2NvbHVtbl9yb3coY29sdW1uX3dpZHRocywgKCJM
YXN0IENvbW1pdCIsICJDb21taXR0ZXIgRW1haWwiLCAiQ29tbWl0dGVyIFJlY29yZCIpKQotICAg
ICAgICBmb3IgKGF1dGhvciwgbGFzdF9jb21taXQpIGluIHJldGlyZWRfYXV0aG9yc19hbmRfbGFz
dF9jb21taXRzOgotICAgICAgICAgICAgY29tbWl0dGVyX3JlY29yZCA9IGNvbW1pdHRlcl9saXN0
LmNvbW1pdHRlcl9ieV9lbWFpbChhdXRob3IpCi0gICAgICAgICAgICBsYXN0X2NvbW1pdF9kYXRl
ID0gZGF0ZS5mcm9tdGltZXN0YW1wKGxhc3RfY29tbWl0KQotICAgICAgICAgICAgc2VsZi5fcHJp
bnRfdGhyZWVfY29sdW1uX3Jvdyhjb2x1bW5fd2lkdGhzLCAoc3RyKGxhc3RfY29tbWl0X2RhdGUp
LCBhdXRob3IsIGNvbW1pdHRlcl9yZWNvcmQpKQorICAgIGRlZiBwcmludF9wb3NzaWJseV9pbmFj
dGl2ZV9jb21taXR0ZXJzKHNlbGYsIGNvbW1pdHRlcl9saXN0KToKKyAgICAgICAgaW5hY3RpdmVf
Y29tbWl0dGVycyA9IHNlbGYucG9zc2libHlfaW5hY3RpdmVfY29tbWl0dGVycyhjb21taXR0ZXJf
bGlzdCkKKyAgICAgICAgcHJpbnRfY29udHJpYnV0b3JfbGlzdF9pZl9ub25fZW1wdHkoIkNvbW1p
dHRlcnMgd2hvIGhhdmUgbm90IGNvbW1pdHRlZCB3aXRoaW4gb25lIHllYXI6IiwgaW5hY3RpdmVf
Y29tbWl0dGVycykKIAogICAgIGRlZiBwcmludF9wb3NzaWJseV9pbmFjdGl2ZV9yZXZpZXdlcnMo
c2VsZiwgY29tbWl0dGVyX2xpc3QpOgogICAgICAgICBpbmFjdGl2ZV9yZXZpZXdlcnMgPSBzZWxm
LnBvc3NpYmx5X2luYWN0aXZlX3Jldmlld2Vycyhjb21taXR0ZXJfbGlzdCkKLSAgICAgICAgCi0g
ICAgICAgIGNvbHVtbl93aWR0aHMgPSBbMTMsIDI1XQotICAgICAgICBwcmludAotICAgICAgICBw
cmludCAiUmV2aWV3ZXJzIHdobyBoYXZlIG5vdCByZXZpZXdlZCB3aXRoaW4gb25lIHllYXI6Igot
ICAgICAgICBmb3IgY29udHJpYnV0b3IgaW4gaW5hY3RpdmVfcmV2aWV3ZXJzOgotICAgICAgICAg
ICAgcHJpbnQgIlwie31cIiB7fSIuZm9ybWF0KGNvbnRyaWJ1dG9yLmZ1bGxfbmFtZS5lbmNvZGUo
InV0Zi04IiksIGNvbnRyaWJ1dG9yLmJ1Z3ppbGxhX2VtYWlsKCkpCisgICAgICAgIHByaW50X2Nv
bnRyaWJ1dG9yX2xpc3RfaWZfbm9uX2VtcHR5KCJSZXZpZXdlcnMgd2hvIGhhdmUgbm90IHJldmll
d2VkIHdpdGhpbiBvbmUgeWVhcjoiLCBpbmFjdGl2ZV9yZXZpZXdlcnMpCiAKICAgICBkZWYgcHJp
bnRfY29tbWl0dGVyc19taXNzaW5nX2Zyb21fY29tbWl0dGVyX2xpc3Qoc2VsZiwgY29tbWl0dGVy
X2xpc3QpOgogICAgICAgICBtaXNzaW5nX2Zyb21fY29udHJpYnV0b3JzX2pzb24gPSBbXQpAQCAt
Mjg2LDcgKzMwNyw3IEBAIGNsYXNzIENvbW1pdHRlckxpc3RGcm9tR2l0KG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgbmV2ZXJfY29tbWl0dGVkLmFwcGVuZChjb21taXR0ZXIpCiAKICAgICAgICAg
cHJpbnRfbGlzdF9pZl9ub25fZW1wdHkoIkhpc3RvcmljYWwgY29tbWl0dGVycyBtaXNzaW5nIGZy
b20gY29udHJpYnV0b3JzLmpzb246IiwgbWlzc2luZ19mcm9tX2NvbnRyaWJ1dG9yc19qc29uKQot
ICAgICAgICBwcmludF9saXN0X2lmX25vbl9lbXB0eSgiQ29tbWl0dGVycyBpbiBjb250cmlidXRv
cnMuanNvbiB3aG8gaGF2ZSBuZXZlciBjb21taXR0ZWQ6IiwgbmV2ZXJfY29tbWl0dGVkKQorICAg
ICAgICBwcmludF9jb250cmlidXRvcl9saXN0X2lmX25vbl9lbXB0eSgiQ29tbWl0dGVycyBpbiBj
b250cmlidXRvcnMuanNvbiB3aG8gaGF2ZSBuZXZlciBjb21taXR0ZWQ6IiwgbmV2ZXJfY29tbWl0
dGVkKQogCiAKIGNsYXNzIENvbW1pdHRlckxpc3RCdWd6aWxsYUNoZWNrZXIob2JqZWN0KToKQEAg
LTMwMywxNCArMzI0LDcxIEBAIGNsYXNzIENvbW1pdHRlckxpc3RCdWd6aWxsYUNoZWNrZXIob2Jq
ZWN0KToKICAgICAgICAgcHJpbnRfbGlzdF9pZl9ub25fZW1wdHkoIkNvbW1pdHRlcnMgd2l0aCBp
bnZhbGlkIGJ1Z3ppbGxhIGVtYWlsOiIsIGNvbW1pdHRlcnNfd2l0aF9pbnZhbGlkX2J1Z3ppbGxh
X2VtYWlsKQogCiAKK2RlZiByZXRpcmVfaW5hY3RpdmVfY29udHJpYnV0b3JzKGNvbW1pdHRlcl9s
aXN0LCBzdm5fY29tbWl0dGVyX2xpc3QpOgorICAgIHByaW50ICJGaW5kaW5nIGluYWN0aXZlIHJl
dmlld2VycyBhbmQgY29tbWl0dGVycyAodGhpcyBtYXkgdGFrZSBhIHdoaWxlKS4uLiIKKyAgICBp
bmFjdGl2ZV9yZXZpZXdlcnMgPSBzdm5fY29tbWl0dGVyX2xpc3QucG9zc2libHlfaW5hY3RpdmVf
cmV2aWV3ZXJzKGNvbW1pdHRlcl9saXN0KQorICAgIGluYWN0aXZlX2NvbW1pdHRlcnMgPSBzdm5f
Y29tbWl0dGVyX2xpc3QucG9zc2libHlfaW5hY3RpdmVfY29tbWl0dGVycyhjb21taXR0ZXJfbGlz
dCkKKworICAgIHN0YXR1c19jaGFuZ2VkID0gRmFsc2UKKworICAgIHByaW50CisgICAgcHJpbnQg
Ik1ha2luZyB0aGUgZm9sbG93aW5nIHJldmlld2VycyBpbmFjdGl2ZToiCisgICAgZm9yIGNvbnRy
aWJ1dG9yIGluIGluYWN0aXZlX3Jldmlld2VyczoKKyAgICAgICAgaWYgY29udHJpYnV0b3IuaW5h
Y3RpdmU6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBub3QgY29udHJpYnV0b3Ig
aW4gaW5hY3RpdmVfY29tbWl0dGVyczoKKyAgICAgICAgICAgIHByaW50KHUiSW5hY3RpdmUgcmV2
aWV3ZXIgY29tbWl0dGVkLCBjb25zaWRlcmVkIGFjdGl2ZTogIiArIGNvbnRyaWJ1dG9yLmZ1bGxf
bmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KHUiUmV0aXJpbmcgcmV2aWV3
ZXI6ICIgKyBjb250cmlidXRvci5mdWxsX25hbWUpCisgICAgICAgICAgICBjb250cmlidXRvci5p
bmFjdGl2ZSA9IFRydWUKKyAgICAgICAgICAgIHN0YXR1c19jaGFuZ2VkID0gVHJ1ZQorICAgIAor
ICAgIHByaW50CisgICAgcHJpbnQgIk1ha2luZyB0aGUgZm9sbG93aW5nIGNvbW1pdHRlcnMgaW5h
Y3RpdmU6IgorICAgIGZvciBjb250cmlidXRvciBpbiBpbmFjdGl2ZV9jb21taXR0ZXJzOgorICAg
ICAgICBpZiBjb250cmlidXRvci5pbmFjdGl2ZToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgIGlmIGNvbnRyaWJ1dG9yLmNhbl9yZXZpZXcgYW5kIG5vdCBjb250cmlidXRvciBpbiBpbmFj
dGl2ZV9yZXZpZXdlcnM6CisgICAgICAgICAgICBwcmludCh1IkluYWN0aXZlIGNvbW1pdHRlciBy
ZXZpZXdlZCwgY29uc2lkZXJlZCBhY3RpdmU6ICIgKyBjb250cmlidXRvci5mdWxsX25hbWUpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCh1IlJldGlyaW5nIGNvbW1pdHRlcjogIiAr
IGNvbnRyaWJ1dG9yLmZ1bGxfbmFtZSkKKyAgICAgICAgICAgIGNvbnRyaWJ1dG9yLmluYWN0aXZl
ID0gVHJ1ZQorICAgICAgICAgICAgc3RhdHVzX2NoYW5nZWQgPSBUcnVlCisKKyAgICBpZiBzdGF0
dXNfY2hhbmdlZDoKKyAgICAgICAgcHJpbnQgIlVwZGF0ZWQgY29udHJpYnV0b3JzLmpzb24uIFRo
ZXNlIGNoYW5nZXMgc2hvdWxkIGJlIGNoZWNrZWQgaW4uIgorICAgICAgICBjb21taXR0ZXJfbGlz
dC5yZWZvcm1hdF9pbl9wbGFjZSgpCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgIk5vIHN0YXR1
cyBjaGFuZ2UgZm9yIGFueSBjb250cmlidXRvci4iCisKKworZGVmIENvbmZpZ3VyZUxvZ2dpbmco
bG9nX2xldmVsX25hbWUpOgorICAgICIiIkNvbmZpZ3VyZSBsb2dnaW5nIGxldmVsIGFuZCBmb3Jt
YXQuCisKKyAgICBBcmdzOgorICAgICAgICBsb2dfbGV2ZWxfbmFtZTogJ2RlYnVnJywgJ2luZm8n
LCAnd2FybmluZycsICdlcnJvcicsIG9yICdjcml0aWNhbCcuCisgICAgIiIiCisgICAgaWYgbG9n
Z2luZy5yb290LmhhbmRsZXJzOgorICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdBIGxvZ2dpbmcg
bWV0aG9kIChlLmcuICJsb2dnaW5nLndhcm4oLi4uKSIpJworICAgICAgICAgICAgICAgICAgICAg
JyB3YXMgY2FsbGVkIGJlZm9yZSBsb2dnaW5nIHdhcyBjb25maWd1cmVkLicpCisgICAgbG9nX2xl
dmVsID0gZ2V0YXR0cihsb2dnaW5nLCBsb2dfbGV2ZWxfbmFtZS51cHBlcigpKQorICAgIGxvZ19m
b3JtYXQgPSAnJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG1lc3NhZ2UpcycKKyAgICBsb2dn
aW5nLmJhc2ljQ29uZmlnKGxldmVsPWxvZ19sZXZlbCwgZm9ybWF0PWxvZ19mb3JtYXQpCisKIGRl
ZiBtYWluKCk6CiAgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX29w
dGlvbigiLWIiLCAiLS1jaGVjay1idWd6aWxsYS1lbWFpbHMiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBoZWxwPSJDaGVjayB0aGUgYnVnemlsbGFfZW1haWwgZm9yIGVhY2ggY29tbWl0dGVyIGFnYWlu
c3QgYnVncy53ZWJraXQub3JnIikKICAgICBwYXJzZXIuYWRkX29wdGlvbigiLWQiLCAiLS1kdW1w
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRHVtcCB0aGUgY29udHJpYnV0b3IgbGlzdCBh
cyBKU09OIHRvIHN0ZG91dCAoc3VpdGFibGUgZm9yIHNhdmluZyB0byBjb250cmlidXRvcnMuanNv
bikiKQogICAgIHBhcnNlci5hZGRfb3B0aW9uKCItYyIsICItLWNhbm9uaWNhbGl6ZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkNhbm9uaWNhbGl6ZSBjb250cmlidXRvcnMuanNvbiwgcmV3
cml0aW5nIGl0IGluLXBsYWNlIikKKyAgICBwYXJzZXIuYWRkX29wdGlvbigiLXIiLCAiLS1yZXRp
cmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJSZXRpcmUgcmV2aWV3ZXJzIGFuZCBjb21t
aXR0ZXJzIHdobyBoYXZlIG5vdCBiZWVuIGFjdGl2ZSBpbiB0aGUgcGFzdCB5ZWFyIikKKworICAg
IGxvZ19sZXZlbHMgPSAoJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICdlcnJvcicsICdjcml0
aWNhbCcpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbG9nX2xldmVsJywgZGVmYXVs
dD0nZXJyb3InLCBhY3Rpb249J3N0b3JlJywgdHlwZT0nY2hvaWNlJywgY2hvaWNlcz1sb2dfbGV2
ZWxzLCBoZWxwPSdNaW5pbXVtIHZlcmJvc2l0eSBsZXZlbCB0byBsb2cnKQogCiAgICAgKG9wdGlv
bnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQogCisgICAgQ29uZmlndXJlTG9nZ2luZyhv
cHRpb25zLmxvZ19sZXZlbCkKKwogICAgIGNvbW1pdHRlcl9saXN0ID0gQ29tbWl0dGVyTGlzdCgp
CiAgICAgaWYgb3B0aW9ucy5kdW1wOgogICAgICAgICBwcmludCBjb21taXR0ZXJfbGlzdC5hc19q
c29uKCkKQEAgLTMyMiw3ICs0MDAsOCBAQCBkZWYgbWFpbigpOgogICAgICAgICBwcmludCAiRG9u
ZSIKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBDb21taXR0ZXJMaXN0RnJvbU1haWxpbmdMaXN0
KCkuY2hlY2tfZm9yX2VtYWlsc19taXNzaW5nX2Zyb21fbGlzdChjb21taXR0ZXJfbGlzdCkKKyAg
ICBpZiBub3Qgb3B0aW9ucy5yZXRpcmU6CisgICAgICAgIENvbW1pdHRlckxpc3RGcm9tTWFpbGlu
Z0xpc3QoKS5jaGVja19mb3JfZW1haWxzX21pc3NpbmdfZnJvbV9saXN0KGNvbW1pdHRlcl9saXN0
KQogIAogICAgIGlmIG5vdCBHaXQuaW5fd29ya2luZ19kaXJlY3RvcnkoIi4iKToKICAgICAgICAg
cHJpbnQgIiIiXG5cbldBUk5JTkc6IHZhbGlkYXRlLWNvbW1pdHRlci1saXN0cyByZXF1aXJlcyBh
IGdpdCBjaGVja291dC4KQEAgLTMzNCw3ICs0MTMsMTIgQEAgVGhlIGZvbGxvd2luZyBjaGVja3Mg
YXJlIGRpc2FibGVkOgogICAgICAgICByZXR1cm4gMQogCiAgICAgc3ZuX2NvbW1pdHRlcl9saXN0
ID0gQ29tbWl0dGVyTGlzdEZyb21HaXQoKQotICAgIHN2bl9jb21taXR0ZXJfbGlzdC5wcmludF9w
b3NzaWJseV9leHBpcmVkX2NvbW1pdHRlcnMoY29tbWl0dGVyX2xpc3QpCisKKyAgICBpZiBvcHRp
b25zLnJldGlyZToKKyAgICAgICAgcmV0aXJlX2luYWN0aXZlX2NvbnRyaWJ1dG9ycyhjb21taXR0
ZXJfbGlzdCwgc3ZuX2NvbW1pdHRlcl9saXN0KQorICAgICAgICByZXR1cm4gMAorCisgICAgc3Zu
X2NvbW1pdHRlcl9saXN0LnByaW50X3Bvc3NpYmx5X2luYWN0aXZlX2NvbW1pdHRlcnMoY29tbWl0
dGVyX2xpc3QpCiAgICAgc3ZuX2NvbW1pdHRlcl9saXN0LnByaW50X3Bvc3NpYmx5X2luYWN0aXZl
X3Jldmlld2Vycyhjb21taXR0ZXJfbGlzdCkKICAgICBzdm5fY29tbWl0dGVyX2xpc3QucHJpbnRf
Y29tbWl0dGVyc19taXNzaW5nX2Zyb21fY29tbWl0dGVyX2xpc3QoY29tbWl0dGVyX2xpc3QpCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0
ZXJzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMu
cHkKaW5kZXggYWM0ZmJiY2YxYjEzYjQzMTFkOGIwYTU3OTdmNDFmNThlZTY0YTEwOS4uN2UyMjli
M2MzMTYwNjNlZWUyOGZhMjQ5MjIyNDViMmY0NzVkYjdhZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkKQEAgLTM4LDcgKzM4LDcg
QEAgZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogCiBjbGFz
cyBDb250cmlidXRvcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBlbWFp
bF9vcl9lbWFpbHMsIGlyY19uaWNrbmFtZV9vcl9uaWNrbmFtZXM9Tm9uZSwgYWxpYXNfb3JfYWxp
YXNlcz1Ob25lLCBleHBlcnRpc2U9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUs
IGVtYWlsX29yX2VtYWlscywgaXJjX25pY2tuYW1lX29yX25pY2tuYW1lcz1Ob25lLCBhbGlhc19v
cl9hbGlhc2VzPU5vbmUsIGV4cGVydGlzZT1Ob25lLCBpbmFjdGl2ZT1GYWxzZSk6CiAgICAgICAg
IGFzc2VydChuYW1lKQogICAgICAgICBhc3NlcnQoZW1haWxfb3JfZW1haWxzKQogICAgICAgICBz
ZWxmLmZ1bGxfbmFtZSA9IG5hbWUKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgQ29udHJpYnV0b3Io
b2JqZWN0KToKICAgICAgICAgc2VsZi5leHBlcnRpc2UgPSBleHBlcnRpc2UKICAgICAgICAgc2Vs
Zi5jYW5fY29tbWl0ID0gRmFsc2UKICAgICAgICAgc2VsZi5jYW5fcmV2aWV3ID0gRmFsc2UKKyAg
ICAgICAgc2VsZi5pbmFjdGl2ZSA9IGluYWN0aXZlCiAKICAgICBkZWYgYnVnemlsbGFfZW1haWwo
c2VsZik6CiAgICAgICAgICMgRklYTUU6IFdlJ3JlIGFzc3VtaW5nIHRoZSBmaXJzdCBlbWFpbCBp
cyBhIHZhbGlkIGJ1Z3ppbGxhIGVtYWlsLApAQCAtMTM1LDEwICsxMzYsMTEgQEAgY2xhc3MgQ29u
dHJpYnV0b3Iob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5hbGlhc2VzOgogICAgICAgICAgICAg
aW5mb1siYWxpYXNlcyJdID0gc2VsZi5hbGlhc2VzCiAKKyAgICAgICAgaW5hY3RpdmVfcHJlZml4
ID0gImluYWN0aXZlLSIgaWYgc2VsZi5pbmFjdGl2ZSBlbHNlICIiCiAgICAgICAgIGlmIHNlbGYu
Y2FuX3JldmlldzoKLSAgICAgICAgICAgIGluZm9bInN0YXR1cyJdID0gInJldmlld2VyIgorICAg
ICAgICAgICAgaW5mb1sic3RhdHVzIl0gPSBpbmFjdGl2ZV9wcmVmaXggKyAicmV2aWV3ZXIiCiAg
ICAgICAgIGVsaWYgc2VsZi5jYW5fY29tbWl0OgotICAgICAgICAgICAgaW5mb1sic3RhdHVzIl0g
PSAiY29tbWl0dGVyIgorICAgICAgICAgICAgaW5mb1sic3RhdHVzIl0gPSBpbmFjdGl2ZV9wcmVm
aXggKyAiY29tbWl0dGVyIgogCiAgICAgICAgIGlmIHNlbGYuaXJjX25pY2tuYW1lczoKICAgICAg
ICAgICAgIGluZm9bIm5pY2tzIl0gPSBzZWxmLmlyY19uaWNrbmFtZXMKQEAgLTE1MCwxNCArMTUy
LDE0IEBAIGNsYXNzIENvbnRyaWJ1dG9yKG9iamVjdCk6CiAKIAogY2xhc3MgQ29tbWl0dGVyKENv
bnRyaWJ1dG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZW1haWxfb3JfZW1haWxz
LCBpcmNfbmlja25hbWU9Tm9uZSwgYWxpYXNfb3JfYWxpYXNlcz1Ob25lLCBleHBlcnRpc2U9Tm9u
ZSk6Ci0gICAgICAgIENvbnRyaWJ1dG9yLl9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2Vt
YWlscywgaXJjX25pY2tuYW1lLCBhbGlhc19vcl9hbGlhc2VzLCBleHBlcnRpc2UpCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywgaXJjX25pY2tuYW1lPU5vbmUs
IGFsaWFzX29yX2FsaWFzZXM9Tm9uZSwgZXhwZXJ0aXNlPU5vbmUsIGluYWN0aXZlPUZhbHNlKToK
KyAgICAgICAgQ29udHJpYnV0b3IuX19pbml0X18oc2VsZiwgbmFtZSwgZW1haWxfb3JfZW1haWxz
LCBpcmNfbmlja25hbWUsIGFsaWFzX29yX2FsaWFzZXMsIGV4cGVydGlzZSwgaW5hY3RpdmUpCiAg
ICAgICAgIHNlbGYuY2FuX2NvbW1pdCA9IFRydWUKIAogCiBjbGFzcyBSZXZpZXdlcihDb21taXR0
ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBlbWFpbF9vcl9lbWFpbHMsIGlyY19u
aWNrbmFtZT1Ob25lLCBhbGlhc19vcl9hbGlhc2VzPU5vbmUsIGV4cGVydGlzZT1Ob25lKToKLSAg
ICAgICAgQ29tbWl0dGVyLl9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywgaXJj
X25pY2tuYW1lLCBhbGlhc19vcl9hbGlhc2VzLCBleHBlcnRpc2UpCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywgaXJjX25pY2tuYW1lPU5vbmUsIGFsaWFzX29y
X2FsaWFzZXM9Tm9uZSwgZXhwZXJ0aXNlPU5vbmUsIGluYWN0aXZlPUZhbHNlKToKKyAgICAgICAg
Q29tbWl0dGVyLl9faW5pdF9fKHNlbGYsIG5hbWUsIGVtYWlsX29yX2VtYWlscywgaXJjX25pY2tu
YW1lLCBhbGlhc19vcl9hbGlhc2VzLCBleHBlcnRpc2UsIGluYWN0aXZlKQogICAgICAgICBzZWxm
LmNhbl9yZXZpZXcgPSBUcnVlCiAKIApAQCAtMTkyLDE1ICsxOTQsMjAgQEAgY2xhc3MgQ29tbWl0
dGVyTGlzdChvYmplY3QpOgogICAgICAgICBmb3IgbmFtZSwgZGF0YSBpbiBjb250cmlidXRvcnMu
aXRlcml0ZW1zKCk6CiAgICAgICAgICAgICBjb250cmlidXRvciA9IE5vbmUKICAgICAgICAgICAg
IHN0YXR1cyA9IGRhdGEuZ2V0KCdzdGF0dXMnKQorICAgICAgICAgICAgaW5hY3RpdmUgPSBGYWxz
ZQorICAgICAgICAgICAgaWYgc3RhdHVzIGFuZCBzdGF0dXMuc3RhcnRzd2l0aCgiaW5hY3RpdmUt
Iik6CisgICAgICAgICAgICAgICAgaW5hY3RpdmUgPSBUcnVlCisgICAgICAgICAgICAgICAgc3Rh
dHVzID0gc3RhdHVzW2xlbigiaW5hY3RpdmUtIik6XQorCiAgICAgICAgICAgICBpZiBzdGF0dXMg
PT0gInJldmlld2VyIjoKLSAgICAgICAgICAgICAgICBjb250cmlidXRvciA9IFJldmlld2VyKG5h
bWUsIGRhdGEuZ2V0KCdlbWFpbHMnKSwgZGF0YS5nZXQoJ25pY2tzJyksIGRhdGEuZ2V0KCdhbGlh
c2VzJyksIGRhdGEuZ2V0KCdleHBlcnRpc2UnKSkKKyAgICAgICAgICAgICAgICBjb250cmlidXRv
ciA9IFJldmlld2VyKG5hbWUsIGRhdGEuZ2V0KCdlbWFpbHMnKSwgZGF0YS5nZXQoJ25pY2tzJyks
IGRhdGEuZ2V0KCdhbGlhc2VzJyksIGRhdGEuZ2V0KCdleHBlcnRpc2UnKSwgaW5hY3RpdmUpCiAg
ICAgICAgICAgICAgICAgc2VsZi5fcmV2aWV3ZXJzLmFwcGVuZChjb250cmlidXRvcikKICAgICAg
ICAgICAgICAgICBzZWxmLl9jb21taXR0ZXJzLmFwcGVuZChjb250cmlidXRvcikKICAgICAgICAg
ICAgIGVsaWYgc3RhdHVzID09ICJjb21taXR0ZXIiOgotICAgICAgICAgICAgICAgIGNvbnRyaWJ1
dG9yID0gQ29tbWl0dGVyKG5hbWUsIGRhdGEuZ2V0KCdlbWFpbHMnKSwgZGF0YS5nZXQoJ25pY2tz
JyksIGRhdGEuZ2V0KCdhbGlhc2VzJyksIGRhdGEuZ2V0KCdleHBlcnRpc2UnKSkKKyAgICAgICAg
ICAgICAgICBjb250cmlidXRvciA9IENvbW1pdHRlcihuYW1lLCBkYXRhLmdldCgnZW1haWxzJyks
IGRhdGEuZ2V0KCduaWNrcycpLCBkYXRhLmdldCgnYWxpYXNlcycpLCBkYXRhLmdldCgnZXhwZXJ0
aXNlJyksIGluYWN0aXZlKQogICAgICAgICAgICAgICAgIHNlbGYuX2NvbW1pdHRlcnMuYXBwZW5k
KGNvbnRyaWJ1dG9yKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb250cmli
dXRvciA9IENvbnRyaWJ1dG9yKG5hbWUsIGRhdGEuZ2V0KCdlbWFpbHMnKSwgZGF0YS5nZXQoJ25p
Y2tzJyksIGRhdGEuZ2V0KCdhbGlhc2VzJyksIGRhdGEuZ2V0KCdleHBlcnRpc2UnKSkKKyAgICAg
ICAgICAgICAgICBjb250cmlidXRvciA9IENvbnRyaWJ1dG9yKG5hbWUsIGRhdGEuZ2V0KCdlbWFp
bHMnKSwgZGF0YS5nZXQoJ25pY2tzJyksIGRhdGEuZ2V0KCdhbGlhc2VzJyksIGRhdGEuZ2V0KCdl
eHBlcnRpc2UnKSwgaW5hY3RpdmUpCiAKICAgICAgICAgICAgIHNlbGYuX2NvbnRyaWJ1dG9ycy5h
cHBlbmQoY29udHJpYnV0b3IpCiAK
</data>
<flag name="review"
          id="314688"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>