ag-grid-angular.component.js 146 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968
  1. import { __decorate, __metadata } from "tslib";
  2. import { AfterViewInit, Component, ComponentFactoryResolver, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, ViewContainerRef, ViewEncapsulation } from "@angular/core";
  3. import { ComponentUtil, Events, Grid, GridOptionsWrapper, Promise, _ } from "ag-grid-community";
  4. import { AngularFrameworkOverrides } from "./angularFrameworkOverrides";
  5. import { AngularFrameworkComponentWrapper } from "./angularFrameworkComponentWrapper";
  6. import { AgGridColumn } from "./ag-grid-column.component";
  7. var AgGridAngular = /** @class */ (function () {
  8. function AgGridAngular(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, _componentFactoryResolver) {
  9. this.viewContainerRef = viewContainerRef;
  10. this.angularFrameworkOverrides = angularFrameworkOverrides;
  11. this.frameworkComponentWrapper = frameworkComponentWrapper;
  12. this._componentFactoryResolver = _componentFactoryResolver;
  13. this._initialised = false;
  14. this._destroyed = false;
  15. // in order to ensure firing of gridReady is deterministic
  16. this._fullyReady = Promise.resolve(true);
  17. // @START@
  18. this.slaveGrids = undefined;
  19. this.alignedGrids = undefined;
  20. this.rowData = undefined;
  21. this.columnDefs = undefined;
  22. this.excelStyles = undefined;
  23. this.pinnedTopRowData = undefined;
  24. this.pinnedBottomRowData = undefined;
  25. this.components = undefined;
  26. this.frameworkComponents = undefined;
  27. this.rowStyle = undefined;
  28. this.context = undefined;
  29. this.autoGroupColumnDef = undefined;
  30. this.groupColumnDef = undefined;
  31. this.localeText = undefined;
  32. this.icons = undefined;
  33. this.datasource = undefined;
  34. this.serverSideDatasource = undefined;
  35. this.viewportDatasource = undefined;
  36. this.groupRowRendererParams = undefined;
  37. this.aggFuncs = undefined;
  38. this.fullWidthCellRendererParams = undefined;
  39. this.defaultColGroupDef = undefined;
  40. this.defaultColDef = undefined;
  41. this.defaultExportParams = undefined;
  42. this.columnTypes = undefined;
  43. this.rowClassRules = undefined;
  44. this.detailGridOptions = undefined;
  45. this.detailCellRendererParams = undefined;
  46. this.loadingCellRendererParams = undefined;
  47. this.loadingOverlayComponentParams = undefined;
  48. this.noRowsOverlayComponentParams = undefined;
  49. this.popupParent = undefined;
  50. this.colResizeDefault = undefined;
  51. this.reduxStore = undefined;
  52. this.statusBar = undefined;
  53. this.sideBar = undefined;
  54. this.sortingOrder = undefined;
  55. this.rowClass = undefined;
  56. this.rowSelection = undefined;
  57. this.overlayLoadingTemplate = undefined;
  58. this.overlayNoRowsTemplate = undefined;
  59. this.quickFilterText = undefined;
  60. this.rowModelType = undefined;
  61. this.editType = undefined;
  62. this.domLayout = undefined;
  63. this.clipboardDeliminator = undefined;
  64. this.rowGroupPanelShow = undefined;
  65. this.multiSortKey = undefined;
  66. this.pivotColumnGroupTotals = undefined;
  67. this.pivotRowTotals = undefined;
  68. this.pivotPanelShow = undefined;
  69. this.rowHeight = undefined;
  70. this.detailRowHeight = undefined;
  71. this.rowBuffer = undefined;
  72. this.colWidth = undefined;
  73. this.headerHeight = undefined;
  74. this.groupHeaderHeight = undefined;
  75. this.floatingFiltersHeight = undefined;
  76. this.pivotHeaderHeight = undefined;
  77. this.pivotGroupHeaderHeight = undefined;
  78. this.groupDefaultExpanded = undefined;
  79. this.minColWidth = undefined;
  80. this.maxColWidth = undefined;
  81. this.viewportRowModelPageSize = undefined;
  82. this.viewportRowModelBufferSize = undefined;
  83. this.autoSizePadding = undefined;
  84. this.maxBlocksInCache = undefined;
  85. this.maxConcurrentDatasourceRequests = undefined;
  86. this.tooltipShowDelay = undefined;
  87. this.cacheOverflowSize = undefined;
  88. this.paginationPageSize = undefined;
  89. this.cacheBlockSize = undefined;
  90. this.infiniteInitialRowCount = undefined;
  91. this.scrollbarWidth = undefined;
  92. this.paginationStartPage = undefined;
  93. this.infiniteBlockSize = undefined;
  94. this.batchUpdateWaitMillis = undefined;
  95. this.asyncTransactionWaitMillis = undefined;
  96. this.blockLoadDebounceMillis = undefined;
  97. this.keepDetailRowsCount = undefined;
  98. this.undoRedoCellEditingLimit = undefined;
  99. this.cellFlashDelay = undefined;
  100. this.cellFadeDelay = undefined;
  101. this.localeTextFunc = undefined;
  102. this.groupRowInnerRenderer = undefined;
  103. this.groupRowInnerRendererFramework = undefined;
  104. this.dateComponent = undefined;
  105. this.dateComponentFramework = undefined;
  106. this.groupRowRenderer = undefined;
  107. this.groupRowRendererFramework = undefined;
  108. this.isExternalFilterPresent = undefined;
  109. this.getRowHeight = undefined;
  110. this.doesExternalFilterPass = undefined;
  111. this.getRowClass = undefined;
  112. this.getRowStyle = undefined;
  113. this.getRowClassRules = undefined;
  114. this.traverseNode = undefined;
  115. this.getContextMenuItems = undefined;
  116. this.getMainMenuItems = undefined;
  117. this.processRowPostCreate = undefined;
  118. this.processCellForClipboard = undefined;
  119. this.getNodeChildDetails = undefined;
  120. this.groupRowAggNodes = undefined;
  121. this.getRowNodeId = undefined;
  122. this.isFullWidthCell = undefined;
  123. this.fullWidthCellRenderer = undefined;
  124. this.fullWidthCellRendererFramework = undefined;
  125. this.doesDataFlower = undefined;
  126. this.processSecondaryColDef = undefined;
  127. this.processSecondaryColGroupDef = undefined;
  128. this.getBusinessKeyForNode = undefined;
  129. this.sendToClipboard = undefined;
  130. this.navigateToNextCell = undefined;
  131. this.tabToNextCell = undefined;
  132. this.getDetailRowData = undefined;
  133. this.processCellFromClipboard = undefined;
  134. this.getDocument = undefined;
  135. this.postProcessPopup = undefined;
  136. this.getChildCount = undefined;
  137. this.getDataPath = undefined;
  138. this.loadingCellRenderer = undefined;
  139. this.loadingCellRendererFramework = undefined;
  140. this.loadingOverlayComponent = undefined;
  141. this.loadingOverlayComponentFramework = undefined;
  142. this.noRowsOverlayComponent = undefined;
  143. this.noRowsOverlayComponentFramework = undefined;
  144. this.detailCellRenderer = undefined;
  145. this.detailCellRendererFramework = undefined;
  146. this.defaultGroupSortComparator = undefined;
  147. this.isRowMaster = undefined;
  148. this.isRowSelectable = undefined;
  149. this.postSort = undefined;
  150. this.processHeaderForClipboard = undefined;
  151. this.paginationNumberFormatter = undefined;
  152. this.processDataFromClipboard = undefined;
  153. this.getServerSideGroupKey = undefined;
  154. this.isServerSideGroup = undefined;
  155. this.suppressKeyboardEvent = undefined;
  156. this.createChartContainer = undefined;
  157. this.processChartOptions = undefined;
  158. this.getChartToolbarItems = undefined;
  159. this.fillOperation = undefined;
  160. this.toolPanelSuppressRowGroups = undefined;
  161. this.toolPanelSuppressValues = undefined;
  162. this.toolPanelSuppressPivots = undefined;
  163. this.toolPanelSuppressPivotMode = undefined;
  164. this.toolPanelSuppressSideButtons = undefined;
  165. this.toolPanelSuppressColumnFilter = undefined;
  166. this.toolPanelSuppressColumnSelectAll = undefined;
  167. this.toolPanelSuppressColumnExpandAll = undefined;
  168. this.suppressMakeColumnVisibleAfterUnGroup = undefined;
  169. this.suppressRowClickSelection = undefined;
  170. this.suppressCellSelection = undefined;
  171. this.suppressHorizontalScroll = undefined;
  172. this.alwaysShowVerticalScroll = undefined;
  173. this.debug = undefined;
  174. this.enableBrowserTooltips = undefined;
  175. this.enableColResize = undefined;
  176. this.enableCellExpressions = undefined;
  177. this.enableSorting = undefined;
  178. this.enableServerSideSorting = undefined;
  179. this.enableFilter = undefined;
  180. this.enableServerSideFilter = undefined;
  181. this.angularCompileRows = undefined;
  182. this.angularCompileFilters = undefined;
  183. this.angularCompileHeaders = undefined;
  184. this.groupSuppressAutoColumn = undefined;
  185. this.groupSelectsChildren = undefined;
  186. this.groupIncludeFooter = undefined;
  187. this.groupIncludeTotalFooter = undefined;
  188. this.groupUseEntireRow = undefined;
  189. this.groupSuppressRow = undefined;
  190. this.groupSuppressBlankHeader = undefined;
  191. this.forPrint = undefined;
  192. this.suppressMenuHide = undefined;
  193. this.rowDeselection = undefined;
  194. this.unSortIcon = undefined;
  195. this.suppressMultiSort = undefined;
  196. this.singleClickEdit = undefined;
  197. this.suppressLoadingOverlay = undefined;
  198. this.suppressNoRowsOverlay = undefined;
  199. this.suppressAutoSize = undefined;
  200. this.skipHeaderOnAutoSize = undefined;
  201. this.suppressParentsInRowNodes = undefined;
  202. this.showToolPanel = undefined;
  203. this.suppressColumnMoveAnimation = undefined;
  204. this.suppressMovableColumns = undefined;
  205. this.suppressFieldDotNotation = undefined;
  206. this.enableRangeSelection = undefined;
  207. this.enableRangeHandle = undefined;
  208. this.enableFillHandle = undefined;
  209. this.suppressClearOnFillReduction = undefined;
  210. this.deltaSort = undefined;
  211. this.suppressTouch = undefined;
  212. this.suppressAsyncEvents = undefined;
  213. this.allowContextMenuWithControlKey = undefined;
  214. this.suppressContextMenu = undefined;
  215. this.suppressMenuFilterPanel = undefined;
  216. this.suppressMenuMainPanel = undefined;
  217. this.suppressMenuColumnPanel = undefined;
  218. this.rememberGroupStateWhenNewData = undefined;
  219. this.enableCellChangeFlash = undefined;
  220. this.suppressDragLeaveHidesColumns = undefined;
  221. this.suppressMiddleClickScrolls = undefined;
  222. this.suppressPreventDefaultOnMouseWheel = undefined;
  223. this.suppressUseColIdForGroups = undefined;
  224. this.suppressCopyRowsToClipboard = undefined;
  225. this.copyHeadersToClipboard = undefined;
  226. this.pivotMode = undefined;
  227. this.suppressAggFuncInHeader = undefined;
  228. this.suppressColumnVirtualisation = undefined;
  229. this.suppressAggAtRootLevel = undefined;
  230. this.suppressFocusAfterRefresh = undefined;
  231. this.functionsPassive = undefined;
  232. this.functionsReadOnly = undefined;
  233. this.animateRows = undefined;
  234. this.groupSelectsFiltered = undefined;
  235. this.groupRemoveSingleChildren = undefined;
  236. this.groupRemoveLowestSingleChildren = undefined;
  237. this.enableRtl = undefined;
  238. this.suppressClickEdit = undefined;
  239. this.rowDragManaged = undefined;
  240. this.suppressRowDrag = undefined;
  241. this.suppressMoveWhenRowDragging = undefined;
  242. this.enableMultiRowDragging = undefined;
  243. this.enableGroupEdit = undefined;
  244. this.embedFullWidthRows = undefined;
  245. this.deprecatedEmbedFullWidthRows = undefined;
  246. this.suppressTabbing = undefined;
  247. this.suppressPaginationPanel = undefined;
  248. this.floatingFilter = undefined;
  249. this.groupHideOpenParents = undefined;
  250. this.groupMultiAutoColumn = undefined;
  251. this.pagination = undefined;
  252. this.stopEditingWhenGridLosesFocus = undefined;
  253. this.paginationAutoPageSize = undefined;
  254. this.suppressScrollOnNewData = undefined;
  255. this.purgeClosedRowNodes = undefined;
  256. this.cacheQuickFilter = undefined;
  257. this.deltaRowDataMode = undefined;
  258. this.ensureDomOrder = undefined;
  259. this.accentedSort = undefined;
  260. this.pivotTotals = undefined;
  261. this.suppressChangeDetection = undefined;
  262. this.valueCache = undefined;
  263. this.valueCacheNeverExpires = undefined;
  264. this.aggregateOnlyChangedColumns = undefined;
  265. this.suppressAnimationFrame = undefined;
  266. this.suppressExcelExport = undefined;
  267. this.suppressCsvExport = undefined;
  268. this.treeData = undefined;
  269. this.masterDetail = undefined;
  270. this.suppressMultiRangeSelection = undefined;
  271. this.enterMovesDownAfterEdit = undefined;
  272. this.enterMovesDown = undefined;
  273. this.suppressPropertyNamesCheck = undefined;
  274. this.rowMultiSelectWithClick = undefined;
  275. this.contractColumnSelection = undefined;
  276. this.suppressEnterpriseResetOnNewColumns = undefined;
  277. this.enableOldSetFilterModel = undefined;
  278. this.suppressRowHoverHighlight = undefined;
  279. this.gridAutoHeight = undefined;
  280. this.suppressRowTransform = undefined;
  281. this.suppressClipboardPaste = undefined;
  282. this.suppressLastEmptyLineOnPaste = undefined;
  283. this.serverSideSortingAlwaysResets = undefined;
  284. this.reactNext = undefined;
  285. this.suppressSetColumnStateEvents = undefined;
  286. this.enableCharts = undefined;
  287. this.deltaColumnMode = undefined;
  288. this.suppressMaintainUnsortedOrder = undefined;
  289. this.enableCellTextSelection = undefined;
  290. this.suppressBrowserResizeObserver = undefined;
  291. this.suppressMaxRenderedRowRestriction = undefined;
  292. this.excludeChildrenWhenTreeDataFiltering = undefined;
  293. this.tooltipMouseTrack = undefined;
  294. this.keepDetailRows = undefined;
  295. this.paginateChildRows = undefined;
  296. this.preventDefaultOnContextMenu = undefined;
  297. this.undoRedoCellEditing = undefined;
  298. this.allowDragFromColumnsToolPanel = undefined;
  299. this.immutableData = undefined;
  300. this.immutableColumns = undefined;
  301. this.pivotSuppressAutoColumn = undefined;
  302. this.columnEverythingChanged = new EventEmitter();
  303. this.newColumnsLoaded = new EventEmitter();
  304. this.columnPivotModeChanged = new EventEmitter();
  305. this.columnRowGroupChanged = new EventEmitter();
  306. this.expandOrCollapseAll = new EventEmitter();
  307. this.columnPivotChanged = new EventEmitter();
  308. this.gridColumnsChanged = new EventEmitter();
  309. this.columnValueChanged = new EventEmitter();
  310. this.columnMoved = new EventEmitter();
  311. this.columnVisible = new EventEmitter();
  312. this.columnPinned = new EventEmitter();
  313. this.columnGroupOpened = new EventEmitter();
  314. this.columnResized = new EventEmitter();
  315. this.displayedColumnsChanged = new EventEmitter();
  316. this.virtualColumnsChanged = new EventEmitter();
  317. this.rowGroupOpened = new EventEmitter();
  318. this.rowDataChanged = new EventEmitter();
  319. this.rowDataUpdated = new EventEmitter();
  320. this.pinnedRowDataChanged = new EventEmitter();
  321. this.rangeSelectionChanged = new EventEmitter();
  322. this.chartCreated = new EventEmitter();
  323. this.chartRangeSelectionChanged = new EventEmitter();
  324. this.chartOptionsChanged = new EventEmitter();
  325. this.chartDestroyed = new EventEmitter();
  326. this.toolPanelVisibleChanged = new EventEmitter();
  327. this.modelUpdated = new EventEmitter();
  328. this.pasteStart = new EventEmitter();
  329. this.pasteEnd = new EventEmitter();
  330. this.fillStart = new EventEmitter();
  331. this.fillEnd = new EventEmitter();
  332. this.cellClicked = new EventEmitter();
  333. this.cellDoubleClicked = new EventEmitter();
  334. this.cellMouseDown = new EventEmitter();
  335. this.cellContextMenu = new EventEmitter();
  336. this.cellValueChanged = new EventEmitter();
  337. this.rowValueChanged = new EventEmitter();
  338. this.cellFocused = new EventEmitter();
  339. this.rowSelected = new EventEmitter();
  340. this.selectionChanged = new EventEmitter();
  341. this.cellKeyDown = new EventEmitter();
  342. this.cellKeyPress = new EventEmitter();
  343. this.cellMouseOver = new EventEmitter();
  344. this.cellMouseOut = new EventEmitter();
  345. this.filterChanged = new EventEmitter();
  346. this.filterModified = new EventEmitter();
  347. this.filterOpened = new EventEmitter();
  348. this.sortChanged = new EventEmitter();
  349. this.virtualRowRemoved = new EventEmitter();
  350. this.rowClicked = new EventEmitter();
  351. this.rowDoubleClicked = new EventEmitter();
  352. this.gridReady = new EventEmitter();
  353. this.gridSizeChanged = new EventEmitter();
  354. this.viewportChanged = new EventEmitter();
  355. this.firstDataRendered = new EventEmitter();
  356. this.dragStarted = new EventEmitter();
  357. this.dragStopped = new EventEmitter();
  358. this.checkboxChanged = new EventEmitter();
  359. this.rowEditingStarted = new EventEmitter();
  360. this.rowEditingStopped = new EventEmitter();
  361. this.cellEditingStarted = new EventEmitter();
  362. this.cellEditingStopped = new EventEmitter();
  363. this.bodyScroll = new EventEmitter();
  364. this.animationQueueEmpty = new EventEmitter();
  365. this.heightScaleChanged = new EventEmitter();
  366. this.paginationChanged = new EventEmitter();
  367. this.componentStateChanged = new EventEmitter();
  368. this.bodyHeightChanged = new EventEmitter();
  369. this.displayedColumnsWidthChanged = new EventEmitter();
  370. this.scrollVisibilityChanged = new EventEmitter();
  371. this.columnHoverChanged = new EventEmitter();
  372. this.flashCells = new EventEmitter();
  373. this.rowDragEnter = new EventEmitter();
  374. this.rowDragMove = new EventEmitter();
  375. this.rowDragLeave = new EventEmitter();
  376. this.rowDragEnd = new EventEmitter();
  377. this.popupToFront = new EventEmitter();
  378. this.columnRowGroupChangeRequest = new EventEmitter();
  379. this.columnPivotChangeRequest = new EventEmitter();
  380. this.columnValueChangeRequest = new EventEmitter();
  381. this.columnAggFuncChangeRequest = new EventEmitter();
  382. this.keyboardFocus = new EventEmitter();
  383. this.mouseFocus = new EventEmitter();
  384. this._nativeElement = elementDef.nativeElement;
  385. this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef);
  386. this.frameworkComponentWrapper.setComponentFactoryResolver(this._componentFactoryResolver);
  387. }
  388. AgGridAngular.prototype.ngAfterViewInit = function () {
  389. this.checkForDeprecatedEvents();
  390. this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true);
  391. this.gridParams = {
  392. globalEventListener: this.globalEventListener.bind(this),
  393. frameworkOverrides: this.angularFrameworkOverrides,
  394. providedBeanInstances: {
  395. frameworkComponentWrapper: this.frameworkComponentWrapper
  396. },
  397. modules: (this.modules || [])
  398. };
  399. if (this.columns && this.columns.length > 0) {
  400. this.gridOptions.columnDefs = this.columns
  401. .map(function (column) {
  402. return column.toColDef();
  403. });
  404. }
  405. new Grid(this._nativeElement, this.gridOptions, this.gridParams);
  406. if (this.gridOptions.api) {
  407. this.api = this.gridOptions.api;
  408. }
  409. if (this.gridOptions.columnApi) {
  410. this.columnApi = this.gridOptions.columnApi;
  411. }
  412. this._initialised = true;
  413. // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit
  414. // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit
  415. // the actual containing component's ngAfterViewInit will fire just after agGridAngular's
  416. this._fullyReady.resolveNow(null, function (resolve) { return resolve; });
  417. };
  418. AgGridAngular.prototype.ngOnChanges = function (changes) {
  419. if (this._initialised) {
  420. ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi);
  421. }
  422. };
  423. AgGridAngular.prototype.ngOnDestroy = function () {
  424. if (this._initialised) {
  425. // need to do this before the destroy, so we know not to emit any events
  426. // while tearing down the grid.
  427. this._destroyed = true;
  428. if (this.api) {
  429. this.api.destroy();
  430. }
  431. }
  432. };
  433. AgGridAngular.prototype.checkForDeprecatedEvents = function () {
  434. var _this = this;
  435. _.iterateObject(Events, function (key, eventName) {
  436. if (_this[eventName] && _this[eventName].observers.length > 0) {
  437. GridOptionsWrapper.checkEventDeprecation(eventName);
  438. }
  439. });
  440. };
  441. AgGridAngular.prototype.globalEventListener = function (eventType, event) {
  442. // if we are tearing down, don't emit angular events, as this causes
  443. // problems with the angular router
  444. if (this._destroyed) {
  445. return;
  446. }
  447. // generically look up the eventType
  448. var emitter = this[eventType];
  449. if (emitter) {
  450. if (eventType === 'gridReady') {
  451. // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the
  452. // gridReady event
  453. this._fullyReady.then((function (result) {
  454. emitter.emit(event);
  455. }));
  456. }
  457. else {
  458. emitter.emit(event);
  459. }
  460. }
  461. else {
  462. console.log('ag-Grid-angular: could not find EventEmitter: ' + eventType);
  463. }
  464. };
  465. AgGridAngular.ctorParameters = function () { return [
  466. { type: ElementRef },
  467. { type: ViewContainerRef },
  468. { type: AngularFrameworkOverrides },
  469. { type: AngularFrameworkComponentWrapper },
  470. { type: ComponentFactoryResolver }
  471. ]; };
  472. __decorate([
  473. ContentChildren(AgGridColumn),
  474. __metadata("design:type", QueryList)
  475. ], AgGridAngular.prototype, "columns", void 0);
  476. __decorate([
  477. Input(),
  478. __metadata("design:type", Object)
  479. ], AgGridAngular.prototype, "gridOptions", void 0);
  480. __decorate([
  481. Input(),
  482. __metadata("design:type", Array)
  483. ], AgGridAngular.prototype, "modules", void 0);
  484. __decorate([
  485. Input(),
  486. __metadata("design:type", Object)
  487. ], AgGridAngular.prototype, "slaveGrids", void 0);
  488. __decorate([
  489. Input(),
  490. __metadata("design:type", Object)
  491. ], AgGridAngular.prototype, "alignedGrids", void 0);
  492. __decorate([
  493. Input(),
  494. __metadata("design:type", Object)
  495. ], AgGridAngular.prototype, "rowData", void 0);
  496. __decorate([
  497. Input(),
  498. __metadata("design:type", Object)
  499. ], AgGridAngular.prototype, "columnDefs", void 0);
  500. __decorate([
  501. Input(),
  502. __metadata("design:type", Object)
  503. ], AgGridAngular.prototype, "excelStyles", void 0);
  504. __decorate([
  505. Input(),
  506. __metadata("design:type", Object)
  507. ], AgGridAngular.prototype, "pinnedTopRowData", void 0);
  508. __decorate([
  509. Input(),
  510. __metadata("design:type", Object)
  511. ], AgGridAngular.prototype, "pinnedBottomRowData", void 0);
  512. __decorate([
  513. Input(),
  514. __metadata("design:type", Object)
  515. ], AgGridAngular.prototype, "components", void 0);
  516. __decorate([
  517. Input(),
  518. __metadata("design:type", Object)
  519. ], AgGridAngular.prototype, "frameworkComponents", void 0);
  520. __decorate([
  521. Input(),
  522. __metadata("design:type", Object)
  523. ], AgGridAngular.prototype, "rowStyle", void 0);
  524. __decorate([
  525. Input(),
  526. __metadata("design:type", Object)
  527. ], AgGridAngular.prototype, "context", void 0);
  528. __decorate([
  529. Input(),
  530. __metadata("design:type", Object)
  531. ], AgGridAngular.prototype, "autoGroupColumnDef", void 0);
  532. __decorate([
  533. Input(),
  534. __metadata("design:type", Object)
  535. ], AgGridAngular.prototype, "groupColumnDef", void 0);
  536. __decorate([
  537. Input(),
  538. __metadata("design:type", Object)
  539. ], AgGridAngular.prototype, "localeText", void 0);
  540. __decorate([
  541. Input(),
  542. __metadata("design:type", Object)
  543. ], AgGridAngular.prototype, "icons", void 0);
  544. __decorate([
  545. Input(),
  546. __metadata("design:type", Object)
  547. ], AgGridAngular.prototype, "datasource", void 0);
  548. __decorate([
  549. Input(),
  550. __metadata("design:type", Object)
  551. ], AgGridAngular.prototype, "serverSideDatasource", void 0);
  552. __decorate([
  553. Input(),
  554. __metadata("design:type", Object)
  555. ], AgGridAngular.prototype, "viewportDatasource", void 0);
  556. __decorate([
  557. Input(),
  558. __metadata("design:type", Object)
  559. ], AgGridAngular.prototype, "groupRowRendererParams", void 0);
  560. __decorate([
  561. Input(),
  562. __metadata("design:type", Object)
  563. ], AgGridAngular.prototype, "aggFuncs", void 0);
  564. __decorate([
  565. Input(),
  566. __metadata("design:type", Object)
  567. ], AgGridAngular.prototype, "fullWidthCellRendererParams", void 0);
  568. __decorate([
  569. Input(),
  570. __metadata("design:type", Object)
  571. ], AgGridAngular.prototype, "defaultColGroupDef", void 0);
  572. __decorate([
  573. Input(),
  574. __metadata("design:type", Object)
  575. ], AgGridAngular.prototype, "defaultColDef", void 0);
  576. __decorate([
  577. Input(),
  578. __metadata("design:type", Object)
  579. ], AgGridAngular.prototype, "defaultExportParams", void 0);
  580. __decorate([
  581. Input(),
  582. __metadata("design:type", Object)
  583. ], AgGridAngular.prototype, "columnTypes", void 0);
  584. __decorate([
  585. Input(),
  586. __metadata("design:type", Object)
  587. ], AgGridAngular.prototype, "rowClassRules", void 0);
  588. __decorate([
  589. Input(),
  590. __metadata("design:type", Object)
  591. ], AgGridAngular.prototype, "detailGridOptions", void 0);
  592. __decorate([
  593. Input(),
  594. __metadata("design:type", Object)
  595. ], AgGridAngular.prototype, "detailCellRendererParams", void 0);
  596. __decorate([
  597. Input(),
  598. __metadata("design:type", Object)
  599. ], AgGridAngular.prototype, "loadingCellRendererParams", void 0);
  600. __decorate([
  601. Input(),
  602. __metadata("design:type", Object)
  603. ], AgGridAngular.prototype, "loadingOverlayComponentParams", void 0);
  604. __decorate([
  605. Input(),
  606. __metadata("design:type", Object)
  607. ], AgGridAngular.prototype, "noRowsOverlayComponentParams", void 0);
  608. __decorate([
  609. Input(),
  610. __metadata("design:type", Object)
  611. ], AgGridAngular.prototype, "popupParent", void 0);
  612. __decorate([
  613. Input(),
  614. __metadata("design:type", Object)
  615. ], AgGridAngular.prototype, "colResizeDefault", void 0);
  616. __decorate([
  617. Input(),
  618. __metadata("design:type", Object)
  619. ], AgGridAngular.prototype, "reduxStore", void 0);
  620. __decorate([
  621. Input(),
  622. __metadata("design:type", Object)
  623. ], AgGridAngular.prototype, "statusBar", void 0);
  624. __decorate([
  625. Input(),
  626. __metadata("design:type", Object)
  627. ], AgGridAngular.prototype, "sideBar", void 0);
  628. __decorate([
  629. Input(),
  630. __metadata("design:type", Object)
  631. ], AgGridAngular.prototype, "sortingOrder", void 0);
  632. __decorate([
  633. Input(),
  634. __metadata("design:type", Object)
  635. ], AgGridAngular.prototype, "rowClass", void 0);
  636. __decorate([
  637. Input(),
  638. __metadata("design:type", Object)
  639. ], AgGridAngular.prototype, "rowSelection", void 0);
  640. __decorate([
  641. Input(),
  642. __metadata("design:type", Object)
  643. ], AgGridAngular.prototype, "overlayLoadingTemplate", void 0);
  644. __decorate([
  645. Input(),
  646. __metadata("design:type", Object)
  647. ], AgGridAngular.prototype, "overlayNoRowsTemplate", void 0);
  648. __decorate([
  649. Input(),
  650. __metadata("design:type", Object)
  651. ], AgGridAngular.prototype, "quickFilterText", void 0);
  652. __decorate([
  653. Input(),
  654. __metadata("design:type", Object)
  655. ], AgGridAngular.prototype, "rowModelType", void 0);
  656. __decorate([
  657. Input(),
  658. __metadata("design:type", Object)
  659. ], AgGridAngular.prototype, "editType", void 0);
  660. __decorate([
  661. Input(),
  662. __metadata("design:type", Object)
  663. ], AgGridAngular.prototype, "domLayout", void 0);
  664. __decorate([
  665. Input(),
  666. __metadata("design:type", Object)
  667. ], AgGridAngular.prototype, "clipboardDeliminator", void 0);
  668. __decorate([
  669. Input(),
  670. __metadata("design:type", Object)
  671. ], AgGridAngular.prototype, "rowGroupPanelShow", void 0);
  672. __decorate([
  673. Input(),
  674. __metadata("design:type", Object)
  675. ], AgGridAngular.prototype, "multiSortKey", void 0);
  676. __decorate([
  677. Input(),
  678. __metadata("design:type", Object)
  679. ], AgGridAngular.prototype, "pivotColumnGroupTotals", void 0);
  680. __decorate([
  681. Input(),
  682. __metadata("design:type", Object)
  683. ], AgGridAngular.prototype, "pivotRowTotals", void 0);
  684. __decorate([
  685. Input(),
  686. __metadata("design:type", Object)
  687. ], AgGridAngular.prototype, "pivotPanelShow", void 0);
  688. __decorate([
  689. Input(),
  690. __metadata("design:type", Object)
  691. ], AgGridAngular.prototype, "rowHeight", void 0);
  692. __decorate([
  693. Input(),
  694. __metadata("design:type", Object)
  695. ], AgGridAngular.prototype, "detailRowHeight", void 0);
  696. __decorate([
  697. Input(),
  698. __metadata("design:type", Object)
  699. ], AgGridAngular.prototype, "rowBuffer", void 0);
  700. __decorate([
  701. Input(),
  702. __metadata("design:type", Object)
  703. ], AgGridAngular.prototype, "colWidth", void 0);
  704. __decorate([
  705. Input(),
  706. __metadata("design:type", Object)
  707. ], AgGridAngular.prototype, "headerHeight", void 0);
  708. __decorate([
  709. Input(),
  710. __metadata("design:type", Object)
  711. ], AgGridAngular.prototype, "groupHeaderHeight", void 0);
  712. __decorate([
  713. Input(),
  714. __metadata("design:type", Object)
  715. ], AgGridAngular.prototype, "floatingFiltersHeight", void 0);
  716. __decorate([
  717. Input(),
  718. __metadata("design:type", Object)
  719. ], AgGridAngular.prototype, "pivotHeaderHeight", void 0);
  720. __decorate([
  721. Input(),
  722. __metadata("design:type", Object)
  723. ], AgGridAngular.prototype, "pivotGroupHeaderHeight", void 0);
  724. __decorate([
  725. Input(),
  726. __metadata("design:type", Object)
  727. ], AgGridAngular.prototype, "groupDefaultExpanded", void 0);
  728. __decorate([
  729. Input(),
  730. __metadata("design:type", Object)
  731. ], AgGridAngular.prototype, "minColWidth", void 0);
  732. __decorate([
  733. Input(),
  734. __metadata("design:type", Object)
  735. ], AgGridAngular.prototype, "maxColWidth", void 0);
  736. __decorate([
  737. Input(),
  738. __metadata("design:type", Object)
  739. ], AgGridAngular.prototype, "viewportRowModelPageSize", void 0);
  740. __decorate([
  741. Input(),
  742. __metadata("design:type", Object)
  743. ], AgGridAngular.prototype, "viewportRowModelBufferSize", void 0);
  744. __decorate([
  745. Input(),
  746. __metadata("design:type", Object)
  747. ], AgGridAngular.prototype, "autoSizePadding", void 0);
  748. __decorate([
  749. Input(),
  750. __metadata("design:type", Object)
  751. ], AgGridAngular.prototype, "maxBlocksInCache", void 0);
  752. __decorate([
  753. Input(),
  754. __metadata("design:type", Object)
  755. ], AgGridAngular.prototype, "maxConcurrentDatasourceRequests", void 0);
  756. __decorate([
  757. Input(),
  758. __metadata("design:type", Object)
  759. ], AgGridAngular.prototype, "tooltipShowDelay", void 0);
  760. __decorate([
  761. Input(),
  762. __metadata("design:type", Object)
  763. ], AgGridAngular.prototype, "cacheOverflowSize", void 0);
  764. __decorate([
  765. Input(),
  766. __metadata("design:type", Object)
  767. ], AgGridAngular.prototype, "paginationPageSize", void 0);
  768. __decorate([
  769. Input(),
  770. __metadata("design:type", Object)
  771. ], AgGridAngular.prototype, "cacheBlockSize", void 0);
  772. __decorate([
  773. Input(),
  774. __metadata("design:type", Object)
  775. ], AgGridAngular.prototype, "infiniteInitialRowCount", void 0);
  776. __decorate([
  777. Input(),
  778. __metadata("design:type", Object)
  779. ], AgGridAngular.prototype, "scrollbarWidth", void 0);
  780. __decorate([
  781. Input(),
  782. __metadata("design:type", Object)
  783. ], AgGridAngular.prototype, "paginationStartPage", void 0);
  784. __decorate([
  785. Input(),
  786. __metadata("design:type", Object)
  787. ], AgGridAngular.prototype, "infiniteBlockSize", void 0);
  788. __decorate([
  789. Input(),
  790. __metadata("design:type", Object)
  791. ], AgGridAngular.prototype, "batchUpdateWaitMillis", void 0);
  792. __decorate([
  793. Input(),
  794. __metadata("design:type", Object)
  795. ], AgGridAngular.prototype, "asyncTransactionWaitMillis", void 0);
  796. __decorate([
  797. Input(),
  798. __metadata("design:type", Object)
  799. ], AgGridAngular.prototype, "blockLoadDebounceMillis", void 0);
  800. __decorate([
  801. Input(),
  802. __metadata("design:type", Object)
  803. ], AgGridAngular.prototype, "keepDetailRowsCount", void 0);
  804. __decorate([
  805. Input(),
  806. __metadata("design:type", Object)
  807. ], AgGridAngular.prototype, "undoRedoCellEditingLimit", void 0);
  808. __decorate([
  809. Input(),
  810. __metadata("design:type", Object)
  811. ], AgGridAngular.prototype, "cellFlashDelay", void 0);
  812. __decorate([
  813. Input(),
  814. __metadata("design:type", Object)
  815. ], AgGridAngular.prototype, "cellFadeDelay", void 0);
  816. __decorate([
  817. Input(),
  818. __metadata("design:type", Object)
  819. ], AgGridAngular.prototype, "localeTextFunc", void 0);
  820. __decorate([
  821. Input(),
  822. __metadata("design:type", Object)
  823. ], AgGridAngular.prototype, "groupRowInnerRenderer", void 0);
  824. __decorate([
  825. Input(),
  826. __metadata("design:type", Object)
  827. ], AgGridAngular.prototype, "groupRowInnerRendererFramework", void 0);
  828. __decorate([
  829. Input(),
  830. __metadata("design:type", Object)
  831. ], AgGridAngular.prototype, "dateComponent", void 0);
  832. __decorate([
  833. Input(),
  834. __metadata("design:type", Object)
  835. ], AgGridAngular.prototype, "dateComponentFramework", void 0);
  836. __decorate([
  837. Input(),
  838. __metadata("design:type", Object)
  839. ], AgGridAngular.prototype, "groupRowRenderer", void 0);
  840. __decorate([
  841. Input(),
  842. __metadata("design:type", Object)
  843. ], AgGridAngular.prototype, "groupRowRendererFramework", void 0);
  844. __decorate([
  845. Input(),
  846. __metadata("design:type", Object)
  847. ], AgGridAngular.prototype, "isExternalFilterPresent", void 0);
  848. __decorate([
  849. Input(),
  850. __metadata("design:type", Object)
  851. ], AgGridAngular.prototype, "getRowHeight", void 0);
  852. __decorate([
  853. Input(),
  854. __metadata("design:type", Object)
  855. ], AgGridAngular.prototype, "doesExternalFilterPass", void 0);
  856. __decorate([
  857. Input(),
  858. __metadata("design:type", Object)
  859. ], AgGridAngular.prototype, "getRowClass", void 0);
  860. __decorate([
  861. Input(),
  862. __metadata("design:type", Object)
  863. ], AgGridAngular.prototype, "getRowStyle", void 0);
  864. __decorate([
  865. Input(),
  866. __metadata("design:type", Object)
  867. ], AgGridAngular.prototype, "getRowClassRules", void 0);
  868. __decorate([
  869. Input(),
  870. __metadata("design:type", Object)
  871. ], AgGridAngular.prototype, "traverseNode", void 0);
  872. __decorate([
  873. Input(),
  874. __metadata("design:type", Object)
  875. ], AgGridAngular.prototype, "getContextMenuItems", void 0);
  876. __decorate([
  877. Input(),
  878. __metadata("design:type", Object)
  879. ], AgGridAngular.prototype, "getMainMenuItems", void 0);
  880. __decorate([
  881. Input(),
  882. __metadata("design:type", Object)
  883. ], AgGridAngular.prototype, "processRowPostCreate", void 0);
  884. __decorate([
  885. Input(),
  886. __metadata("design:type", Object)
  887. ], AgGridAngular.prototype, "processCellForClipboard", void 0);
  888. __decorate([
  889. Input(),
  890. __metadata("design:type", Object)
  891. ], AgGridAngular.prototype, "getNodeChildDetails", void 0);
  892. __decorate([
  893. Input(),
  894. __metadata("design:type", Object)
  895. ], AgGridAngular.prototype, "groupRowAggNodes", void 0);
  896. __decorate([
  897. Input(),
  898. __metadata("design:type", Object)
  899. ], AgGridAngular.prototype, "getRowNodeId", void 0);
  900. __decorate([
  901. Input(),
  902. __metadata("design:type", Object)
  903. ], AgGridAngular.prototype, "isFullWidthCell", void 0);
  904. __decorate([
  905. Input(),
  906. __metadata("design:type", Object)
  907. ], AgGridAngular.prototype, "fullWidthCellRenderer", void 0);
  908. __decorate([
  909. Input(),
  910. __metadata("design:type", Object)
  911. ], AgGridAngular.prototype, "fullWidthCellRendererFramework", void 0);
  912. __decorate([
  913. Input(),
  914. __metadata("design:type", Object)
  915. ], AgGridAngular.prototype, "doesDataFlower", void 0);
  916. __decorate([
  917. Input(),
  918. __metadata("design:type", Object)
  919. ], AgGridAngular.prototype, "processSecondaryColDef", void 0);
  920. __decorate([
  921. Input(),
  922. __metadata("design:type", Object)
  923. ], AgGridAngular.prototype, "processSecondaryColGroupDef", void 0);
  924. __decorate([
  925. Input(),
  926. __metadata("design:type", Object)
  927. ], AgGridAngular.prototype, "getBusinessKeyForNode", void 0);
  928. __decorate([
  929. Input(),
  930. __metadata("design:type", Object)
  931. ], AgGridAngular.prototype, "sendToClipboard", void 0);
  932. __decorate([
  933. Input(),
  934. __metadata("design:type", Object)
  935. ], AgGridAngular.prototype, "navigateToNextCell", void 0);
  936. __decorate([
  937. Input(),
  938. __metadata("design:type", Object)
  939. ], AgGridAngular.prototype, "tabToNextCell", void 0);
  940. __decorate([
  941. Input(),
  942. __metadata("design:type", Object)
  943. ], AgGridAngular.prototype, "getDetailRowData", void 0);
  944. __decorate([
  945. Input(),
  946. __metadata("design:type", Object)
  947. ], AgGridAngular.prototype, "processCellFromClipboard", void 0);
  948. __decorate([
  949. Input(),
  950. __metadata("design:type", Object)
  951. ], AgGridAngular.prototype, "getDocument", void 0);
  952. __decorate([
  953. Input(),
  954. __metadata("design:type", Object)
  955. ], AgGridAngular.prototype, "postProcessPopup", void 0);
  956. __decorate([
  957. Input(),
  958. __metadata("design:type", Object)
  959. ], AgGridAngular.prototype, "getChildCount", void 0);
  960. __decorate([
  961. Input(),
  962. __metadata("design:type", Object)
  963. ], AgGridAngular.prototype, "getDataPath", void 0);
  964. __decorate([
  965. Input(),
  966. __metadata("design:type", Object)
  967. ], AgGridAngular.prototype, "loadingCellRenderer", void 0);
  968. __decorate([
  969. Input(),
  970. __metadata("design:type", Object)
  971. ], AgGridAngular.prototype, "loadingCellRendererFramework", void 0);
  972. __decorate([
  973. Input(),
  974. __metadata("design:type", Object)
  975. ], AgGridAngular.prototype, "loadingOverlayComponent", void 0);
  976. __decorate([
  977. Input(),
  978. __metadata("design:type", Object)
  979. ], AgGridAngular.prototype, "loadingOverlayComponentFramework", void 0);
  980. __decorate([
  981. Input(),
  982. __metadata("design:type", Object)
  983. ], AgGridAngular.prototype, "noRowsOverlayComponent", void 0);
  984. __decorate([
  985. Input(),
  986. __metadata("design:type", Object)
  987. ], AgGridAngular.prototype, "noRowsOverlayComponentFramework", void 0);
  988. __decorate([
  989. Input(),
  990. __metadata("design:type", Object)
  991. ], AgGridAngular.prototype, "detailCellRenderer", void 0);
  992. __decorate([
  993. Input(),
  994. __metadata("design:type", Object)
  995. ], AgGridAngular.prototype, "detailCellRendererFramework", void 0);
  996. __decorate([
  997. Input(),
  998. __metadata("design:type", Object)
  999. ], AgGridAngular.prototype, "defaultGroupSortComparator", void 0);
  1000. __decorate([
  1001. Input(),
  1002. __metadata("design:type", Object)
  1003. ], AgGridAngular.prototype, "isRowMaster", void 0);
  1004. __decorate([
  1005. Input(),
  1006. __metadata("design:type", Object)
  1007. ], AgGridAngular.prototype, "isRowSelectable", void 0);
  1008. __decorate([
  1009. Input(),
  1010. __metadata("design:type", Object)
  1011. ], AgGridAngular.prototype, "postSort", void 0);
  1012. __decorate([
  1013. Input(),
  1014. __metadata("design:type", Object)
  1015. ], AgGridAngular.prototype, "processHeaderForClipboard", void 0);
  1016. __decorate([
  1017. Input(),
  1018. __metadata("design:type", Object)
  1019. ], AgGridAngular.prototype, "paginationNumberFormatter", void 0);
  1020. __decorate([
  1021. Input(),
  1022. __metadata("design:type", Object)
  1023. ], AgGridAngular.prototype, "processDataFromClipboard", void 0);
  1024. __decorate([
  1025. Input(),
  1026. __metadata("design:type", Object)
  1027. ], AgGridAngular.prototype, "getServerSideGroupKey", void 0);
  1028. __decorate([
  1029. Input(),
  1030. __metadata("design:type", Object)
  1031. ], AgGridAngular.prototype, "isServerSideGroup", void 0);
  1032. __decorate([
  1033. Input(),
  1034. __metadata("design:type", Object)
  1035. ], AgGridAngular.prototype, "suppressKeyboardEvent", void 0);
  1036. __decorate([
  1037. Input(),
  1038. __metadata("design:type", Object)
  1039. ], AgGridAngular.prototype, "createChartContainer", void 0);
  1040. __decorate([
  1041. Input(),
  1042. __metadata("design:type", Object)
  1043. ], AgGridAngular.prototype, "processChartOptions", void 0);
  1044. __decorate([
  1045. Input(),
  1046. __metadata("design:type", Object)
  1047. ], AgGridAngular.prototype, "getChartToolbarItems", void 0);
  1048. __decorate([
  1049. Input(),
  1050. __metadata("design:type", Object)
  1051. ], AgGridAngular.prototype, "fillOperation", void 0);
  1052. __decorate([
  1053. Input(),
  1054. __metadata("design:type", Object)
  1055. ], AgGridAngular.prototype, "toolPanelSuppressRowGroups", void 0);
  1056. __decorate([
  1057. Input(),
  1058. __metadata("design:type", Object)
  1059. ], AgGridAngular.prototype, "toolPanelSuppressValues", void 0);
  1060. __decorate([
  1061. Input(),
  1062. __metadata("design:type", Object)
  1063. ], AgGridAngular.prototype, "toolPanelSuppressPivots", void 0);
  1064. __decorate([
  1065. Input(),
  1066. __metadata("design:type", Object)
  1067. ], AgGridAngular.prototype, "toolPanelSuppressPivotMode", void 0);
  1068. __decorate([
  1069. Input(),
  1070. __metadata("design:type", Object)
  1071. ], AgGridAngular.prototype, "toolPanelSuppressSideButtons", void 0);
  1072. __decorate([
  1073. Input(),
  1074. __metadata("design:type", Object)
  1075. ], AgGridAngular.prototype, "toolPanelSuppressColumnFilter", void 0);
  1076. __decorate([
  1077. Input(),
  1078. __metadata("design:type", Object)
  1079. ], AgGridAngular.prototype, "toolPanelSuppressColumnSelectAll", void 0);
  1080. __decorate([
  1081. Input(),
  1082. __metadata("design:type", Object)
  1083. ], AgGridAngular.prototype, "toolPanelSuppressColumnExpandAll", void 0);
  1084. __decorate([
  1085. Input(),
  1086. __metadata("design:type", Object)
  1087. ], AgGridAngular.prototype, "suppressMakeColumnVisibleAfterUnGroup", void 0);
  1088. __decorate([
  1089. Input(),
  1090. __metadata("design:type", Object)
  1091. ], AgGridAngular.prototype, "suppressRowClickSelection", void 0);
  1092. __decorate([
  1093. Input(),
  1094. __metadata("design:type", Object)
  1095. ], AgGridAngular.prototype, "suppressCellSelection", void 0);
  1096. __decorate([
  1097. Input(),
  1098. __metadata("design:type", Object)
  1099. ], AgGridAngular.prototype, "suppressHorizontalScroll", void 0);
  1100. __decorate([
  1101. Input(),
  1102. __metadata("design:type", Object)
  1103. ], AgGridAngular.prototype, "alwaysShowVerticalScroll", void 0);
  1104. __decorate([
  1105. Input(),
  1106. __metadata("design:type", Object)
  1107. ], AgGridAngular.prototype, "debug", void 0);
  1108. __decorate([
  1109. Input(),
  1110. __metadata("design:type", Object)
  1111. ], AgGridAngular.prototype, "enableBrowserTooltips", void 0);
  1112. __decorate([
  1113. Input(),
  1114. __metadata("design:type", Object)
  1115. ], AgGridAngular.prototype, "enableColResize", void 0);
  1116. __decorate([
  1117. Input(),
  1118. __metadata("design:type", Object)
  1119. ], AgGridAngular.prototype, "enableCellExpressions", void 0);
  1120. __decorate([
  1121. Input(),
  1122. __metadata("design:type", Object)
  1123. ], AgGridAngular.prototype, "enableSorting", void 0);
  1124. __decorate([
  1125. Input(),
  1126. __metadata("design:type", Object)
  1127. ], AgGridAngular.prototype, "enableServerSideSorting", void 0);
  1128. __decorate([
  1129. Input(),
  1130. __metadata("design:type", Object)
  1131. ], AgGridAngular.prototype, "enableFilter", void 0);
  1132. __decorate([
  1133. Input(),
  1134. __metadata("design:type", Object)
  1135. ], AgGridAngular.prototype, "enableServerSideFilter", void 0);
  1136. __decorate([
  1137. Input(),
  1138. __metadata("design:type", Object)
  1139. ], AgGridAngular.prototype, "angularCompileRows", void 0);
  1140. __decorate([
  1141. Input(),
  1142. __metadata("design:type", Object)
  1143. ], AgGridAngular.prototype, "angularCompileFilters", void 0);
  1144. __decorate([
  1145. Input(),
  1146. __metadata("design:type", Object)
  1147. ], AgGridAngular.prototype, "angularCompileHeaders", void 0);
  1148. __decorate([
  1149. Input(),
  1150. __metadata("design:type", Object)
  1151. ], AgGridAngular.prototype, "groupSuppressAutoColumn", void 0);
  1152. __decorate([
  1153. Input(),
  1154. __metadata("design:type", Object)
  1155. ], AgGridAngular.prototype, "groupSelectsChildren", void 0);
  1156. __decorate([
  1157. Input(),
  1158. __metadata("design:type", Object)
  1159. ], AgGridAngular.prototype, "groupIncludeFooter", void 0);
  1160. __decorate([
  1161. Input(),
  1162. __metadata("design:type", Object)
  1163. ], AgGridAngular.prototype, "groupIncludeTotalFooter", void 0);
  1164. __decorate([
  1165. Input(),
  1166. __metadata("design:type", Object)
  1167. ], AgGridAngular.prototype, "groupUseEntireRow", void 0);
  1168. __decorate([
  1169. Input(),
  1170. __metadata("design:type", Object)
  1171. ], AgGridAngular.prototype, "groupSuppressRow", void 0);
  1172. __decorate([
  1173. Input(),
  1174. __metadata("design:type", Object)
  1175. ], AgGridAngular.prototype, "groupSuppressBlankHeader", void 0);
  1176. __decorate([
  1177. Input(),
  1178. __metadata("design:type", Object)
  1179. ], AgGridAngular.prototype, "forPrint", void 0);
  1180. __decorate([
  1181. Input(),
  1182. __metadata("design:type", Object)
  1183. ], AgGridAngular.prototype, "suppressMenuHide", void 0);
  1184. __decorate([
  1185. Input(),
  1186. __metadata("design:type", Object)
  1187. ], AgGridAngular.prototype, "rowDeselection", void 0);
  1188. __decorate([
  1189. Input(),
  1190. __metadata("design:type", Object)
  1191. ], AgGridAngular.prototype, "unSortIcon", void 0);
  1192. __decorate([
  1193. Input(),
  1194. __metadata("design:type", Object)
  1195. ], AgGridAngular.prototype, "suppressMultiSort", void 0);
  1196. __decorate([
  1197. Input(),
  1198. __metadata("design:type", Object)
  1199. ], AgGridAngular.prototype, "singleClickEdit", void 0);
  1200. __decorate([
  1201. Input(),
  1202. __metadata("design:type", Object)
  1203. ], AgGridAngular.prototype, "suppressLoadingOverlay", void 0);
  1204. __decorate([
  1205. Input(),
  1206. __metadata("design:type", Object)
  1207. ], AgGridAngular.prototype, "suppressNoRowsOverlay", void 0);
  1208. __decorate([
  1209. Input(),
  1210. __metadata("design:type", Object)
  1211. ], AgGridAngular.prototype, "suppressAutoSize", void 0);
  1212. __decorate([
  1213. Input(),
  1214. __metadata("design:type", Object)
  1215. ], AgGridAngular.prototype, "skipHeaderOnAutoSize", void 0);
  1216. __decorate([
  1217. Input(),
  1218. __metadata("design:type", Object)
  1219. ], AgGridAngular.prototype, "suppressParentsInRowNodes", void 0);
  1220. __decorate([
  1221. Input(),
  1222. __metadata("design:type", Object)
  1223. ], AgGridAngular.prototype, "showToolPanel", void 0);
  1224. __decorate([
  1225. Input(),
  1226. __metadata("design:type", Object)
  1227. ], AgGridAngular.prototype, "suppressColumnMoveAnimation", void 0);
  1228. __decorate([
  1229. Input(),
  1230. __metadata("design:type", Object)
  1231. ], AgGridAngular.prototype, "suppressMovableColumns", void 0);
  1232. __decorate([
  1233. Input(),
  1234. __metadata("design:type", Object)
  1235. ], AgGridAngular.prototype, "suppressFieldDotNotation", void 0);
  1236. __decorate([
  1237. Input(),
  1238. __metadata("design:type", Object)
  1239. ], AgGridAngular.prototype, "enableRangeSelection", void 0);
  1240. __decorate([
  1241. Input(),
  1242. __metadata("design:type", Object)
  1243. ], AgGridAngular.prototype, "enableRangeHandle", void 0);
  1244. __decorate([
  1245. Input(),
  1246. __metadata("design:type", Object)
  1247. ], AgGridAngular.prototype, "enableFillHandle", void 0);
  1248. __decorate([
  1249. Input(),
  1250. __metadata("design:type", Object)
  1251. ], AgGridAngular.prototype, "suppressClearOnFillReduction", void 0);
  1252. __decorate([
  1253. Input(),
  1254. __metadata("design:type", Object)
  1255. ], AgGridAngular.prototype, "deltaSort", void 0);
  1256. __decorate([
  1257. Input(),
  1258. __metadata("design:type", Object)
  1259. ], AgGridAngular.prototype, "suppressTouch", void 0);
  1260. __decorate([
  1261. Input(),
  1262. __metadata("design:type", Object)
  1263. ], AgGridAngular.prototype, "suppressAsyncEvents", void 0);
  1264. __decorate([
  1265. Input(),
  1266. __metadata("design:type", Object)
  1267. ], AgGridAngular.prototype, "allowContextMenuWithControlKey", void 0);
  1268. __decorate([
  1269. Input(),
  1270. __metadata("design:type", Object)
  1271. ], AgGridAngular.prototype, "suppressContextMenu", void 0);
  1272. __decorate([
  1273. Input(),
  1274. __metadata("design:type", Object)
  1275. ], AgGridAngular.prototype, "suppressMenuFilterPanel", void 0);
  1276. __decorate([
  1277. Input(),
  1278. __metadata("design:type", Object)
  1279. ], AgGridAngular.prototype, "suppressMenuMainPanel", void 0);
  1280. __decorate([
  1281. Input(),
  1282. __metadata("design:type", Object)
  1283. ], AgGridAngular.prototype, "suppressMenuColumnPanel", void 0);
  1284. __decorate([
  1285. Input(),
  1286. __metadata("design:type", Object)
  1287. ], AgGridAngular.prototype, "rememberGroupStateWhenNewData", void 0);
  1288. __decorate([
  1289. Input(),
  1290. __metadata("design:type", Object)
  1291. ], AgGridAngular.prototype, "enableCellChangeFlash", void 0);
  1292. __decorate([
  1293. Input(),
  1294. __metadata("design:type", Object)
  1295. ], AgGridAngular.prototype, "suppressDragLeaveHidesColumns", void 0);
  1296. __decorate([
  1297. Input(),
  1298. __metadata("design:type", Object)
  1299. ], AgGridAngular.prototype, "suppressMiddleClickScrolls", void 0);
  1300. __decorate([
  1301. Input(),
  1302. __metadata("design:type", Object)
  1303. ], AgGridAngular.prototype, "suppressPreventDefaultOnMouseWheel", void 0);
  1304. __decorate([
  1305. Input(),
  1306. __metadata("design:type", Object)
  1307. ], AgGridAngular.prototype, "suppressUseColIdForGroups", void 0);
  1308. __decorate([
  1309. Input(),
  1310. __metadata("design:type", Object)
  1311. ], AgGridAngular.prototype, "suppressCopyRowsToClipboard", void 0);
  1312. __decorate([
  1313. Input(),
  1314. __metadata("design:type", Object)
  1315. ], AgGridAngular.prototype, "copyHeadersToClipboard", void 0);
  1316. __decorate([
  1317. Input(),
  1318. __metadata("design:type", Object)
  1319. ], AgGridAngular.prototype, "pivotMode", void 0);
  1320. __decorate([
  1321. Input(),
  1322. __metadata("design:type", Object)
  1323. ], AgGridAngular.prototype, "suppressAggFuncInHeader", void 0);
  1324. __decorate([
  1325. Input(),
  1326. __metadata("design:type", Object)
  1327. ], AgGridAngular.prototype, "suppressColumnVirtualisation", void 0);
  1328. __decorate([
  1329. Input(),
  1330. __metadata("design:type", Object)
  1331. ], AgGridAngular.prototype, "suppressAggAtRootLevel", void 0);
  1332. __decorate([
  1333. Input(),
  1334. __metadata("design:type", Object)
  1335. ], AgGridAngular.prototype, "suppressFocusAfterRefresh", void 0);
  1336. __decorate([
  1337. Input(),
  1338. __metadata("design:type", Object)
  1339. ], AgGridAngular.prototype, "functionsPassive", void 0);
  1340. __decorate([
  1341. Input(),
  1342. __metadata("design:type", Object)
  1343. ], AgGridAngular.prototype, "functionsReadOnly", void 0);
  1344. __decorate([
  1345. Input(),
  1346. __metadata("design:type", Object)
  1347. ], AgGridAngular.prototype, "animateRows", void 0);
  1348. __decorate([
  1349. Input(),
  1350. __metadata("design:type", Object)
  1351. ], AgGridAngular.prototype, "groupSelectsFiltered", void 0);
  1352. __decorate([
  1353. Input(),
  1354. __metadata("design:type", Object)
  1355. ], AgGridAngular.prototype, "groupRemoveSingleChildren", void 0);
  1356. __decorate([
  1357. Input(),
  1358. __metadata("design:type", Object)
  1359. ], AgGridAngular.prototype, "groupRemoveLowestSingleChildren", void 0);
  1360. __decorate([
  1361. Input(),
  1362. __metadata("design:type", Object)
  1363. ], AgGridAngular.prototype, "enableRtl", void 0);
  1364. __decorate([
  1365. Input(),
  1366. __metadata("design:type", Object)
  1367. ], AgGridAngular.prototype, "suppressClickEdit", void 0);
  1368. __decorate([
  1369. Input(),
  1370. __metadata("design:type", Object)
  1371. ], AgGridAngular.prototype, "rowDragManaged", void 0);
  1372. __decorate([
  1373. Input(),
  1374. __metadata("design:type", Object)
  1375. ], AgGridAngular.prototype, "suppressRowDrag", void 0);
  1376. __decorate([
  1377. Input(),
  1378. __metadata("design:type", Object)
  1379. ], AgGridAngular.prototype, "suppressMoveWhenRowDragging", void 0);
  1380. __decorate([
  1381. Input(),
  1382. __metadata("design:type", Object)
  1383. ], AgGridAngular.prototype, "enableMultiRowDragging", void 0);
  1384. __decorate([
  1385. Input(),
  1386. __metadata("design:type", Object)
  1387. ], AgGridAngular.prototype, "enableGroupEdit", void 0);
  1388. __decorate([
  1389. Input(),
  1390. __metadata("design:type", Object)
  1391. ], AgGridAngular.prototype, "embedFullWidthRows", void 0);
  1392. __decorate([
  1393. Input(),
  1394. __metadata("design:type", Object)
  1395. ], AgGridAngular.prototype, "deprecatedEmbedFullWidthRows", void 0);
  1396. __decorate([
  1397. Input(),
  1398. __metadata("design:type", Object)
  1399. ], AgGridAngular.prototype, "suppressTabbing", void 0);
  1400. __decorate([
  1401. Input(),
  1402. __metadata("design:type", Object)
  1403. ], AgGridAngular.prototype, "suppressPaginationPanel", void 0);
  1404. __decorate([
  1405. Input(),
  1406. __metadata("design:type", Object)
  1407. ], AgGridAngular.prototype, "floatingFilter", void 0);
  1408. __decorate([
  1409. Input(),
  1410. __metadata("design:type", Object)
  1411. ], AgGridAngular.prototype, "groupHideOpenParents", void 0);
  1412. __decorate([
  1413. Input(),
  1414. __metadata("design:type", Object)
  1415. ], AgGridAngular.prototype, "groupMultiAutoColumn", void 0);
  1416. __decorate([
  1417. Input(),
  1418. __metadata("design:type", Object)
  1419. ], AgGridAngular.prototype, "pagination", void 0);
  1420. __decorate([
  1421. Input(),
  1422. __metadata("design:type", Object)
  1423. ], AgGridAngular.prototype, "stopEditingWhenGridLosesFocus", void 0);
  1424. __decorate([
  1425. Input(),
  1426. __metadata("design:type", Object)
  1427. ], AgGridAngular.prototype, "paginationAutoPageSize", void 0);
  1428. __decorate([
  1429. Input(),
  1430. __metadata("design:type", Object)
  1431. ], AgGridAngular.prototype, "suppressScrollOnNewData", void 0);
  1432. __decorate([
  1433. Input(),
  1434. __metadata("design:type", Object)
  1435. ], AgGridAngular.prototype, "purgeClosedRowNodes", void 0);
  1436. __decorate([
  1437. Input(),
  1438. __metadata("design:type", Object)
  1439. ], AgGridAngular.prototype, "cacheQuickFilter", void 0);
  1440. __decorate([
  1441. Input(),
  1442. __metadata("design:type", Object)
  1443. ], AgGridAngular.prototype, "deltaRowDataMode", void 0);
  1444. __decorate([
  1445. Input(),
  1446. __metadata("design:type", Object)
  1447. ], AgGridAngular.prototype, "ensureDomOrder", void 0);
  1448. __decorate([
  1449. Input(),
  1450. __metadata("design:type", Object)
  1451. ], AgGridAngular.prototype, "accentedSort", void 0);
  1452. __decorate([
  1453. Input(),
  1454. __metadata("design:type", Object)
  1455. ], AgGridAngular.prototype, "pivotTotals", void 0);
  1456. __decorate([
  1457. Input(),
  1458. __metadata("design:type", Object)
  1459. ], AgGridAngular.prototype, "suppressChangeDetection", void 0);
  1460. __decorate([
  1461. Input(),
  1462. __metadata("design:type", Object)
  1463. ], AgGridAngular.prototype, "valueCache", void 0);
  1464. __decorate([
  1465. Input(),
  1466. __metadata("design:type", Object)
  1467. ], AgGridAngular.prototype, "valueCacheNeverExpires", void 0);
  1468. __decorate([
  1469. Input(),
  1470. __metadata("design:type", Object)
  1471. ], AgGridAngular.prototype, "aggregateOnlyChangedColumns", void 0);
  1472. __decorate([
  1473. Input(),
  1474. __metadata("design:type", Object)
  1475. ], AgGridAngular.prototype, "suppressAnimationFrame", void 0);
  1476. __decorate([
  1477. Input(),
  1478. __metadata("design:type", Object)
  1479. ], AgGridAngular.prototype, "suppressExcelExport", void 0);
  1480. __decorate([
  1481. Input(),
  1482. __metadata("design:type", Object)
  1483. ], AgGridAngular.prototype, "suppressCsvExport", void 0);
  1484. __decorate([
  1485. Input(),
  1486. __metadata("design:type", Object)
  1487. ], AgGridAngular.prototype, "treeData", void 0);
  1488. __decorate([
  1489. Input(),
  1490. __metadata("design:type", Object)
  1491. ], AgGridAngular.prototype, "masterDetail", void 0);
  1492. __decorate([
  1493. Input(),
  1494. __metadata("design:type", Object)
  1495. ], AgGridAngular.prototype, "suppressMultiRangeSelection", void 0);
  1496. __decorate([
  1497. Input(),
  1498. __metadata("design:type", Object)
  1499. ], AgGridAngular.prototype, "enterMovesDownAfterEdit", void 0);
  1500. __decorate([
  1501. Input(),
  1502. __metadata("design:type", Object)
  1503. ], AgGridAngular.prototype, "enterMovesDown", void 0);
  1504. __decorate([
  1505. Input(),
  1506. __metadata("design:type", Object)
  1507. ], AgGridAngular.prototype, "suppressPropertyNamesCheck", void 0);
  1508. __decorate([
  1509. Input(),
  1510. __metadata("design:type", Object)
  1511. ], AgGridAngular.prototype, "rowMultiSelectWithClick", void 0);
  1512. __decorate([
  1513. Input(),
  1514. __metadata("design:type", Object)
  1515. ], AgGridAngular.prototype, "contractColumnSelection", void 0);
  1516. __decorate([
  1517. Input(),
  1518. __metadata("design:type", Object)
  1519. ], AgGridAngular.prototype, "suppressEnterpriseResetOnNewColumns", void 0);
  1520. __decorate([
  1521. Input(),
  1522. __metadata("design:type", Object)
  1523. ], AgGridAngular.prototype, "enableOldSetFilterModel", void 0);
  1524. __decorate([
  1525. Input(),
  1526. __metadata("design:type", Object)
  1527. ], AgGridAngular.prototype, "suppressRowHoverHighlight", void 0);
  1528. __decorate([
  1529. Input(),
  1530. __metadata("design:type", Object)
  1531. ], AgGridAngular.prototype, "gridAutoHeight", void 0);
  1532. __decorate([
  1533. Input(),
  1534. __metadata("design:type", Object)
  1535. ], AgGridAngular.prototype, "suppressRowTransform", void 0);
  1536. __decorate([
  1537. Input(),
  1538. __metadata("design:type", Object)
  1539. ], AgGridAngular.prototype, "suppressClipboardPaste", void 0);
  1540. __decorate([
  1541. Input(),
  1542. __metadata("design:type", Object)
  1543. ], AgGridAngular.prototype, "suppressLastEmptyLineOnPaste", void 0);
  1544. __decorate([
  1545. Input(),
  1546. __metadata("design:type", Object)
  1547. ], AgGridAngular.prototype, "serverSideSortingAlwaysResets", void 0);
  1548. __decorate([
  1549. Input(),
  1550. __metadata("design:type", Object)
  1551. ], AgGridAngular.prototype, "reactNext", void 0);
  1552. __decorate([
  1553. Input(),
  1554. __metadata("design:type", Object)
  1555. ], AgGridAngular.prototype, "suppressSetColumnStateEvents", void 0);
  1556. __decorate([
  1557. Input(),
  1558. __metadata("design:type", Object)
  1559. ], AgGridAngular.prototype, "enableCharts", void 0);
  1560. __decorate([
  1561. Input(),
  1562. __metadata("design:type", Object)
  1563. ], AgGridAngular.prototype, "deltaColumnMode", void 0);
  1564. __decorate([
  1565. Input(),
  1566. __metadata("design:type", Object)
  1567. ], AgGridAngular.prototype, "suppressMaintainUnsortedOrder", void 0);
  1568. __decorate([
  1569. Input(),
  1570. __metadata("design:type", Object)
  1571. ], AgGridAngular.prototype, "enableCellTextSelection", void 0);
  1572. __decorate([
  1573. Input(),
  1574. __metadata("design:type", Object)
  1575. ], AgGridAngular.prototype, "suppressBrowserResizeObserver", void 0);
  1576. __decorate([
  1577. Input(),
  1578. __metadata("design:type", Object)
  1579. ], AgGridAngular.prototype, "suppressMaxRenderedRowRestriction", void 0);
  1580. __decorate([
  1581. Input(),
  1582. __metadata("design:type", Object)
  1583. ], AgGridAngular.prototype, "excludeChildrenWhenTreeDataFiltering", void 0);
  1584. __decorate([
  1585. Input(),
  1586. __metadata("design:type", Object)
  1587. ], AgGridAngular.prototype, "tooltipMouseTrack", void 0);
  1588. __decorate([
  1589. Input(),
  1590. __metadata("design:type", Object)
  1591. ], AgGridAngular.prototype, "keepDetailRows", void 0);
  1592. __decorate([
  1593. Input(),
  1594. __metadata("design:type", Object)
  1595. ], AgGridAngular.prototype, "paginateChildRows", void 0);
  1596. __decorate([
  1597. Input(),
  1598. __metadata("design:type", Object)
  1599. ], AgGridAngular.prototype, "preventDefaultOnContextMenu", void 0);
  1600. __decorate([
  1601. Input(),
  1602. __metadata("design:type", Object)
  1603. ], AgGridAngular.prototype, "undoRedoCellEditing", void 0);
  1604. __decorate([
  1605. Input(),
  1606. __metadata("design:type", Object)
  1607. ], AgGridAngular.prototype, "allowDragFromColumnsToolPanel", void 0);
  1608. __decorate([
  1609. Input(),
  1610. __metadata("design:type", Object)
  1611. ], AgGridAngular.prototype, "immutableData", void 0);
  1612. __decorate([
  1613. Input(),
  1614. __metadata("design:type", Object)
  1615. ], AgGridAngular.prototype, "immutableColumns", void 0);
  1616. __decorate([
  1617. Input(),
  1618. __metadata("design:type", Object)
  1619. ], AgGridAngular.prototype, "pivotSuppressAutoColumn", void 0);
  1620. __decorate([
  1621. Output(),
  1622. __metadata("design:type", EventEmitter)
  1623. ], AgGridAngular.prototype, "columnEverythingChanged", void 0);
  1624. __decorate([
  1625. Output(),
  1626. __metadata("design:type", EventEmitter)
  1627. ], AgGridAngular.prototype, "newColumnsLoaded", void 0);
  1628. __decorate([
  1629. Output(),
  1630. __metadata("design:type", EventEmitter)
  1631. ], AgGridAngular.prototype, "columnPivotModeChanged", void 0);
  1632. __decorate([
  1633. Output(),
  1634. __metadata("design:type", EventEmitter)
  1635. ], AgGridAngular.prototype, "columnRowGroupChanged", void 0);
  1636. __decorate([
  1637. Output(),
  1638. __metadata("design:type", EventEmitter)
  1639. ], AgGridAngular.prototype, "expandOrCollapseAll", void 0);
  1640. __decorate([
  1641. Output(),
  1642. __metadata("design:type", EventEmitter)
  1643. ], AgGridAngular.prototype, "columnPivotChanged", void 0);
  1644. __decorate([
  1645. Output(),
  1646. __metadata("design:type", EventEmitter)
  1647. ], AgGridAngular.prototype, "gridColumnsChanged", void 0);
  1648. __decorate([
  1649. Output(),
  1650. __metadata("design:type", EventEmitter)
  1651. ], AgGridAngular.prototype, "columnValueChanged", void 0);
  1652. __decorate([
  1653. Output(),
  1654. __metadata("design:type", EventEmitter)
  1655. ], AgGridAngular.prototype, "columnMoved", void 0);
  1656. __decorate([
  1657. Output(),
  1658. __metadata("design:type", EventEmitter)
  1659. ], AgGridAngular.prototype, "columnVisible", void 0);
  1660. __decorate([
  1661. Output(),
  1662. __metadata("design:type", EventEmitter)
  1663. ], AgGridAngular.prototype, "columnPinned", void 0);
  1664. __decorate([
  1665. Output(),
  1666. __metadata("design:type", EventEmitter)
  1667. ], AgGridAngular.prototype, "columnGroupOpened", void 0);
  1668. __decorate([
  1669. Output(),
  1670. __metadata("design:type", EventEmitter)
  1671. ], AgGridAngular.prototype, "columnResized", void 0);
  1672. __decorate([
  1673. Output(),
  1674. __metadata("design:type", EventEmitter)
  1675. ], AgGridAngular.prototype, "displayedColumnsChanged", void 0);
  1676. __decorate([
  1677. Output(),
  1678. __metadata("design:type", EventEmitter)
  1679. ], AgGridAngular.prototype, "virtualColumnsChanged", void 0);
  1680. __decorate([
  1681. Output(),
  1682. __metadata("design:type", EventEmitter)
  1683. ], AgGridAngular.prototype, "rowGroupOpened", void 0);
  1684. __decorate([
  1685. Output(),
  1686. __metadata("design:type", EventEmitter)
  1687. ], AgGridAngular.prototype, "rowDataChanged", void 0);
  1688. __decorate([
  1689. Output(),
  1690. __metadata("design:type", EventEmitter)
  1691. ], AgGridAngular.prototype, "rowDataUpdated", void 0);
  1692. __decorate([
  1693. Output(),
  1694. __metadata("design:type", EventEmitter)
  1695. ], AgGridAngular.prototype, "pinnedRowDataChanged", void 0);
  1696. __decorate([
  1697. Output(),
  1698. __metadata("design:type", EventEmitter)
  1699. ], AgGridAngular.prototype, "rangeSelectionChanged", void 0);
  1700. __decorate([
  1701. Output(),
  1702. __metadata("design:type", EventEmitter)
  1703. ], AgGridAngular.prototype, "chartCreated", void 0);
  1704. __decorate([
  1705. Output(),
  1706. __metadata("design:type", EventEmitter)
  1707. ], AgGridAngular.prototype, "chartRangeSelectionChanged", void 0);
  1708. __decorate([
  1709. Output(),
  1710. __metadata("design:type", EventEmitter)
  1711. ], AgGridAngular.prototype, "chartOptionsChanged", void 0);
  1712. __decorate([
  1713. Output(),
  1714. __metadata("design:type", EventEmitter)
  1715. ], AgGridAngular.prototype, "chartDestroyed", void 0);
  1716. __decorate([
  1717. Output(),
  1718. __metadata("design:type", EventEmitter)
  1719. ], AgGridAngular.prototype, "toolPanelVisibleChanged", void 0);
  1720. __decorate([
  1721. Output(),
  1722. __metadata("design:type", EventEmitter)
  1723. ], AgGridAngular.prototype, "modelUpdated", void 0);
  1724. __decorate([
  1725. Output(),
  1726. __metadata("design:type", EventEmitter)
  1727. ], AgGridAngular.prototype, "pasteStart", void 0);
  1728. __decorate([
  1729. Output(),
  1730. __metadata("design:type", EventEmitter)
  1731. ], AgGridAngular.prototype, "pasteEnd", void 0);
  1732. __decorate([
  1733. Output(),
  1734. __metadata("design:type", EventEmitter)
  1735. ], AgGridAngular.prototype, "fillStart", void 0);
  1736. __decorate([
  1737. Output(),
  1738. __metadata("design:type", EventEmitter)
  1739. ], AgGridAngular.prototype, "fillEnd", void 0);
  1740. __decorate([
  1741. Output(),
  1742. __metadata("design:type", EventEmitter)
  1743. ], AgGridAngular.prototype, "cellClicked", void 0);
  1744. __decorate([
  1745. Output(),
  1746. __metadata("design:type", EventEmitter)
  1747. ], AgGridAngular.prototype, "cellDoubleClicked", void 0);
  1748. __decorate([
  1749. Output(),
  1750. __metadata("design:type", EventEmitter)
  1751. ], AgGridAngular.prototype, "cellMouseDown", void 0);
  1752. __decorate([
  1753. Output(),
  1754. __metadata("design:type", EventEmitter)
  1755. ], AgGridAngular.prototype, "cellContextMenu", void 0);
  1756. __decorate([
  1757. Output(),
  1758. __metadata("design:type", EventEmitter)
  1759. ], AgGridAngular.prototype, "cellValueChanged", void 0);
  1760. __decorate([
  1761. Output(),
  1762. __metadata("design:type", EventEmitter)
  1763. ], AgGridAngular.prototype, "rowValueChanged", void 0);
  1764. __decorate([
  1765. Output(),
  1766. __metadata("design:type", EventEmitter)
  1767. ], AgGridAngular.prototype, "cellFocused", void 0);
  1768. __decorate([
  1769. Output(),
  1770. __metadata("design:type", EventEmitter)
  1771. ], AgGridAngular.prototype, "rowSelected", void 0);
  1772. __decorate([
  1773. Output(),
  1774. __metadata("design:type", EventEmitter)
  1775. ], AgGridAngular.prototype, "selectionChanged", void 0);
  1776. __decorate([
  1777. Output(),
  1778. __metadata("design:type", EventEmitter)
  1779. ], AgGridAngular.prototype, "cellKeyDown", void 0);
  1780. __decorate([
  1781. Output(),
  1782. __metadata("design:type", EventEmitter)
  1783. ], AgGridAngular.prototype, "cellKeyPress", void 0);
  1784. __decorate([
  1785. Output(),
  1786. __metadata("design:type", EventEmitter)
  1787. ], AgGridAngular.prototype, "cellMouseOver", void 0);
  1788. __decorate([
  1789. Output(),
  1790. __metadata("design:type", EventEmitter)
  1791. ], AgGridAngular.prototype, "cellMouseOut", void 0);
  1792. __decorate([
  1793. Output(),
  1794. __metadata("design:type", EventEmitter)
  1795. ], AgGridAngular.prototype, "filterChanged", void 0);
  1796. __decorate([
  1797. Output(),
  1798. __metadata("design:type", EventEmitter)
  1799. ], AgGridAngular.prototype, "filterModified", void 0);
  1800. __decorate([
  1801. Output(),
  1802. __metadata("design:type", EventEmitter)
  1803. ], AgGridAngular.prototype, "filterOpened", void 0);
  1804. __decorate([
  1805. Output(),
  1806. __metadata("design:type", EventEmitter)
  1807. ], AgGridAngular.prototype, "sortChanged", void 0);
  1808. __decorate([
  1809. Output(),
  1810. __metadata("design:type", EventEmitter)
  1811. ], AgGridAngular.prototype, "virtualRowRemoved", void 0);
  1812. __decorate([
  1813. Output(),
  1814. __metadata("design:type", EventEmitter)
  1815. ], AgGridAngular.prototype, "rowClicked", void 0);
  1816. __decorate([
  1817. Output(),
  1818. __metadata("design:type", EventEmitter)
  1819. ], AgGridAngular.prototype, "rowDoubleClicked", void 0);
  1820. __decorate([
  1821. Output(),
  1822. __metadata("design:type", EventEmitter)
  1823. ], AgGridAngular.prototype, "gridReady", void 0);
  1824. __decorate([
  1825. Output(),
  1826. __metadata("design:type", EventEmitter)
  1827. ], AgGridAngular.prototype, "gridSizeChanged", void 0);
  1828. __decorate([
  1829. Output(),
  1830. __metadata("design:type", EventEmitter)
  1831. ], AgGridAngular.prototype, "viewportChanged", void 0);
  1832. __decorate([
  1833. Output(),
  1834. __metadata("design:type", EventEmitter)
  1835. ], AgGridAngular.prototype, "firstDataRendered", void 0);
  1836. __decorate([
  1837. Output(),
  1838. __metadata("design:type", EventEmitter)
  1839. ], AgGridAngular.prototype, "dragStarted", void 0);
  1840. __decorate([
  1841. Output(),
  1842. __metadata("design:type", EventEmitter)
  1843. ], AgGridAngular.prototype, "dragStopped", void 0);
  1844. __decorate([
  1845. Output(),
  1846. __metadata("design:type", EventEmitter)
  1847. ], AgGridAngular.prototype, "checkboxChanged", void 0);
  1848. __decorate([
  1849. Output(),
  1850. __metadata("design:type", EventEmitter)
  1851. ], AgGridAngular.prototype, "rowEditingStarted", void 0);
  1852. __decorate([
  1853. Output(),
  1854. __metadata("design:type", EventEmitter)
  1855. ], AgGridAngular.prototype, "rowEditingStopped", void 0);
  1856. __decorate([
  1857. Output(),
  1858. __metadata("design:type", EventEmitter)
  1859. ], AgGridAngular.prototype, "cellEditingStarted", void 0);
  1860. __decorate([
  1861. Output(),
  1862. __metadata("design:type", EventEmitter)
  1863. ], AgGridAngular.prototype, "cellEditingStopped", void 0);
  1864. __decorate([
  1865. Output(),
  1866. __metadata("design:type", EventEmitter)
  1867. ], AgGridAngular.prototype, "bodyScroll", void 0);
  1868. __decorate([
  1869. Output(),
  1870. __metadata("design:type", EventEmitter)
  1871. ], AgGridAngular.prototype, "animationQueueEmpty", void 0);
  1872. __decorate([
  1873. Output(),
  1874. __metadata("design:type", EventEmitter)
  1875. ], AgGridAngular.prototype, "heightScaleChanged", void 0);
  1876. __decorate([
  1877. Output(),
  1878. __metadata("design:type", EventEmitter)
  1879. ], AgGridAngular.prototype, "paginationChanged", void 0);
  1880. __decorate([
  1881. Output(),
  1882. __metadata("design:type", EventEmitter)
  1883. ], AgGridAngular.prototype, "componentStateChanged", void 0);
  1884. __decorate([
  1885. Output(),
  1886. __metadata("design:type", EventEmitter)
  1887. ], AgGridAngular.prototype, "bodyHeightChanged", void 0);
  1888. __decorate([
  1889. Output(),
  1890. __metadata("design:type", EventEmitter)
  1891. ], AgGridAngular.prototype, "displayedColumnsWidthChanged", void 0);
  1892. __decorate([
  1893. Output(),
  1894. __metadata("design:type", EventEmitter)
  1895. ], AgGridAngular.prototype, "scrollVisibilityChanged", void 0);
  1896. __decorate([
  1897. Output(),
  1898. __metadata("design:type", EventEmitter)
  1899. ], AgGridAngular.prototype, "columnHoverChanged", void 0);
  1900. __decorate([
  1901. Output(),
  1902. __metadata("design:type", EventEmitter)
  1903. ], AgGridAngular.prototype, "flashCells", void 0);
  1904. __decorate([
  1905. Output(),
  1906. __metadata("design:type", EventEmitter)
  1907. ], AgGridAngular.prototype, "rowDragEnter", void 0);
  1908. __decorate([
  1909. Output(),
  1910. __metadata("design:type", EventEmitter)
  1911. ], AgGridAngular.prototype, "rowDragMove", void 0);
  1912. __decorate([
  1913. Output(),
  1914. __metadata("design:type", EventEmitter)
  1915. ], AgGridAngular.prototype, "rowDragLeave", void 0);
  1916. __decorate([
  1917. Output(),
  1918. __metadata("design:type", EventEmitter)
  1919. ], AgGridAngular.prototype, "rowDragEnd", void 0);
  1920. __decorate([
  1921. Output(),
  1922. __metadata("design:type", EventEmitter)
  1923. ], AgGridAngular.prototype, "popupToFront", void 0);
  1924. __decorate([
  1925. Output(),
  1926. __metadata("design:type", EventEmitter)
  1927. ], AgGridAngular.prototype, "columnRowGroupChangeRequest", void 0);
  1928. __decorate([
  1929. Output(),
  1930. __metadata("design:type", EventEmitter)
  1931. ], AgGridAngular.prototype, "columnPivotChangeRequest", void 0);
  1932. __decorate([
  1933. Output(),
  1934. __metadata("design:type", EventEmitter)
  1935. ], AgGridAngular.prototype, "columnValueChangeRequest", void 0);
  1936. __decorate([
  1937. Output(),
  1938. __metadata("design:type", EventEmitter)
  1939. ], AgGridAngular.prototype, "columnAggFuncChangeRequest", void 0);
  1940. __decorate([
  1941. Output(),
  1942. __metadata("design:type", EventEmitter)
  1943. ], AgGridAngular.prototype, "keyboardFocus", void 0);
  1944. __decorate([
  1945. Output(),
  1946. __metadata("design:type", EventEmitter)
  1947. ], AgGridAngular.prototype, "mouseFocus", void 0);
  1948. AgGridAngular = __decorate([
  1949. Component({
  1950. selector: 'ag-grid-angular',
  1951. template: '',
  1952. providers: [
  1953. AngularFrameworkOverrides,
  1954. AngularFrameworkComponentWrapper
  1955. ],
  1956. // tell angular we don't want view encapsulation, we don't want a shadow root
  1957. encapsulation: ViewEncapsulation.None
  1958. }),
  1959. __metadata("design:paramtypes", [ElementRef,
  1960. ViewContainerRef,
  1961. AngularFrameworkOverrides,
  1962. AngularFrameworkComponentWrapper,
  1963. ComponentFactoryResolver])
  1964. ], AgGridAngular);
  1965. return AgGridAngular;
  1966. }());
  1967. export { AgGridAngular };
  1968. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FnLWdyaWQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9hZy1ncmlkLWFuZ3VsYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBR0gsYUFBYSxFQUNiLE1BQU0sRUFDTixJQUFJLEVBR0osa0JBQWtCLEVBR2xCLE9BQU8sRUFDUCxDQUFDLEVBQ0osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFZMUQ7SUFrQkksdUJBQVksVUFBc0IsRUFDdEIsZ0JBQWtDLEVBQ2xDLHlCQUFvRCxFQUNwRCx5QkFBMkQsRUFDM0QseUJBQW1EO1FBSG5ELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQWtDO1FBQzNELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFsQnZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJM0IsMERBQTBEO1FBQ2xELGdCQUFXLEdBQXFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUE4RzlELFVBQVU7UUFDTSxlQUFVLEdBQVMsU0FBUyxDQUFDO1FB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QUN4QyxDQUFDO3lDQW1CMEIsVUFBVTtZQUNKLGdCQUFnQjtZQUNQLHlCQUF5QjtZQUN6QixnQ0FBZ0M7WUFDaEMsd0JBQXdCO09BdEJ0RCxhQUFhLENBeWV6QjtJQUFELG9CQUFDO0NBQUEsQUF6ZUQsSUF5ZUM7U0F6ZVksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgICBDb2xEZWYsXG4gICAgQ29sdW1uQXBpLFxuICAgIENvbXBvbmVudFV0aWwsXG4gICAgRXZlbnRzLFxuICAgIEdyaWQsXG4gICAgR3JpZEFwaSxcbiAgICBHcmlkT3B0aW9ucyxcbiAgICBHcmlkT3B0aW9uc1dyYXBwZXIsXG4gICAgR3JpZFBhcmFtcyxcbiAgICBNb2R1bGUsXG4gICAgUHJvbWlzZSxcbiAgICBfXG59IGZyb20gXCJhZy1ncmlkLWNvbW11bml0eVwiO1xuXG5pbXBvcnQgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSBcIi4vYW5ndWxhckZyYW1ld29ya092ZXJyaWRlc1wiO1xuaW1wb3J0IHsgQW5ndWxhckZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXIgfSBmcm9tIFwiLi9hbmd1bGFyRnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlclwiO1xuaW1wb3J0IHsgQWdHcmlkQ29sdW1uIH0gZnJvbSBcIi4vYWctZ3JpZC1jb2x1bW4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWctZ3JpZC1hbmd1bGFyJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgIEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyXG4gICAgXSxcbiAgICAvLyB0ZWxsIGFuZ3VsYXIgd2UgZG9uJ3Qgd2FudCB2aWV3IGVuY2Fwc3VsYXRpb24sIHdlIGRvbid0IHdhbnQgYSBzaGFkb3cgcm9vdFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWdHcmlkQW5ndWxhciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8vIG5vdCBpbnRlbmRlZCBmb3IgdXNlciB0byBpbnRlcmFjdCB3aXRoLiBzbyBwdXR0aW5nIF8gaW4gc28gaWYgdXNlciBnZXRzIHJlZmVyZW5jZVxuICAgIC8vIHRvIHRoaXMgb2JqZWN0LCB0aGV5IGtpbmQnYSBrbm93IGl0J3Mgbm90IHBhcnQgb2YgdGhlIGFncmVlZCBpbnRlcmZhY2VcbiAgICBwcml2YXRlIF9uYXRpdmVFbGVtZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZ3JpZFBhcmFtczogR3JpZFBhcmFtcztcblxuICAgIC8vIGluIG9yZGVyIHRvIGVuc3VyZSBmaXJpbmcgb2YgZ3JpZFJlYWR5IGlzIGRldGVybWluaXN0aWNcbiAgICBwcml2YXRlIF9mdWxseVJlYWR5OiBQcm9taXNlPGJvb2xlYW4+ID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXG4gICAgLy8gbWFraW5nIHRoZXNlIHB1YmxpYywgc28gdGhleSBhcmUgYWNjZXNzaWJsZSB0byBwZW9wbGUgdXNpbmcgdGhlIG5nMiBjb21wb25lbnQgcmVmZXJlbmNlc1xuICAgIHB1YmxpYyBhcGk6IEdyaWRBcGk7XG4gICAgcHVibGljIGNvbHVtbkFwaTogQ29sdW1uQXBpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBZ0dyaWRDb2x1bW4pIHB1YmxpYyBjb2x1bW5zOiBRdWVyeUxpc3Q8QWdHcmlkQ29sdW1uPjtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnREZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBhbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzOiBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzLFxuICAgICAgICBwcml2YXRlIGZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXI6IEFuZ3VsYXJGcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyLFxuICAgICAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICB0aGlzLl9uYXRpdmVFbGVtZW50ID0gZWxlbWVudERlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRWaWV3Q29udGFpbmVyUmVmKHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50V3JhcHBlci5zZXRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIodGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5ncmlkT3B0aW9ucyA9IENvbXBvbmVudFV0aWwuY29weUF0dHJpYnV0ZXNUb0dyaWRPcHRpb25zKHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMsIHRydWUpO1xuXG4gICAgICAgIHRoaXMuZ3JpZFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGdsb2JhbEV2ZW50TGlzdGVuZXI6IHRoaXMuZ2xvYmFsRXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZnJhbWV3b3JrT3ZlcnJpZGVzOiB0aGlzLmFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMsXG4gICAgICAgICAgICBwcm92aWRlZEJlYW5JbnN0YW5jZXM6IHtcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtDb21wb25lbnRXcmFwcGVyOiB0aGlzLmZyYW1ld29ya0NvbXBvbmVudFdyYXBwZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2R1bGVzOiAodGhpcy5tb2R1bGVzIHx8IFtdKSBhcyBhbnlcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmNvbHVtbnNcbiAgICAgICAgICAgICAgICAubWFwKChjb2x1bW46IEFnR3JpZENvbHVtbik6IENvbERlZiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW4udG9Db2xEZWYoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5ldyBHcmlkKHRoaXMuX25hdGl2ZUVsZW1lbnQsIHRoaXMuZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZFBhcmFtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICAgICAgICB0aGlzLmFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuYXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkFwaSA9IHRoaXMuZ3JpZE9wdGlvbnMuY29sdW1uQXBpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faW5pdGlhbGlzZWQgPSB0cnVlO1xuXG4gICAgICAgIC8vIHNvbWV0aW1lcywgZXNwZWNpYWxseSBpbiBsYXJnZSBjbGllbnQgYXBwcyBncmlkUmVhZHkgY2FuIGZpcmUgYmVmb3JlIG5nQWZ0ZXJWaWV3SW5pdFxuICAgICAgICAvLyB0aGlzIHRpZXMgdGhlc2UgdG9nZXRoZXIgc28gdGhhdCBncmlkUmVhZHkgd2lsbCBhbHdheXMgZmlyZSBhZnRlciBhZ0dyaWRBbmd1bGFyJ3MgbmdBZnRlclZpZXdJbml0XG4gICAgICAgIC8vIHRoZSBhY3R1YWwgY29udGFpbmluZyBjb21wb25lbnQncyBuZ0FmdGVyVmlld0luaXQgd2lsbCBmaXJlIGp1c3QgYWZ0ZXIgYWdHcmlkQW5ndWxhcidzXG4gICAgICAgIHRoaXMuX2Z1bGx5UmVhZHkucmVzb2x2ZU5vdyhudWxsLCByZXNvbHZlID0+IHJlc29sdmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpc2VkKSB7XG4gICAgICAgICAgICBDb21wb25lbnRVdGlsLnByb2Nlc3NPbkNoYW5nZShjaGFuZ2VzLCB0aGlzLmdyaWRPcHRpb25zLCB0aGlzLmFwaSwgdGhpcy5jb2x1bW5BcGkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGlzZWQpIHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gZG8gdGhpcyBiZWZvcmUgdGhlIGRlc3Ryb3ksIHNvIHdlIGtub3cgbm90IHRvIGVtaXQgYW55IGV2ZW50c1xuICAgICAgICAgICAgLy8gd2hpbGUgdGVhcmluZyBkb3duIHRoZSBncmlkLlxuICAgICAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFwaSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBpLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tGb3JEZXByZWNhdGVkRXZlbnRzKCkge1xuICAgICAgICBfLml0ZXJhdGVPYmplY3Q8YW55PihFdmVudHMsIChrZXksIGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXNbZXZlbnROYW1lXSAmJiAoPEV2ZW50RW1pdHRlcjxhbnk+PnRoaXNbZXZlbnROYW1lXSkub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBHcmlkT3B0aW9uc1dyYXBwZXIuY2hlY2tFdmVudERlcHJlY2F0aW9uKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2xvYmFsRXZlbnRMaXN0ZW5lcihldmVudFR5cGU6IHN0cmluZywgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBpZiB3ZSBhcmUgdGVhcmluZyBkb3duLCBkb24ndCBlbWl0IGFuZ3VsYXIgZXZlbnRzLCBhcyB0aGlzIGNhdXNlc1xuICAgICAgICAvLyBwcm9ibGVtcyB3aXRoIHRoZSBhbmd1bGFyIHJvdXRlclxuICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZW5lcmljYWxseSBsb29rIHVwIHRoZSBldmVudFR5cGVcbiAgICAgICAgbGV0IGVtaXR0ZXIgPSA8RXZlbnRFbWl0dGVyPGFueT4+KDxhbnk+dGhpcylbZXZlbnRUeXBlXTtcbiAgICAgICAgaWYgKGVtaXR0ZXIpIHtcbiAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICdncmlkUmVhZHknKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgaXMgbGlzdGVuaW5nIGZvciBncmlkUmVhZHksIHdhaXQgZm9yIG5nQWZ0ZXJWaWV3SW5pdCB0byBmaXJlIGZpcnN0LCB0aGVuIGVtaXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZ3JpZFJlYWR5IGV2ZW50XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbHlSZWFkeS50aGVuKChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbWl0dGVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW1pdHRlci5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZy1HcmlkLWFuZ3VsYXI6IGNvdWxkIG5vdCBmaW5kIEV2ZW50RW1pdHRlcjogJyArIGV2ZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2R1bGVzOiBNb2R1bGVbXTtcblxuICAgIC8vIEBTVEFSVEBcbiAgICBASW5wdXQoKSBwdWJsaWMgc2xhdmVHcmlkcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxpZ25lZEdyaWRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5EZWZzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNlbFN0eWxlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkVG9wUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGlubmVkQm90dG9tUm93RGF0YSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnJhbWV3b3JrQ29tcG9uZW50cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U3R5bGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbnRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGF1dG9Hcm91cENvbHVtbkRlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBDb2x1bW5EZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGljb25zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlRGF0YXNvdXJjZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnREYXRhc291cmNlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd1JlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhZ2dGdW5jcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0Q29sR3JvdXBEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRDb2xEZWYgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRFeHBvcnRQYXJhbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbHVtblR5cGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxHcmlkT3B0aW9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nQ2VsbFJlbmRlcmVyUGFyYW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudFBhcmFtcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcG9wdXBQYXJlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNvbFJlc2l6ZURlZmF1bHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlZHV4U3RvcmUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN0YXR1c0JhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2lkZUJhciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc29ydGluZ09yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dDbGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5TG9hZGluZ1RlbXBsYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvdmVybGF5Tm9Sb3dzVGVtcGxhdGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHF1aWNrRmlsdGVyVGV4dCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93TW9kZWxUeXBlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlZGl0VHlwZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9tTGF5b3V0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGlwYm9hcmREZWxpbWluYXRvciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93R3JvdXBQYW5lbFNob3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG11bHRpU29ydEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RDb2x1bW5Hcm91cFRvdGFscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RSb3dUb3RhbHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90UGFuZWxTaG93IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dIZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcm93QnVmZmVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVhZGVySGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmxvYXRpbmdGaWx0ZXJzSGVpZ2h0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGl2b3RHcm91cEhlYWRlckhlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBEZWZhdWx0RXhwYW5kZWQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1pbkNvbFdpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb2xXaWR0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmlld3BvcnRSb3dNb2RlbFBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB2aWV3cG9ydFJvd01vZGVsQnVmZmVyU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYXV0b1NpemVQYWRkaW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhCbG9ja3NJbkNhY2hlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXhDb25jdXJyZW50RGF0YXNvdXJjZVJlcXVlc3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZU92ZXJmbG93U2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYWNoZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5maW5pdGVJbml0aWFsUm93Q291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNjcm9sbGJhcldpZHRoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uU3RhcnRQYWdlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbmZpbml0ZUJsb2NrU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmF0Y2hVcGRhdGVXYWl0TWlsbGlzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhc3luY1RyYW5zYWN0aW9uV2FpdE1pbGxpcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYmxvY2tMb2FkRGVib3VuY2VNaWxsaXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGtlZXBEZXRhaWxSb3dzQ291bnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2VsbEZsYXNoRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNlbGxGYWRlRGVsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvY2FsZVRleHRGdW5jIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJvd0lubmVyUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwUm93SW5uZXJSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUNvbXBvbmVudEZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNFeHRlcm5hbEZpbHRlclByZXNlbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd0hlaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZG9lc0V4dGVybmFsRmlsdGVyUGFzcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Q2xhc3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFJvd1N0eWxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRSb3dDbGFzc1J1bGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0cmF2ZXJzZU5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldE1haW5NZW51SXRlbXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NSb3dQb3N0Q3JlYXRlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZvckNsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Tm9kZUNoaWxkRGV0YWlscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBSb3dBZ2dOb2RlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Tm9kZUlkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Z1bGxXaWR0aENlbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZ1bGxXaWR0aENlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZnVsbFdpZHRoQ2VsbFJlbmRlcmVyRnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkb2VzRGF0YUZsb3dlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbERlZiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvY2Vzc1NlY29uZGFyeUNvbEdyb3VwRGVmIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRCdXNpbmVzc0tleUZvck5vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNlbmRUb0NsaXBib2FyZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmF2aWdhdGVUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWJUb05leHRDZWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREZXRhaWxSb3dEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzQ2VsbEZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldERvY3VtZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwb3N0UHJvY2Vzc1BvcHVwIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXRDaGlsZENvdW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBnZXREYXRhUGF0aCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ092ZXJsYXlDb21wb25lbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub1Jvd3NPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXRhaWxDZWxsUmVuZGVyZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRldGFpbENlbGxSZW5kZXJlckZyYW1ld29yayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdEdyb3VwU29ydENvbXBhcmF0b3IgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGlzUm93TWFzdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1Jvd1NlbGVjdGFibGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBvc3RTb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzSGVhZGVyRm9yQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9jZXNzRGF0YUZyb21DbGlwYm9hcmQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldFNlcnZlclNpZGVHcm91cEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTZXJ2ZXJTaWRlR3JvdXAgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzS2V5Ym9hcmRFdmVudCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY3JlYXRlQ2hhcnRDb250YWluZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByb2Nlc3NDaGFydE9wdGlvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdldENoYXJ0VG9vbGJhckl0ZW1zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxsT3BlcmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Jvd0dyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NWYWx1ZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzUGl2b3RzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc1Bpdm90TW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NTaWRlQnV0dG9ucyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdG9vbFBhbmVsU3VwcHJlc3NDb2x1bW5GaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2xQYW5lbFN1cHByZXNzQ29sdW1uU2VsZWN0QWxsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0b29sUGFuZWxTdXBwcmVzc0NvbHVtbkV4cGFuZEFsbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWtlQ29sdW1uVmlzaWJsZUFmdGVyVW5Hcm91cCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDZWxsU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0hvcml6b250YWxTY3JvbGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsd2F5c1Nob3dWZXJ0aWNhbFNjcm9sbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVidWcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUJyb3dzZXJUb29sdGlwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQ29sUmVzaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsRXhwcmVzc2lvbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNvcnRpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVTb3J0aW5nIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVNlcnZlclNpZGVGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFuZ3VsYXJDb21waWxlUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5ndWxhckNvbXBpbGVGaWx0ZXJzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhbmd1bGFyQ29tcGlsZUhlYWRlcnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFNlbGVjdHNDaGlsZHJlbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBJbmNsdWRlRm9vdGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEluY2x1ZGVUb3RhbEZvb3RlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBVc2VFbnRpcmVSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NSb3cgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU3VwcHJlc3NCbGFua0hlYWRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9yUHJpbnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudUhpZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJvd0Rlc2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB1blNvcnRJY29uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc011bHRpU29ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2luZ2xlQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xvYWRpbmdPdmVybGF5IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc05vUm93c092ZXJsYXkgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXV0b1NpemUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHNraXBIZWFkZXJPbkF1dG9TaXplIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1BhcmVudHNJblJvd05vZGVzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93VG9vbFBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtbk1vdmVBbmltYXRpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTW92YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRmllbGREb3ROb3RhdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlUmFuZ2VTZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVJhbmdlSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVGaWxsSGFuZGxlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsZWFyT25GaWxsUmVkdWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWx0YVNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzVG91Y2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQXN5bmNFdmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q29udGV4dE1lbnVXaXRoQ29udHJvbEtleSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51RmlsdGVyUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzTWVudU1haW5QYW5lbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNZW51Q29sdW1uUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHJlbWVtYmVyR3JvdXBTdGF0ZVdoZW5OZXdEYXRhIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDZWxsQ2hhbmdlRmxhc2ggOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01pZGRsZUNsaWNrU2Nyb2xscyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NQcmV2ZW50RGVmYXVsdE9uTW91c2VXaGVlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NVc2VDb2xJZEZvckdyb3VwcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NDb3B5Um93c1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb3B5SGVhZGVyc1RvQ2xpcGJvYXJkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwaXZvdE1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQWdnRnVuY0luSGVhZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NvbHVtblZpcnR1YWxpc2F0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FnZ0F0Um9vdExldmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0ZvY3VzQWZ0ZXJSZWZyZXNoIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNQYXNzaXZlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmdW5jdGlvbnNSZWFkT25seSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYW5pbWF0ZVJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwU2VsZWN0c0ZpbHRlcmVkIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZVNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cFJlbW92ZUxvd2VzdFNpbmdsZUNoaWxkcmVuIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVSdGwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzQ2xpY2tFZGl0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dEcmFnTWFuYWdlZCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dEcmFnIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc01vdmVXaGVuUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZU11bHRpUm93RHJhZ2dpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUdyb3VwRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZXByZWNhdGVkRW1iZWRGdWxsV2lkdGhSb3dzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1RhYmJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUGFnaW5hdGlvblBhbmVsIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmbG9hdGluZ0ZpbHRlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JvdXBIaWRlT3BlblBhcmVudHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGdyb3VwTXVsdGlBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdG9wRWRpdGluZ1doZW5HcmlkTG9zZXNGb2N1cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkF1dG9QYWdlU2l6ZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHB1cmdlQ2xvc2VkUm93Tm9kZXMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGNhY2hlUXVpY2tGaWx0ZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhUm93RGF0YU1vZGUgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuc3VyZURvbU9yZGVyIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY2NlbnRlZFNvcnQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90VG90YWxzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NoYW5nZURldGVjdGlvbiA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWVDYWNoZU5ldmVyRXhwaXJlcyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWdncmVnYXRlT25seUNoYW5nZWRDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0FuaW1hdGlvbkZyYW1lIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0V4Y2VsRXhwb3J0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NzdkV4cG9ydCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdHJlZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIG1hc3RlckRldGFpbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNdWx0aVJhbmdlU2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbnRlck1vdmVzRG93bkFmdGVyRWRpdCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW50ZXJNb3Zlc0Rvd24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb3dNdWx0aVNlbGVjdFdpdGhDbGljayA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29udHJhY3RDb2x1bW5TZWxlY3Rpb24gOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzRW50ZXJwcmlzZVJlc2V0T25OZXdDb2x1bW5zIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVPbGRTZXRGaWx0ZXJNb2RlbCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NSb3dIb3ZlckhpZ2hsaWdodCA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3JpZEF1dG9IZWlnaHQgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHN1cHByZXNzUm93VHJhbnNmb3JtIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0NsaXBib2FyZFBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0xhc3RFbXB0eUxpbmVPblBhc3RlIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXJ2ZXJTaWRlU29ydGluZ0Fsd2F5c1Jlc2V0cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcmVhY3ROZXh0IDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc1NldENvbHVtblN0YXRlRXZlbnRzIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVDaGFydHMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGRlbHRhQ29sdW1uTW9kZSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYWludGFpblVuc29ydGVkT3JkZXIgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdXBwcmVzc0Jyb3dzZXJSZXNpemVPYnNlcnZlciA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc3VwcHJlc3NNYXhSZW5kZXJlZFJvd1Jlc3RyaWN0aW9uIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBleGNsdWRlQ2hpbGRyZW5XaGVuVHJlZURhdGFGaWx0ZXJpbmcgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHRvb2x0aXBNb3VzZVRyYWNrIDogYW55ID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBrZWVwRGV0YWlsUm93cyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGVDaGlsZFJvd3MgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHByZXZlbnREZWZhdWx0T25Db250ZXh0TWVudSA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgdW5kb1JlZG9DZWxsRWRpdGluZyA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dEcmFnRnJvbUNvbHVtbnNUb29sUGFuZWwgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZURhdGEgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGltbXV0YWJsZUNvbHVtbnMgOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIHBpdm90U3VwcHJlc3NBdXRvQ29sdW1uIDogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG5ld0NvbHVtbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdE1vZGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUm93R3JvdXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZXhwYW5kT3JDb2xsYXBzZUFsbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpdm90Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdyaWRDb2x1bW5zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbk1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uVmlzaWJsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkdyb3VwT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlydHVhbENvbHVtbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93R3JvdXBPcGVuZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEYXRhQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RhdGFVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGlubmVkUm93RGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByYW5nZVNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydFJhbmdlU2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNoYXJ0T3B0aW9uc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjaGFydERlc3Ryb3llZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHRvb2xQYW5lbFZpc2libGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxVcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFzdGVTdGFydDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHBhc3RlRW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbFN0YXJ0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsbEVuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbERvdWJsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbENvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd1ZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxGb2N1c2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbEtleURvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsS2V5UHJlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjZWxsTW91c2VPdmVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2VsbE1vdXNlT3V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZpbHRlck1vZGlmaWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlsdGVyT3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyB2aXJ0dWFsUm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEb3VibGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFJlYWR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ3JpZFNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgdmlld3BvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZmlyc3REYXRhUmVuZGVyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBkcmFnU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRyYWdTdG9wcGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2hlY2tib3hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcm93RWRpdGluZ1N0YXJ0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RhcnRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNlbGxFZGl0aW5nU3RvcHBlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGJvZHlTY3JvbGw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBhbmltYXRpb25RdWV1ZUVtcHR5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgaGVpZ2h0U2NhbGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBib2R5SGVpZ2h0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGRpc3BsYXllZENvbHVtbnNXaWR0aENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY3JvbGxWaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNvbHVtbkhvdmVyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGZsYXNoQ2VsbHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnRW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByb3dEcmFnTW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdMZWF2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBwb3B1cFRvRnJvbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5Sb3dHcm91cENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5QaXZvdENoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5WYWx1ZUNoYW5nZVJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2x1bW5BZ2dGdW5jQ2hhbmdlUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGtleWJvYXJkRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb3VzZUZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIEBFTkRAXG59XG5cbiJdfQ==