obsidian-dev-utils 4.19.0 → 4.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 4.21.0
4
+
5
+ - Use Frontmatter casing
6
+
7
+ ## 4.20.0
8
+
9
+ - Support string urls
10
+ - Don't allow whitespace in url
11
+
3
12
  ## 4.19.0
4
13
 
5
14
  - Don't fail if couldn't decode URL
@@ -239,4 +239,4 @@ async function renderPaginated(options) {
239
239
  renderPaginatedList,
240
240
  renderPaginatedTable
241
241
  });
242
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEYXRhdmlld1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnRcbmltcG9ydCAnLi4vQHR5cGVzL2NvbXBhcmUtdmVyc2lvbnMuZC50cyc7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhdGFBcnJheSxcbiAgRGF0YXZpZXdBcGksXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250TWF0dGVyIH0gZnJvbSAnLi9Gcm9udE1hdHRlci50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRBc3luY1RvU3luYyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7XG4gIGVycm9yVG9TdHJpbmcsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tICcuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3QVBJIG9iamVjdCByZXByZXNlbnRzIHRoZSBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbWJpbmVkIHBhZ2UgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93blBhZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+ID0gQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4gJiBTTWFya2Rvd25QYWdlO1xuXG4vKipcbiAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgdGhlIERhdGF2aWV3IElubGluZSBBUEksIHByb3ZpZGluZyBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIGN1c3RvbSBwYWdlIHR5cGVzIGFuZCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhdmlld0lubGluZUFwaSBleHRlbmRzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwge1xuICAvKipcbiAgICogV3JhcHMgYW4gYXJyYXkgb2YgaXRlbXMgaW50byBhIGBEYXRhQXJyYXlgIG9iamVjdC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGluIHRoZSBhcnJheS5cbiAgICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBBIGBEYXRhQXJyYXlgIGNvbnRhaW5pbmcgdGhlIGl0ZW1zLlxuICAgKi9cbiAgYXJyYXk8VD4oYXJyOiBUW10pOiBEYXRhQXJyYXk8VD47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBwYWdlLCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgY3VycmVudDxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KCk6IENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udE1hdHRlcj47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwYWdlcyBiYXNlZCBvbiBhbiBvcHRpb25hbCBxdWVyeSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHBhcmFtIHF1ZXJ5IC0gQW4gb3B0aW9uYWwgc3RyaW5nIHF1ZXJ5IHRvIGZpbHRlciB0aGUgcGFnZXMuXG4gICAqIEByZXR1cm5zIEEgYERhdGFBcnJheWAgb2YgcGFnZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcGFnZXM8Q3VzdG9tRnJvbnRNYXR0ZXIgPSB1bmtub3duPihxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRNYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGgoXG4gICAgdGV4dDogdW5rbm93bixcbiAgICBvcHRpb25zPzogRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyXG4gICk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG4vKipcbiAqIERvbUVsZW1lbnRJbmZvIHdpdGggYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICovXG5leHBvcnQgdHlwZSBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXIgPSB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH0gJiBEb21FbGVtZW50SW5mbztcblxuLyoqXG4gKiBUaGUgY29tYmluZWQgZmlsZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duRmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlWydmaWxlJ107XG5cbi8qKlxuICogTGlzdCBvZiBwYWdlIGZpbGVzLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBBcnJheU9yRGF0YUFycmF5PFBhZ2VGaWxlPjtcblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYWNoZSBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZShkdi5hcHAsIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpKTtcbn1cblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxuLyoqXG4gKiBBcnJheSBvciBEYXRhQXJyYXkgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IERhdGFBcnJheTxUPiB8IFRbXTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVySWZyYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpZnJhbWUuXG4gICAqL1xuICByZWxhdGl2ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgd2lkdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgZWxlbWVudCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZXIgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgcGFnaW5hdGVkIGNvbnRlbnQuXG4gICAqIEBwYXJhbSByb3dzIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICAgKi9cbiAgcmVuZGVyZXI6IChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBNYXliZVByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIG9mIHRoZSB0YWJsZSB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnRcbiAqIHRoYXQgd2FzIHVzZWQgYXMgdGhlIHRlbXBvcmFyeSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZW5kZXJlZENvbnRhaW5lcihkdjogRGF0YXZpZXdJbmxpbmVBcGksIHJlbmRlcmVyOiAoKSA9PiBNYXliZVByb21pc2U8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IHRlbXBDb250YWluZXIgPSBkdi5wYXJhZ3JhcGgoJycpO1xuICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ29udGFpbmVyIHBhcmVudCBub3QgZm91bmQnKSk7XG4gICAgdGVtcENvbnRhaW5lci5yZW1vdmUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wQ29udGFpbmVyO1xufVxuXG4vKipcbiAqIEluc2VydHMgYSBjb2RlIGJsb2NrIGludG8gdGhlIHNwZWNpZmllZCBEYXRhdmlldyBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgbGFuZ3VhZ2UgYW5kIGNvZGUuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlIHRvIGluc2VydCB0aGUgY29kZSBibG9jayBpbnRvLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gKiBAcmV0dXJucyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrKGR2OiBEYXRhdmlld0lubGluZUFwaSwgbGFuZ3VhZ2U6IHN0cmluZywgY29kZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGZlbmNlTWF0Y2hlcyA9IGNvZGUubWF0Y2hBbGwoL15gezMsfS9nbSk7XG4gIGNvbnN0IGZlbmNlTGVuZ3RocyA9IEFycmF5LmZyb20oZmVuY2VNYXRjaGVzKS5tYXAoKGZlbmNlTWF0Y2gpID0+IGZlbmNlTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgY29uc3QgbWF4RmVuY2VMZW5ndGggPSBNYXRoLm1heCgwLCAuLi5mZW5jZUxlbmd0aHMpO1xuICBjb25zdCByZXN1bHRGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDMsIG1heEZlbmNlTGVuZ3RoICsgMSk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlID0gJ2AnLnJlcGVhdChyZXN1bHRGZW5jZUxlbmd0aCk7XG5cbiAgZHYucGFyYWdyYXBoKGAke3Jlc3VsdEZlbmNlfSR7bGFuZ3VhZ2V9XG4ke2NvZGV9XG4ke3Jlc3VsdEZlbmNlfWApO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHJlbGF0aXZlIHBhdGgsIHdpZHRoLCBhbmQgaGVpZ2h0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgaWZyYW1lLlxuICpcbiAqIEByZXR1cm5zIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZnJhbWUob3B0aW9uczogUmVuZGVySWZyYW1lT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IG9wdGlvbnM7XG4gIGR2LmVsKCdpZnJhbWUnLCAnJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgocmVsYXRpdmVQYXRoT3JGaWxlKSwgZHYuY3VycmVudCgpLmZpbGUucGF0aCksXG4gICAgICB3aWR0aFxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCBsaXN0IHVzaW5nIHRoZSBwcm92aWRlZCBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBpbiB0aGUgbGlzdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBsaXN0LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzKTtcbiAgICB9LFxuICAgIHJvd3NcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIHRhYmxlIHJvd3MuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFibGUgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2LnRhYmxlKGhlYWRlcnMsIHJvd3MpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJlbmRlcmVyLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaCgnTm8gaXRlbXMgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuICBsZXQgaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlT3B0aW9uc1swXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpKTtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZUVsKCdkaXYnLCB7IGNsczogJ3BhZ2luYXRpb24nIH0pO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cxRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIGNyZWF0ZVBhZ2VMaW5rKCdGaXJzdCcsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKCdQcmV2JywgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPiAzKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSAyKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgMik7IGkrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayhpLnRvU3RyaW5nKCksIGksIGkgPT09IHBhZ2VOdW1iZXIpO1xuICAgICAgaWYgKGkgPT09IHBhZ2VOdW1iZXIpIHtcbiAgICAgICAgcGFnZUxpbmsuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFnZU51bWJlciA8IHRvdGFsUGFnZXMgLSAyKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoJ05leHQnLCBwYWdlTnVtYmVyICsgMSwgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG4gICAgY3JlYXRlUGFnZUxpbmsoJ0xhc3QnLCB0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnIEl0ZW1zIHBlciBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QgaXRlbXNQZXJQYWdlU2VsZWN0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NlbGVjdCcpO1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5jcmVhdGVFbCgnb3B0aW9uJywgeyB0ZXh0OiBvcHRpb24udG9TdHJpbmcoKSwgdmFsdWU6IG9wdGlvbi50b1N0cmluZygpIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IGl0ZW1zUGVyUGFnZS50b1N0cmluZygpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlKTtcbiAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICAgICAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJyAgSnVtcCB0byBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ2lucHV0JywgeyBhdHRyOiB7IG1heDogdG90YWxQYWdlcywgbWluOiAxIH0sIHR5cGU6ICdudW1iZXInIH0pO1xuICAgIGp1bXBUb1BhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQoanVtcFRvUGFnZUlucHV0LnZhbHVlKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NwYW4nLCB7IHRleHQ6IGAgIFBhZ2UgJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9IG9mICR7dG90YWxQYWdlcy50b1N0cmluZygpfSwgVG90YWwgaXRlbXM6ICR7cm93cy5sZW5ndGgudG9TdHJpbmcoKX1gIH0pO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFnZUxpbmsodGV4dDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIsIGRpc2FibGVkID0gZmFsc2UpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgICBjb25zdCBsaW5rID0gcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoJ2EnLCB7IGNsczogJ3BhZ2UtbGluaycsIGhyZWY6IGAjJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9YCwgdGV4dDogdGV4dCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICBsaW5rLm9uY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZU51bWJlcik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKCdzdHlsZScsIHsgdGV4dDogcGFnaW5hdGlvbkNzcyB9KTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCByb3dzRm9yQ3VycmVudFBhZ2UgPSByb3dzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcblxuICAgIGR2LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZHYuY29udGFpbmVyID0gb2xkQ29udGFpbmVyO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxnQ0FBTztBQVlQLG1CQUFtQztBQUNuQyxtQkFHTztBQUNQLHdCQUdPO0FBQ1AseUJBQTBDO0FBeUYxQyxlQUFzQix1QkFBdUIsSUFBc0M7QUFDakYsUUFBTSxhQUFhLE1BQU0sV0FBTywyQkFBUSxHQUFHLEtBQUssR0FBRyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7QUFDekU7QUFFQSxNQUFNLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEl0QixlQUFzQixxQkFBcUIsSUFBdUIsVUFBbUU7QUFDbkksUUFBTSxnQkFBZ0IsR0FBRyxVQUFVLEVBQUU7QUFDckMsS0FBRyxZQUFZO0FBQ2YsS0FBRyxVQUFVLE1BQU07QUFFbkIsTUFBSTtBQUNGLFVBQU0sU0FBUztBQUFBLEVBQ2pCLFNBQVMsR0FBRztBQUNWLE9BQUcsVUFBVSxlQUFNLDRCQUFjLENBQUMsQ0FBQztBQUFBLEVBQ3JDLFVBQUU7QUFDQSxPQUFHLFlBQVksY0FBYyxxQkFBaUIsOEJBQWdCLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUNyRyxrQkFBYyxPQUFPO0FBQUEsRUFDdkI7QUFFQSxTQUFPO0FBQ1Q7QUFVTyxTQUFTLGdCQUFnQixJQUF1QixVQUFrQixNQUFvQjtBQUMzRixRQUFNLGVBQWUsS0FBSyxT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
242
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEYXRhdmlld1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnRcbmltcG9ydCAnLi4vQHR5cGVzL2NvbXBhcmUtdmVyc2lvbnMuZC50cyc7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVQcm9taXNlIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhdmlld0lubGluZUFwaSBhcyBEYXRhdmlld0lubGluZUFwaU9yaWdpbmFsIH0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvYXBpL2lubGluZS1hcGkuZC50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIERhdGFBcnJheSxcbiAgRGF0YXZpZXdBcGksXG4gIFNNYXJrZG93blBhZ2Vcbn0gZnJvbSAnLi9AdHlwZXMvRGF0YXZpZXcvaW5kZXguZC50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHR5cGUgeyBDb21iaW5lZEZyb250bWF0dGVyIH0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRBc3luY1RvU3luYyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7XG4gIGVycm9yVG9TdHJpbmcsXG4gIHRocm93RXhwcmVzc2lvblxufSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5cbi8qKlxuICogRXhwb3J0IERhdGVUaW1lIGFuZCBMaW5rIHR5cGVzIGZyb20gdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IHR5cGUge1xuICBEYXRlVGltZSxcbiAgTGlua1xufSBmcm9tICcuL0B0eXBlcy9EYXRhdmlldy9pbmRleC5kLnRzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3QVBJIG9iamVjdCByZXByZXNlbnRzIHRoZSBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggRGF0YXZpZXcgaW4gT2JzaWRpYW4uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbWJpbmVkIHBhZ2UgdHlwZSwgd2hpY2ggaW5jbHVkZXMgdGhlIGZyb250IG1hdHRlciBhbmQgdGhlIFNNYXJrZG93blBhZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+ID0gQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4gJiBTTWFya2Rvd25QYWdlO1xuXG4vKipcbiAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgdGhlIERhdGF2aWV3IElubGluZSBBUEksIHByb3ZpZGluZyBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIGN1c3RvbSBwYWdlIHR5cGVzIGFuZCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhdmlld0lubGluZUFwaSBleHRlbmRzIERhdGF2aWV3SW5saW5lQXBpT3JpZ2luYWwge1xuICAvKipcbiAgICogV3JhcHMgYW4gYXJyYXkgb2YgaXRlbXMgaW50byBhIGBEYXRhQXJyYXlgIG9iamVjdC5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGluIHRoZSBhcnJheS5cbiAgICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byB3cmFwLlxuICAgKiBAcmV0dXJucyBBIGBEYXRhQXJyYXlgIGNvbnRhaW5pbmcgdGhlIGl0ZW1zLlxuICAgKi9cbiAgYXJyYXk8VD4oYXJyOiBUW10pOiBEYXRhQXJyYXk8VD47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBwYWdlLCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgY3VycmVudDxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KCk6IENvbWJpbmVkUGFnZTxDdXN0b21Gcm9udG1hdHRlcj47XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBwYWdlcyBiYXNlZCBvbiBhbiBvcHRpb25hbCBxdWVyeSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHBhcmFtIHF1ZXJ5IC0gQW4gb3B0aW9uYWwgc3RyaW5nIHF1ZXJ5IHRvIGZpbHRlciB0aGUgcGFnZXMuXG4gICAqIEByZXR1cm5zIEEgYERhdGFBcnJheWAgb2YgcGFnZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgcGFnZXM8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihxdWVyeT86IHN0cmluZyk6IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGgoXG4gICAgdGV4dDogdW5rbm93bixcbiAgICBvcHRpb25zPzogRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyXG4gICk6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xufVxuXG4vKipcbiAqIERvbUVsZW1lbnRJbmZvIHdpdGggYW4gb3B0aW9uYWwgY29udGFpbmVyLlxuICovXG5leHBvcnQgdHlwZSBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXIgPSB7IGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IH0gJiBEb21FbGVtZW50SW5mbztcblxuLyoqXG4gKiBUaGUgY29tYmluZWQgZmlsZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duRmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlWydmaWxlJ107XG5cbi8qKlxuICogTGlzdCBvZiBwYWdlIGZpbGVzLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBBcnJheU9yRGF0YUFycmF5PFBhZ2VGaWxlPjtcblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYWNoZSBpcyByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUoZHY6IERhdGF2aWV3SW5saW5lQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IERhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZShkdi5hcHAsIGR2LmN1cnJlbnQoKS5maWxlLnBhdGgpKTtcbn1cblxuY29uc3QgcGFnaW5hdGlvbkNzcyA9IGBcbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IGdyYXk7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsge1xuICBtYXJnaW46IDAgNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGJsdWU7XG59XG5cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbms6aG92ZXI6bm90KC5kaXNhYmxlZCkge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5wYWdpbmF0aW9uIC5wYWdlLWxpbmsuY3VycmVudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnBhZ2luYXRpb24gc2VsZWN0LFxuLnBhZ2luYXRpb24gaW5wdXQge1xuICBtYXJnaW46IDAgNXB4O1xufVxuYDtcblxuLyoqXG4gKiBBcnJheSBvciBEYXRhQXJyYXkgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXJyYXlPckRhdGFBcnJheTxUPiA9IERhdGFBcnJheTxUPiB8IFRbXTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVySWZyYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gICAqL1xuICBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGlmcmFtZS5cbiAgICovXG4gIGhlaWdodDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpZnJhbWUuXG4gICAqL1xuICByZWxhdGl2ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgaWZyYW1lLlxuICAgKi9cbiAgd2lkdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgbGlzdCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAgICovXG4gIGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgZWxlbWVudCB1c2luZyB0aGUgRGF0YXZpZXcgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZE9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICovXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZXIgZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgcGFnaW5hdGVkIGNvbnRlbnQuXG4gICAqIEBwYXJhbSByb3dzIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICAgKi9cbiAgcmVuZGVyZXI6IChyb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBNYXliZVByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4ge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBbMTAsIDIwLCA1MCwgMTAwXWAuXG4gICAqL1xuICBpdGVtc1BlclBhZ2VPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFRoZSByb3dzIG9mIHRoZSB0YWJsZSB0byBwYWdpbmF0ZS5cbiAgICovXG4gIHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD47XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnRcbiAqIHRoYXQgd2FzIHVzZWQgYXMgdGhlIHRlbXBvcmFyeSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZW5kZXJlZENvbnRhaW5lcihkdjogRGF0YXZpZXdJbmxpbmVBcGksIHJlbmRlcmVyOiAoKSA9PiBNYXliZVByb21pc2U8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IHRlbXBDb250YWluZXIgPSBkdi5wYXJhZ3JhcGgoJycpO1xuICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkdi5jb250YWluZXIgPSB0ZW1wQ29udGFpbmVyLnBhcmVudEVsZW1lbnQgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ29udGFpbmVyIHBhcmVudCBub3QgZm91bmQnKSk7XG4gICAgdGVtcENvbnRhaW5lci5yZW1vdmUoKTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wQ29udGFpbmVyO1xufVxuXG4vKipcbiAqIEluc2VydHMgYSBjb2RlIGJsb2NrIGludG8gdGhlIHNwZWNpZmllZCBEYXRhdmlldyBpbnN0YW5jZSB1c2luZyB0aGUgcHJvdmlkZWQgbGFuZ3VhZ2UgYW5kIGNvZGUuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlIHRvIGluc2VydCB0aGUgY29kZSBibG9jayBpbnRvLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICogQHBhcmFtIGNvZGUgLSBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gKiBAcmV0dXJucyBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrKGR2OiBEYXRhdmlld0lubGluZUFwaSwgbGFuZ3VhZ2U6IHN0cmluZywgY29kZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGZlbmNlTWF0Y2hlcyA9IGNvZGUubWF0Y2hBbGwoL15gezMsfS9nbSk7XG4gIGNvbnN0IGZlbmNlTGVuZ3RocyA9IEFycmF5LmZyb20oZmVuY2VNYXRjaGVzKS5tYXAoKGZlbmNlTWF0Y2gpID0+IGZlbmNlTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgY29uc3QgbWF4RmVuY2VMZW5ndGggPSBNYXRoLm1heCgwLCAuLi5mZW5jZUxlbmd0aHMpO1xuICBjb25zdCByZXN1bHRGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDMsIG1heEZlbmNlTGVuZ3RoICsgMSk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlID0gJ2AnLnJlcGVhdChyZXN1bHRGZW5jZUxlbmd0aCk7XG5cbiAgZHYucGFyYWdyYXBoKGAke3Jlc3VsdEZlbmNlfSR7bGFuZ3VhZ2V9XG4ke2NvZGV9XG4ke3Jlc3VsdEZlbmNlfWApO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gaWZyYW1lIGluIHRoZSBEYXRhdmlldyBjb250YWluZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHJlbGF0aXZlIHBhdGgsIHdpZHRoLCBhbmQgaGVpZ2h0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbmRlcmluZyB0aGUgaWZyYW1lLlxuICpcbiAqIEByZXR1cm5zIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJJZnJhbWUob3B0aW9uczogUmVuZGVySWZyYW1lT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IG9wdGlvbnM7XG4gIGR2LmVsKCdpZnJhbWUnLCAnJywge1xuICAgIGF0dHI6IHtcbiAgICAgIGhlaWdodCxcbiAgICAgIHNyYzogcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybChkdi5hcHAsIGdldFBhdGgocmVsYXRpdmVQYXRoT3JGaWxlKSwgZHYuY3VycmVudCgpLmZpbGUucGF0aCksXG4gICAgICB3aWR0aFxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCBsaXN0IHVzaW5nIHRoZSBwcm92aWRlZCBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBpdGVtcyBpbiB0aGUgbGlzdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBsaXN0LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KG9wdGlvbnM6IFJlbmRlclBhZ2luYXRlZExpc3RPcHRpb25zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gb3B0aW9ucztcbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkKHtcbiAgICBkdixcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zLFxuICAgIHJlbmRlcmVyOiBhc3luYyAocm93czogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzKTtcbiAgICB9LFxuICAgIHJvd3NcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBhZ2luYXRlZCB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgaW4gdGhlIHRhYmxlIHJvd3MuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFibGUgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRUYWJsZTxUIGV4dGVuZHMgdW5rbm93bltdPihvcHRpb25zOiBSZW5kZXJQYWdpbmF0ZWRUYWJsZU9wdGlvbnM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZCh7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICByZW5kZXJlcjogYXN5bmMgKHJvd3M6IEFycmF5T3JEYXRhQXJyYXk8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IGR2LnRhYmxlKGhlYWRlcnMsIHJvd3MpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZW50IGlzIHJlbmRlcmVkLlxuICovXG5hc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWQ8VD4ob3B0aW9uczogUmVuZGVyUGFnaW5hdGVkT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaXRlbXNQZXJQYWdlT3B0aW9ucyA9IFsxMCwgMjAsIDUwLCAxMDBdLFxuICAgIHJlbmRlcmVyLFxuICAgIHJvd3NcbiAgfSA9IG9wdGlvbnM7XG4gIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgIGR2LnBhcmFncmFwaCgnTm8gaXRlbXMgZm91bmQnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuICBsZXQgaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlT3B0aW9uc1swXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKCdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpKTtcbiAgbGV0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICBhd2FpdCByZW5kZXJQYWdlKDEpO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdpbmF0aW9uRGl2ID0gY29udGFpbmVyLmNyZWF0ZUVsKCdkaXYnLCB7IGNsczogJ3BhZ2luYXRpb24nIH0pO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cxRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIGNyZWF0ZVBhZ2VMaW5rKCdGaXJzdCcsIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuICAgIGNyZWF0ZVBhZ2VMaW5rKCdQcmV2JywgcGFnZU51bWJlciAtIDEsIHBhZ2VOdW1iZXIgPT09IDEpO1xuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPiAzKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSAyKTsgaSA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgMik7IGkrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayhpLnRvU3RyaW5nKCksIGksIGkgPT09IHBhZ2VOdW1iZXIpO1xuICAgICAgaWYgKGkgPT09IHBhZ2VOdW1iZXIpIHtcbiAgICAgICAgcGFnZUxpbmsuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFnZU51bWJlciA8IHRvdGFsUGFnZXMgLSAyKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoJ05leHQnLCBwYWdlTnVtYmVyICsgMSwgcGFnZU51bWJlciA9PT0gdG90YWxQYWdlcyk7XG4gICAgY3JlYXRlUGFnZUxpbmsoJ0xhc3QnLCB0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzKTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdzcGFuJywgeyB0ZXh0OiAnIEl0ZW1zIHBlciBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QgaXRlbXNQZXJQYWdlU2VsZWN0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NlbGVjdCcpO1xuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMuZm9yRWFjaCgob3B0aW9uOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5jcmVhdGVFbCgnb3B0aW9uJywgeyB0ZXh0OiBvcHRpb24udG9TdHJpbmcoKSwgdmFsdWU6IG9wdGlvbi50b1N0cmluZygpIH0pO1xuICAgIH0pO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IGl0ZW1zUGVyUGFnZS50b1N0cmluZygpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoaXRlbXNQZXJQYWdlU2VsZWN0LnZhbHVlKTtcbiAgICAgIHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyBpdGVtc1BlclBhZ2UpO1xuICAgICAgYXdhaXQgcmVuZGVyUGFnZSgxKTtcbiAgICB9KSk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc3BhbicsIHsgdGV4dDogJyAgSnVtcCB0byBwYWdlOiAnIH0pO1xuXG4gICAgY29uc3QganVtcFRvUGFnZUlucHV0ID0gcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ2lucHV0JywgeyBhdHRyOiB7IG1heDogdG90YWxQYWdlcywgbWluOiAxIH0sIHR5cGU6ICdudW1iZXInIH0pO1xuICAgIGp1bXBUb1BhZ2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICBjb25zdCBwYWdlID0gcGFyc2VJbnQoanVtcFRvUGFnZUlucHV0LnZhbHVlKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgcGFnaW5hdGlvblJvdzJEaXYuY3JlYXRlRWwoJ3NwYW4nLCB7IHRleHQ6IGAgIFBhZ2UgJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9IG9mICR7dG90YWxQYWdlcy50b1N0cmluZygpfSwgVG90YWwgaXRlbXM6ICR7cm93cy5sZW5ndGgudG9TdHJpbmcoKX1gIH0pO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGFnZUxpbmsodGV4dDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIsIGRpc2FibGVkID0gZmFsc2UpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgICBjb25zdCBsaW5rID0gcGFnaW5hdGlvblJvdzFEaXYuY3JlYXRlRWwoJ2EnLCB7IGNsczogJ3BhZ2UtbGluaycsIGhyZWY6IGAjJHtwYWdlTnVtYmVyLnRvU3RyaW5nKCl9YCwgdGV4dDogdGV4dCB9KTtcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICBsaW5rLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICBsaW5rLm9uY2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlclBhZ2UocGFnZU51bWJlcik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29udGFpbmVyLmVtcHR5KCk7XG4gICAgY29udGFpbmVyLmNyZWF0ZUVsKCdzdHlsZScsIHsgdGV4dDogcGFnaW5hdGlvbkNzcyB9KTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAocGFnZU51bWJlciAtIDEpICogaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIGl0ZW1zUGVyUGFnZTtcbiAgICBjb25zdCByb3dzRm9yQ3VycmVudFBhZ2UgPSByb3dzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcblxuICAgIGR2LmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkdi5wYXJhZ3JhcGgoJ1x1Mjc0QycgKyBlcnJvclRvU3RyaW5nKGUpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZHYuY29udGFpbmVyID0gb2xkQ29udGFpbmVyO1xuICAgIH1cblxuICAgIGNyZWF0ZVBhZ2luYXRpb25Db250cm9scyhwYWdlTnVtYmVyKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxnQ0FBTztBQVlQLG1CQUFtQztBQUNuQyxtQkFHTztBQUNQLHdCQUdPO0FBQ1AseUJBQTBDO0FBeUYxQyxlQUFzQix1QkFBdUIsSUFBc0M7QUFDakYsUUFBTSxhQUFhLE1BQU0sV0FBTywyQkFBUSxHQUFHLEtBQUssR0FBRyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7QUFDekU7QUFFQSxNQUFNLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEl0QixlQUFzQixxQkFBcUIsSUFBdUIsVUFBbUU7QUFDbkksUUFBTSxnQkFBZ0IsR0FBRyxVQUFVLEVBQUU7QUFDckMsS0FBRyxZQUFZO0FBQ2YsS0FBRyxVQUFVLE1BQU07QUFFbkIsTUFBSTtBQUNGLFVBQU0sU0FBUztBQUFBLEVBQ2pCLFNBQVMsR0FBRztBQUNWLE9BQUcsVUFBVSxlQUFNLDRCQUFjLENBQUMsQ0FBQztBQUFBLEVBQ3JDLFVBQUU7QUFDQSxPQUFHLFlBQVksY0FBYyxxQkFBaUIsOEJBQWdCLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUNyRyxrQkFBYyxPQUFPO0FBQUEsRUFDdkI7QUFFQSxTQUFPO0FBQ1Q7QUFVTyxTQUFTLGdCQUFnQixJQUF1QixVQUFrQixNQUFvQjtBQUMzRixRQUFNLGVBQWUsS0FBSyxT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
@@ -7,7 +7,7 @@ import type { MaybePromise } from '../Async.ts';
7
7
  import type { DataviewInlineApi as DataviewInlineApiOriginal } from './@types/Dataview/api/inline-api.d.ts';
8
8
  import type { DataArray, DataviewApi, SMarkdownPage } from './@types/Dataview/index.d.ts';
9
9
  import type { PathOrFile } from './FileSystem.ts';
10
- import type { CombinedFrontMatter } from './FrontMatter.ts';
10
+ import type { CombinedFrontmatter } from './Frontmatter.ts';
11
11
  /**
12
12
  * Export DateTime and Link types from the Dataview API.
13
13
  */
@@ -21,7 +21,7 @@ declare global {
21
21
  /**
22
22
  * The combined page type, which includes the front matter and the SMarkdownPage.
23
23
  */
24
- export type CombinedPage<CustomFrontMatter = unknown> = CombinedFrontMatter<CustomFrontMatter> & SMarkdownPage;
24
+ export type CombinedPage<CustomFrontmatter = unknown> = CombinedFrontmatter<CustomFrontmatter> & SMarkdownPage;
25
25
  /**
26
26
  * Extended interface for the Dataview Inline API, providing additional methods for custom page types and array handling.
27
27
  *
@@ -42,7 +42,7 @@ export interface DataviewInlineApi extends DataviewInlineApiOriginal {
42
42
  * @typeParam CustomPage - The type of the custom page. Defaults to `SMarkdownPage`.
43
43
  * @returns The current page.
44
44
  */
45
- current<CustomFrontMatter = unknown>(): CombinedPage<CustomFrontMatter>;
45
+ current<CustomFrontmatter = unknown>(): CombinedPage<CustomFrontmatter>;
46
46
  /**
47
47
  * Retrieves pages based on an optional query, with an optional custom page type.
48
48
  *
@@ -50,7 +50,7 @@ export interface DataviewInlineApi extends DataviewInlineApiOriginal {
50
50
  * @param query - An optional string query to filter the pages.
51
51
  * @returns A `DataArray` of pages matching the query.
52
52
  */
53
- pages<CustomFrontMatter = unknown>(query?: string): DataArray<CombinedPage<CustomFrontMatter>>;
53
+ pages<CustomFrontmatter = unknown>(query?: string): DataArray<CombinedPage<CustomFrontmatter>>;
54
54
  /**
55
55
  * Creates a paragraph HTML element with the provided text and optional DOM element options.
56
56
  *
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(FileChange_exports);
35
35
  var import_Object = require('../Object.cjs');
36
36
  var import_ValueProvider = require('../ValueProvider.cjs');
37
37
  var import_FileSystem = require('./FileSystem.cjs');
38
- var import_FrontMatter = require('./FrontMatter.cjs');
38
+ var import_Frontmatter = require('./Frontmatter.cjs');
39
39
  var import_Vault = require('./Vault.cjs');
40
40
  var __process = globalThis["process"] ?? {
41
41
  "cwd": () => "/",
@@ -47,7 +47,7 @@ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions =
47
47
  const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
48
48
  await (0, import_Vault.process)(app, pathOrFile, async (content) => {
49
49
  let changes = await (0, import_ValueProvider.resolveValue)(changesProvider);
50
- const frontMatter = (0, import_FileSystem.isCanvasFile)(pathOrFile) ? JSON.parse(content) : (0, import_FrontMatter.parseFrontMatter)(content);
50
+ const frontmatter = (0, import_FileSystem.isCanvasFile)(pathOrFile) ? JSON.parse(content) : (0, import_Frontmatter.parseFrontmatter)(content);
51
51
  for (const change of changes) {
52
52
  if (isContentChange(change)) {
53
53
  const actualContent = content.slice(change.startIndex, change.endIndex);
@@ -62,12 +62,12 @@ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions =
62
62
  return null;
63
63
  }
64
64
  } else if (isFrontmatterChange(change)) {
65
- const actualContent = (0, import_Object.getNestedPropertyValue)(frontMatter, change.frontMatterKey);
65
+ const actualContent = (0, import_Object.getNestedPropertyValue)(frontmatter, change.frontmatterKey);
66
66
  if (actualContent !== change.oldContent) {
67
67
  console.warn("Content mismatch", {
68
68
  actualContent,
69
69
  expectedContent: change.oldContent,
70
- frontMatterKey: change.frontMatterKey,
70
+ frontmatterKey: change.frontmatterKey,
71
71
  path: (0, import_FileSystem.getPath)(pathOrFile)
72
72
  });
73
73
  return null;
@@ -79,7 +79,7 @@ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions =
79
79
  return a.startIndex - b.startIndex;
80
80
  }
81
81
  if (isFrontmatterChange(a) && isFrontmatterChange(b)) {
82
- return a.frontMatterKey.localeCompare(b.frontMatterKey);
82
+ return a.frontmatterKey.localeCompare(b.frontmatterKey);
83
83
  }
84
84
  return isContentChange(a) ? -1 : 1;
85
85
  });
@@ -111,23 +111,23 @@ async function applyFileChanges(app, pathOrFile, changesProvider, retryOptions =
111
111
  }
112
112
  let newContent = "";
113
113
  let lastIndex = 0;
114
- let frontMatterChanged = false;
114
+ let frontmatterChanged = false;
115
115
  for (const change of changes) {
116
116
  if (isContentChange(change)) {
117
117
  newContent += content.slice(lastIndex, change.startIndex);
118
118
  newContent += change.newContent;
119
119
  lastIndex = change.endIndex;
120
120
  } else if (isFrontmatterChange(change)) {
121
- (0, import_Object.setNestedPropertyValue)(frontMatter, change.frontMatterKey, change.newContent);
122
- frontMatterChanged = true;
121
+ (0, import_Object.setNestedPropertyValue)(frontmatter, change.frontmatterKey, change.newContent);
122
+ frontmatterChanged = true;
123
123
  }
124
124
  }
125
125
  if ((0, import_FileSystem.isCanvasFile)(pathOrFile)) {
126
- newContent = JSON.stringify(frontMatter, null, " ");
126
+ newContent = JSON.stringify(frontmatter, null, " ");
127
127
  } else {
128
128
  newContent += content.slice(lastIndex);
129
- if (frontMatterChanged) {
130
- newContent = (0, import_FrontMatter.setFrontMatter)(newContent, frontMatter);
129
+ if (frontmatterChanged) {
130
+ newContent = (0, import_Frontmatter.setFrontmatter)(newContent, frontmatter);
131
131
  }
132
132
  }
133
133
  return newContent;
@@ -137,7 +137,7 @@ function isContentChange(fileChange) {
137
137
  return fileChange.startIndex !== void 0;
138
138
  }
139
139
  function isFrontmatterChange(fileChange) {
140
- return fileChange.frontMatterKey !== void 0;
140
+ return fileChange.frontmatterKey !== void 0;
141
141
  }
142
142
  // Annotate the CommonJS export names for ESM import in node:
143
143
  0 && (module.exports = {
@@ -145,4 +145,4 @@ function isFrontmatterChange(fileChange) {
145
145
  isContentChange,
146
146
  isFrontmatterChange
147
147
  });
148
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRmlsZUNoYW5nZVxuICogQ29udGFpbnMgdXRpbGl0eSB0eXBlcyBhbmQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBmaWxlIGNoYW5nZXMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuXG5pbXBvcnQge1xuICBkZWVwRXF1YWwsXG4gIGdldE5lc3RlZFByb3BlcnR5VmFsdWUsXG4gIHNldE5lc3RlZFByb3BlcnR5VmFsdWVcbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHtcbiAgZ2V0UGF0aCxcbiAgaXNDYW52YXNGaWxlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBwYXJzZUZyb250TWF0dGVyLFxuICBzZXRGcm9udE1hdHRlclxufSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGVudCBib2R5IGNoYW5nZSBpbiB0aGUgVmF1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudENoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xuICAvKipcbiAgICAgKiBUaGUgZW5kIGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cbiAgICAgKi9cbiAgZW5kSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICAgKiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIGNoYW5nZSBpbiB0aGUgZmlsZSBjb250ZW50LlxuICAgICAqL1xuICBzdGFydEluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZpbGUgY2hhbmdlIGluIHRoZSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBuZXcgY29udGVudCB0byByZXBsYWNlIHRoZSBvbGQgY29udGVudC5cbiAgICovXG4gIG5ld0NvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9sZCBjb250ZW50IHRoYXQgd2lsbCBiZSByZXBsYWNlZC5cbiAgICovXG4gIG9sZENvbnRlbnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlIGluIHRoZSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9udG1hdHRlckNoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xuICAvKipcbiAgICogVGhlIGtleSBpbiB0aGUgZnJvbnRtYXR0ZXIgdG8gdXNlIGZvciB0aGUgbGluay5cbiAgICovXG4gIGZyb250TWF0dGVyS2V5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXBwbGllcyBhIHNlcmllcyBvZiBmaWxlIGNoYW5nZXMgdG8gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggd2l0aGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlIHdoZXJlIHRoZSBmaWxlIGNoYW5nZXMgd2lsbCBiZSBhcHBsaWVkLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHdoaWNoIHRoZSBjaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkLlxuICogQHBhcmFtIGNoYW5nZXNQcm92aWRlciAtIEEgcHJvdmlkZXIgdGhhdCByZXR1cm5zIGFuIGFycmF5IG9mIGZpbGUgY2hhbmdlcyB0byBhcHBseS5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCBzZXR0aW5ncyB0aGF0IGRldGVybWluZSBob3cgdGhlIG9wZXJhdGlvbiBzaG91bGQgcmV0cnkgb24gZmFpbHVyZS5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGNoYW5nZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBhcHBsaWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlGaWxlQ2hhbmdlcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgYXdhaXQgcHJvY2VzcyhhcHAsIHBhdGhPckZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XG4gICAgbGV0IGNoYW5nZXMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY2hhbmdlc1Byb3ZpZGVyKTtcbiAgICBjb25zdCBmcm9udE1hdHRlciA9IGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlKSA/IEpTT04ucGFyc2UoY29udGVudCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gOiBwYXJzZUZyb250TWF0dGVyKGNvbnRlbnQpO1xuXG4gICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBjb250ZW50LnNsaWNlKGNoYW5nZS5zdGFydEluZGV4LCBjaGFuZ2UuZW5kSW5kZXgpO1xuICAgICAgICBpZiAoYWN0dWFsQ29udGVudCAhPT0gY2hhbmdlLm9sZENvbnRlbnQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgICBhY3R1YWxDb250ZW50LFxuICAgICAgICAgICAgZW5kSW5kZXg6IGNoYW5nZS5lbmRJbmRleCxcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgICBwYXRoOiBnZXRQYXRoKHBhdGhPckZpbGUpLFxuICAgICAgICAgICAgc3RhcnRJbmRleDogY2hhbmdlLnN0YXJ0SW5kZXhcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgICBjb25zdCBhY3R1YWxDb250ZW50ID0gZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udE1hdHRlciwgY2hhbmdlLmZyb250TWF0dGVyS2V5KTtcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb250ZW50IG1pc21hdGNoJywge1xuICAgICAgICAgICAgYWN0dWFsQ29udGVudCxcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgICBmcm9udE1hdHRlcktleTogY2hhbmdlLmZyb250TWF0dGVyS2V5LFxuICAgICAgICAgICAgcGF0aDogZ2V0UGF0aChwYXRoT3JGaWxlKVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoYSkgJiYgaXNDb250ZW50Q2hhbmdlKGIpKSB7XG4gICAgICAgIHJldHVybiBhLnN0YXJ0SW5kZXggLSBiLnN0YXJ0SW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoYikpIHtcbiAgICAgICAgcmV0dXJuIGEuZnJvbnRNYXR0ZXJLZXkubG9jYWxlQ29tcGFyZShiLmZyb250TWF0dGVyS2V5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlzQ29udGVudENoYW5nZShhKSA/IC0xIDogMTtcbiAgICB9KTtcblxuICAgIC8vIEJVRzogaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L2J1Zy1kdXBsaWNhdGVkLWxpbmtzLWluLW1ldGFkYXRhY2FjaGUtaW5zaWRlLWZvb3Rub3Rlcy84NTU1MVxuICAgIGNoYW5nZXMgPSBjaGFuZ2VzLmZpbHRlcigoY2hhbmdlLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGNoYW5nZS5vbGRDb250ZW50ID09PSBjaGFuZ2UubmV3Q29udGVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gIWRlZXBFcXVhbChjaGFuZ2UsIGNoYW5nZXNbaW5kZXggLSAxXSk7XG4gICAgfSk7XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByZXZpb3VzQ2hhbmdlID0gY2hhbmdlc1tpIC0gMV07XG4gICAgICBpZiAoIXByZXZpb3VzQ2hhbmdlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNDb250ZW50Q2hhbmdlKHByZXZpb3VzQ2hhbmdlKSAmJiBpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCAmJiBjaGFuZ2Uuc3RhcnRJbmRleCAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCA+IGNoYW5nZS5zdGFydEluZGV4KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignT3ZlcmxhcHBpbmcgY2hhbmdlcycsIHtcbiAgICAgICAgICBjaGFuZ2UsXG4gICAgICAgICAgcHJldmlvdXNDaGFuZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdDb250ZW50ID0gJyc7XG4gICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgbGV0IGZyb250TWF0dGVyQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XG4gICAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgsIGNoYW5nZS5zdGFydEluZGV4KTtcbiAgICAgICAgbmV3Q29udGVudCArPSBjaGFuZ2UubmV3Q29udGVudDtcbiAgICAgICAgbGFzdEluZGV4ID0gY2hhbmdlLmVuZEluZGV4O1xuICAgICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgICAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udE1hdHRlciwgY2hhbmdlLmZyb250TWF0dGVyS2V5LCBjaGFuZ2UubmV3Q29udGVudCk7XG4gICAgICAgIGZyb250TWF0dGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlKSkge1xuICAgICAgbmV3Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KGZyb250TWF0dGVyLCBudWxsLCAnXFx0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgpO1xuICAgICAgaWYgKGZyb250TWF0dGVyQ2hhbmdlZCkge1xuICAgICAgICBuZXdDb250ZW50ID0gc2V0RnJvbnRNYXR0ZXIobmV3Q29udGVudCwgZnJvbnRNYXR0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3Q29udGVudDtcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGNvbnRlbnQgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZW50Q2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIENvbnRlbnRDaGFuZ2Uge1xuICByZXR1cm4gKGZpbGVDaGFuZ2UgYXMgUGFydGlhbDxDb250ZW50Q2hhbmdlPikuc3RhcnRJbmRleCAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlLlxuICpcbiAqIEBwYXJhbSBmaWxlQ2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyQ2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIEZyb250bWF0dGVyQ2hhbmdlIHtcbiAgcmV0dXJuIChmaWxlQ2hhbmdlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJDaGFuZ2U+KS5mcm9udE1hdHRlcktleSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEsb0JBSU87QUFDUCwyQkFBNkI7QUFDN0Isd0JBR087QUFDUCx5QkFHTztBQUNQLG1CQUF3QjtBQTlCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQThFQSxlQUFzQixpQkFBaUIsS0FBVSxZQUF3QixpQkFBOEMsZUFBc0MsQ0FBQyxHQUFrQjtBQUM5SyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBQzdGLFlBQU0sc0JBQVEsS0FBSyxZQUFZLE9BQU8sWUFBWTtBQUNoRCxRQUFJLFVBQVUsVUFBTSxtQ0FBYSxlQUFlO0FBQ2hELFVBQU0sa0JBQWMsZ0NBQWEsVUFBVSxJQUFJLEtBQUssTUFBTSxPQUFPLFFBQStCLHFDQUFpQixPQUFPO0FBRXhILGVBQVcsVUFBVSxTQUFTO0FBQzVCLFVBQUksZ0JBQWdCLE1BQU0sR0FBRztBQUMzQixjQUFNLGdCQUFn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
148
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVDaGFuZ2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRmlsZUNoYW5nZVxuICogQ29udGFpbnMgdXRpbGl0eSB0eXBlcyBhbmQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBmaWxlIGNoYW5nZXMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi4vVmFsdWVQcm92aWRlci50cyc7XG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuXG5pbXBvcnQge1xuICBkZWVwRXF1YWwsXG4gIGdldE5lc3RlZFByb3BlcnR5VmFsdWUsXG4gIHNldE5lc3RlZFByb3BlcnR5VmFsdWVcbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4uL1ZhbHVlUHJvdmlkZXIudHMnO1xuaW1wb3J0IHtcbiAgZ2V0UGF0aCxcbiAgaXNDYW52YXNGaWxlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBwYXJzZUZyb250bWF0dGVyLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL0Zyb250bWF0dGVyLnRzJztcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGVudCBib2R5IGNoYW5nZSBpbiB0aGUgVmF1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudENoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xuICAvKipcbiAgICAgKiBUaGUgZW5kIGluZGV4IG9mIHRoZSBjaGFuZ2UgaW4gdGhlIGZpbGUgY29udGVudC5cbiAgICAgKi9cbiAgZW5kSW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICAgKiBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIGNoYW5nZSBpbiB0aGUgZmlsZSBjb250ZW50LlxuICAgICAqL1xuICBzdGFydEluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGZpbGUgY2hhbmdlIGluIHRoZSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlQ2hhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSBuZXcgY29udGVudCB0byByZXBsYWNlIHRoZSBvbGQgY29udGVudC5cbiAgICovXG4gIG5ld0NvbnRlbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9sZCBjb250ZW50IHRoYXQgd2lsbCBiZSByZXBsYWNlZC5cbiAgICovXG4gIG9sZENvbnRlbnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlIGluIHRoZSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9udG1hdHRlckNoYW5nZSBleHRlbmRzIEZpbGVDaGFuZ2Uge1xuICAvKipcbiAgICogVGhlIGtleSBpbiB0aGUgZnJvbnRtYXR0ZXIgdG8gdXNlIGZvciB0aGUgbGluay5cbiAgICovXG4gIGZyb250bWF0dGVyS2V5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXBwbGllcyBhIHNlcmllcyBvZiBmaWxlIGNoYW5nZXMgdG8gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggd2l0aGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcGxpY2F0aW9uIGluc3RhbmNlIHdoZXJlIHRoZSBmaWxlIGNoYW5nZXMgd2lsbCBiZSBhcHBsaWVkLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHdoaWNoIHRoZSBjaGFuZ2VzIHNob3VsZCBiZSBhcHBsaWVkLlxuICogQHBhcmFtIGNoYW5nZXNQcm92aWRlciAtIEEgcHJvdmlkZXIgdGhhdCByZXR1cm5zIGFuIGFycmF5IG9mIGZpbGUgY2hhbmdlcyB0byBhcHBseS5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCBzZXR0aW5ncyB0aGF0IGRldGVybWluZSBob3cgdGhlIG9wZXJhdGlvbiBzaG91bGQgcmV0cnkgb24gZmFpbHVyZS5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGNoYW5nZXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBhcHBsaWVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlGaWxlQ2hhbmdlcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgY2hhbmdlc1Byb3ZpZGVyOiBWYWx1ZVByb3ZpZGVyPEZpbGVDaGFuZ2VbXT4sIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgYXdhaXQgcHJvY2VzcyhhcHAsIHBhdGhPckZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XG4gICAgbGV0IGNoYW5nZXMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY2hhbmdlc1Byb3ZpZGVyKTtcbiAgICBjb25zdCBmcm9udG1hdHRlciA9IGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlKSA/IEpTT04ucGFyc2UoY29udGVudCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gOiBwYXJzZUZyb250bWF0dGVyKGNvbnRlbnQpO1xuXG4gICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XG4gICAgICAgIGNvbnN0IGFjdHVhbENvbnRlbnQgPSBjb250ZW50LnNsaWNlKGNoYW5nZS5zdGFydEluZGV4LCBjaGFuZ2UuZW5kSW5kZXgpO1xuICAgICAgICBpZiAoYWN0dWFsQ29udGVudCAhPT0gY2hhbmdlLm9sZENvbnRlbnQpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbnRlbnQgbWlzbWF0Y2gnLCB7XG4gICAgICAgICAgICBhY3R1YWxDb250ZW50LFxuICAgICAgICAgICAgZW5kSW5kZXg6IGNoYW5nZS5lbmRJbmRleCxcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgICBwYXRoOiBnZXRQYXRoKHBhdGhPckZpbGUpLFxuICAgICAgICAgICAgc3RhcnRJbmRleDogY2hhbmdlLnN0YXJ0SW5kZXhcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJDaGFuZ2UoY2hhbmdlKSkge1xuICAgICAgICBjb25zdCBhY3R1YWxDb250ZW50ID0gZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udG1hdHRlciwgY2hhbmdlLmZyb250bWF0dGVyS2V5KTtcbiAgICAgICAgaWYgKGFjdHVhbENvbnRlbnQgIT09IGNoYW5nZS5vbGRDb250ZW50KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdDb250ZW50IG1pc21hdGNoJywge1xuICAgICAgICAgICAgYWN0dWFsQ29udGVudCxcbiAgICAgICAgICAgIGV4cGVjdGVkQ29udGVudDogY2hhbmdlLm9sZENvbnRlbnQsXG4gICAgICAgICAgICBmcm9udG1hdHRlcktleTogY2hhbmdlLmZyb250bWF0dGVyS2V5LFxuICAgICAgICAgICAgcGF0aDogZ2V0UGF0aChwYXRoT3JGaWxlKVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChpc0NvbnRlbnRDaGFuZ2UoYSkgJiYgaXNDb250ZW50Q2hhbmdlKGIpKSB7XG4gICAgICAgIHJldHVybiBhLnN0YXJ0SW5kZXggLSBiLnN0YXJ0SW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGEpICYmIGlzRnJvbnRtYXR0ZXJDaGFuZ2UoYikpIHtcbiAgICAgICAgcmV0dXJuIGEuZnJvbnRtYXR0ZXJLZXkubG9jYWxlQ29tcGFyZShiLmZyb250bWF0dGVyS2V5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlzQ29udGVudENoYW5nZShhKSA/IC0xIDogMTtcbiAgICB9KTtcblxuICAgIC8vIEJVRzogaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L2J1Zy1kdXBsaWNhdGVkLWxpbmtzLWluLW1ldGFkYXRhY2FjaGUtaW5zaWRlLWZvb3Rub3Rlcy84NTU1MVxuICAgIGNoYW5nZXMgPSBjaGFuZ2VzLmZpbHRlcigoY2hhbmdlLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGNoYW5nZS5vbGRDb250ZW50ID09PSBjaGFuZ2UubmV3Q29udGVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gIWRlZXBFcXVhbChjaGFuZ2UsIGNoYW5nZXNbaW5kZXggLSAxXSk7XG4gICAgfSk7XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgICBpZiAoIWNoYW5nZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByZXZpb3VzQ2hhbmdlID0gY2hhbmdlc1tpIC0gMV07XG4gICAgICBpZiAoIXByZXZpb3VzQ2hhbmdlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNDb250ZW50Q2hhbmdlKHByZXZpb3VzQ2hhbmdlKSAmJiBpc0NvbnRlbnRDaGFuZ2UoY2hhbmdlKSAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCAmJiBjaGFuZ2Uuc3RhcnRJbmRleCAmJiBwcmV2aW91c0NoYW5nZS5lbmRJbmRleCA+IGNoYW5nZS5zdGFydEluZGV4KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignT3ZlcmxhcHBpbmcgY2hhbmdlcycsIHtcbiAgICAgICAgICBjaGFuZ2UsXG4gICAgICAgICAgcHJldmlvdXNDaGFuZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdDb250ZW50ID0gJyc7XG4gICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgbGV0IGZyb250bWF0dGVyQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBjaGFuZ2Ugb2YgY2hhbmdlcykge1xuICAgICAgaWYgKGlzQ29udGVudENoYW5nZShjaGFuZ2UpKSB7XG4gICAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgsIGNoYW5nZS5zdGFydEluZGV4KTtcbiAgICAgICAgbmV3Q29udGVudCArPSBjaGFuZ2UubmV3Q29udGVudDtcbiAgICAgICAgbGFzdEluZGV4ID0gY2hhbmdlLmVuZEluZGV4O1xuICAgICAgfSBlbHNlIGlmIChpc0Zyb250bWF0dGVyQ2hhbmdlKGNoYW5nZSkpIHtcbiAgICAgICAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZShmcm9udG1hdHRlciwgY2hhbmdlLmZyb250bWF0dGVyS2V5LCBjaGFuZ2UubmV3Q29udGVudCk7XG4gICAgICAgIGZyb250bWF0dGVyQ2hhbmdlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlKSkge1xuICAgICAgbmV3Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KGZyb250bWF0dGVyLCBudWxsLCAnXFx0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NvbnRlbnQgKz0gY29udGVudC5zbGljZShsYXN0SW5kZXgpO1xuICAgICAgaWYgKGZyb250bWF0dGVyQ2hhbmdlZCkge1xuICAgICAgICBuZXdDb250ZW50ID0gc2V0RnJvbnRtYXR0ZXIobmV3Q29udGVudCwgZnJvbnRtYXR0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3Q29udGVudDtcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgY29udGVudCBjaGFuZ2UuXG4gKlxuICogQHBhcmFtIGZpbGVDaGFuZ2UgLSBUaGUgZmlsZSBjaGFuZ2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNoYW5nZSBpcyBhIGNvbnRlbnQgY2hhbmdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZW50Q2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIENvbnRlbnRDaGFuZ2Uge1xuICByZXR1cm4gKGZpbGVDaGFuZ2UgYXMgUGFydGlhbDxDb250ZW50Q2hhbmdlPikuc3RhcnRJbmRleCAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGZpbGUgY2hhbmdlIGlzIGEgZnJvbnRtYXR0ZXIgY2hhbmdlLlxuICpcbiAqIEBwYXJhbSBmaWxlQ2hhbmdlIC0gVGhlIGZpbGUgY2hhbmdlIHRvIGNoZWNrLlxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFuZ2UgaXMgYSBmcm9udG1hdHRlciBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zyb250bWF0dGVyQ2hhbmdlKGZpbGVDaGFuZ2U6IEZpbGVDaGFuZ2UpOiBmaWxlQ2hhbmdlIGlzIEZyb250bWF0dGVyQ2hhbmdlIHtcbiAgcmV0dXJuIChmaWxlQ2hhbmdlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJDaGFuZ2U+KS5mcm9udG1hdHRlcktleSAhPT0gdW5kZWZpbmVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEsb0JBSU87QUFDUCwyQkFBNkI7QUFDN0Isd0JBR087QUFDUCx5QkFHTztBQUNQLG1CQUF3QjtBQTlCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQThFQSxlQUFzQixpQkFBaUIsS0FBVSxZQUF3QixpQkFBOEMsZUFBc0MsQ0FBQyxHQUFrQjtBQUM5SyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBQzdGLFlBQU0sc0JBQVEsS0FBSyxZQUFZLE9BQU8sWUFBWTtBQUNoRCxRQUFJLFVBQVUsVUFBTSxtQ0FBYSxlQUFlO0FBQ2hELFVBQU0sa0JBQWMsZ0NBQWEsVUFBVSxJQUFJLEtBQUssTUFBTSxPQUFPLFFBQStCLHFDQUFpQixPQUFPO0FBRXhILGVBQVcsVUFBVSxTQUFTO0FBQzVCLFVBQUksZ0JBQWdCLE1BQU0sR0FBRztBQUMzQixjQUFNLGdCQUFnQixRQUFRLE1BQU0sT0FBTyxZQUFZLE9BQU8sUUFBUTtBQUN0RSxZQUFJLGtCQUFrQixPQUFPLFlBQVk7QUFDdkMsa0JBQVEsS0FBSyxvQkFBb0I7QUFBQSxZQUMvQjtBQUFBLFlBQ0EsVUFBVSxPQUFPO0FBQUEsWUFDakIsaUJBQWlCLE9BQU87QUFBQSxZQUN4QixVQUFNLDJCQUFRLFVBQVU7QUFBQSxZQUN4QixZQUFZLE9BQU87QUFBQSxVQUNyQixDQUFDO0FBRUQsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRixXQUFXLG9CQUFvQixNQUFNLEdBQUc7QUFDdEMsY0FBTSxvQkFBZ0Isc0NBQXVCLGFBQWEsT0FBTyxjQUFjO0FBQy9FLFlBQUksa0JBQWtCLE9BQU8sWUFBWTtBQUN2QyxrQkFBUSxLQUFLLG9CQUFvQjtBQUFBLFlBQy9CO0FBQUEsWUFDQSxpQkFBaUIsT0FBTztBQUFBLFlBQ3hCLGdCQUFnQixPQUFPO0FBQUEsWUFDdkIsVUFBTSwyQkFBUSxVQUFVO0FBQUEsVUFDMUIsQ0FBQztBQUVELGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsWUFBUSxLQUFLLENBQUMsR0FBRyxNQUFNO0FBQ3JCLFVBQUksZ0JBQWdCLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxHQUFHO0FBQzVDLGVBQU8sRUFBRSxhQUFhLEVBQUU7QUFBQSxNQUMxQjtBQUVBLFVBQUksb0JBQW9CLENBQUMsS0FBSyxvQkFBb0IsQ0FBQyxHQUFHO0FBQ3BELGVBQU8sRUFBRSxlQUFlLGNBQWMsRUFBRSxjQUFjO0FBQUEsTUFDeEQ7QUFFQSxhQUFPLGdCQUFnQixDQUFDLElBQUksS0FBSztBQUFBLElBQ25DLENBQUM7QUFHRCxjQUFVLFFBQVEsT0FBTyxDQUFDLFFBQVEsVUFBVTtBQUMxQyxVQUFJLE9BQU8sZUFBZSxPQUFPLFlBQVk7QUFDM0MsZUFBTztBQUFBLE1BQ1Q7QUFDQSxVQUFJLFVBQVUsR0FBRztBQUNmLGVBQU87QUFBQSxNQUNUO0FBQ0EsYUFBTyxLQUFDLHlCQUFVLFFBQVEsUUFBUSxRQUFRLENBQUMsQ0FBQztBQUFBLElBQzlDLENBQUM7QUFFRCxhQUFTLElBQUksR0FBRyxJQUFJLFFBQVEsUUFBUSxLQUFLO0FBQ3ZDLFlBQU0sU0FBUyxRQUFRLENBQUM7QUFDeEIsVUFBSSxDQUFDLFFBQVE7QUFDWDtBQUFBLE1BQ0Y7QUFDQSxZQUFNLGlCQUFpQixRQUFRLElBQUksQ0FBQztBQUNwQyxVQUFJLENBQUMsZ0JBQWdCO0FBQ25CO0FBQUEsTUFDRjtBQUVBLFVBQUksZ0JBQWdCLGNBQWMsS0FBSyxnQkFBZ0IsTUFBTSxLQUFLLGVBQWUsWUFBWSxPQUFPLGNBQWMsZUFBZSxXQUFXLE9BQU8sWUFBWTtBQUM3SixnQkFBUSxLQUFLLHVCQUF1QjtBQUFBLFVBQ2xDO0FBQUEsVUFDQTtBQUFBLFFBQ0YsQ0FBQztBQUNELGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLFFBQUksYUFBYTtBQUNqQixRQUFJLFlBQVk7QUFDaEIsUUFBSSxxQkFBcUI7QUFFekIsZUFBVyxVQUFVLFNBQVM7QUFDNUIsVUFBSSxnQkFBZ0IsTUFBTSxHQUFHO0FBQzNCLHNCQUFjLFFBQVEsTUFBTSxXQUFXLE9BQU8sVUFBVTtBQUN4RCxzQkFBYyxPQUFPO0FBQ3JCLG9CQUFZLE9BQU87QUFBQSxNQUNyQixXQUFXLG9CQUFvQixNQUFNLEdBQUc7QUFDdEMsa0RBQXVCLGFBQWEsT0FBTyxnQkFBZ0IsT0FBTyxVQUFVO0FBQzVFLDZCQUFxQjtBQUFBLE1BQ3ZCO0FBQUEsSUFDRjtBQUVBLFlBQUksZ0NBQWEsVUFBVSxHQUFHO0FBQzVCLG1CQUFhLEtBQUssVUFBVSxhQUFhLE1BQU0sR0FBSTtBQUFBLElBQ3JELE9BQU87QUFDTCxvQkFBYyxRQUFRLE1BQU0sU0FBUztBQUNyQyxVQUFJLG9CQUFvQjtBQUN0Qix5QkFBYSxtQ0FBZSxZQUFZLFdBQVc7QUFBQSxNQUNyRDtBQUFBLElBQ0Y7QUFDQSxXQUFPO0FBQUEsRUFDVCxHQUFHLGlCQUFpQjtBQUN0QjtBQVFPLFNBQVMsZ0JBQWdCLFlBQXFEO0FBQ25GLFNBQVEsV0FBc0MsZUFBZTtBQUMvRDtBQVFPLFNBQVMsb0JBQW9CLFlBQXlEO0FBQzNGLFNBQVEsV0FBMEMsbUJBQW1CO0FBQ3ZFOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -39,7 +39,7 @@ export interface FrontmatterChange extends FileChange {
39
39
  /**
40
40
  * The key in the frontmatter to use for the link.
41
41
  */
42
- frontMatterKey: string;
42
+ frontmatterKey: string;
43
43
  }
44
44
  /**
45
45
  * Applies a series of file changes to the specified file or path within the application.
@@ -29,12 +29,12 @@ var FileManager_exports = {};
29
29
  __export(FileManager_exports, {
30
30
  addAlias: () => addAlias,
31
31
  deleteAlias: () => deleteAlias,
32
- processFrontMatter: () => processFrontMatter
32
+ processFrontmatter: () => processFrontmatter
33
33
  });
34
34
  module.exports = __toCommonJS(FileManager_exports);
35
35
  var import_Object = require('../Object.cjs');
36
36
  var import_FileSystem = require('./FileSystem.cjs');
37
- var import_FrontMatter = require('./FrontMatter.cjs');
37
+ var import_Frontmatter = require('./Frontmatter.cjs');
38
38
  var import_Vault = require('./Vault.cjs');
39
39
  var __process = globalThis["process"] ?? {
40
40
  "cwd": () => "/",
@@ -49,12 +49,12 @@ async function addAlias(app, pathOrFile, alias) {
49
49
  if (alias === file.basename) {
50
50
  return;
51
51
  }
52
- await processFrontMatter(app, pathOrFile, (frontMatter) => {
53
- if (!frontMatter.aliases) {
54
- frontMatter.aliases = [];
52
+ await processFrontmatter(app, pathOrFile, (frontmatter) => {
53
+ if (!frontmatter.aliases) {
54
+ frontmatter.aliases = [];
55
55
  }
56
- if (!frontMatter.aliases.includes(alias)) {
57
- frontMatter.aliases.push(alias);
56
+ if (!frontmatter.aliases.includes(alias)) {
57
+ frontmatter.aliases.push(alias);
58
58
  }
59
59
  });
60
60
  }
@@ -62,37 +62,37 @@ async function deleteAlias(app, pathOrFile, alias) {
62
62
  if (!alias) {
63
63
  return;
64
64
  }
65
- await processFrontMatter(app, pathOrFile, (frontMatter) => {
66
- if (!frontMatter.aliases) {
65
+ await processFrontmatter(app, pathOrFile, (frontmatter) => {
66
+ if (!frontmatter.aliases) {
67
67
  return;
68
68
  }
69
- frontMatter.aliases = frontMatter.aliases.filter((a) => a != alias);
70
- if (frontMatter.aliases.length === 0) {
71
- delete frontMatter.aliases;
69
+ frontmatter.aliases = frontmatter.aliases.filter((a) => a != alias);
70
+ if (frontmatter.aliases.length === 0) {
71
+ delete frontmatter.aliases;
72
72
  }
73
73
  });
74
74
  }
75
- async function processFrontMatter(app, pathOrFile, frontMatterFn, retryOptions = {}) {
75
+ async function processFrontmatter(app, pathOrFile, frontmatterFn, retryOptions = {}) {
76
76
  const file = (0, import_FileSystem.getFile)(app, pathOrFile);
77
77
  const DEFAULT_RETRY_OPTIONS = { timeoutInMilliseconds: 6e4 };
78
78
  const overriddenOptions = { ...DEFAULT_RETRY_OPTIONS, ...retryOptions };
79
79
  await (0, import_Vault.process)(app, file, async (content) => {
80
- const oldFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
81
- const newFrontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
82
- const result = await frontMatterFn(newFrontMatter);
80
+ const oldFrontmatter = (0, import_Frontmatter.parseFrontmatter)(content);
81
+ const newFrontmatter = (0, import_Frontmatter.parseFrontmatter)(content);
82
+ const result = await frontmatterFn(newFrontmatter);
83
83
  if (result === null) {
84
84
  return null;
85
85
  }
86
- if ((0, import_Object.deepEqual)(oldFrontMatter, newFrontMatter)) {
86
+ if ((0, import_Object.deepEqual)(oldFrontmatter, newFrontmatter)) {
87
87
  return content;
88
88
  }
89
- return (0, import_FrontMatter.setFrontMatter)(content, newFrontMatter);
89
+ return (0, import_Frontmatter.setFrontmatter)(content, newFrontmatter);
90
90
  }, overriddenOptions);
91
91
  }
92
92
  // Annotate the CommonJS export names for ESM import in node:
93
93
  0 && (module.exports = {
94
94
  addAlias,
95
95
  deleteAlias,
96
- processFrontMatter
96
+ processFrontmatter
97
97
  });
98
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVNYW5hZ2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxyXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gRmlsZU1hbmFnZXJcclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGZpbGVzIGluIE9ic2lkaWFuLlxyXG4gKi9cclxuXHJcbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5cclxuaW1wb3J0IHR5cGUge1xyXG4gIE1heWJlUHJvbWlzZSxcclxuICBSZXRyeU9wdGlvbnNcclxufSBmcm9tICcuLi9Bc3luYy50cyc7XHJcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRNYXR0ZXIgfSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcblxuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7IGdldEZpbGUgfSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xyXG5pbXBvcnQge1xyXG4gIHBhcnNlRnJvbnRNYXR0ZXIsXHJcbiAgc2V0RnJvbnRNYXR0ZXJcclxufSBmcm9tICcuL0Zyb250TWF0dGVyLnRzJztcclxuaW1wb3J0IHsgcHJvY2VzcyB9IGZyb20gJy4vVmF1bHQudHMnO1xyXG5cclxuLyoqXHJcbiAqIEFkZHMgYW4gYWxpYXMgdG8gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC5cclxuICpcclxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgVEZpbGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbm90ZS5cclxuICogQHBhcmFtIGFsaWFzIC0gVGhlIGFsaWFzIHRvIGFkZC5cclxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxpYXMgaGFzIGJlZW4gYWRkZWQuXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQWxpYXMoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGFsaWFzPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgaWYgKCFhbGlhcykge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcclxuICBpZiAoYWxpYXMgPT09IGZpbGUuYmFzZW5hbWUpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWZyb250TWF0dGVyLmFsaWFzZXMuaW5jbHVkZXMoYWxpYXMpKSB7XHJcbiAgICAgIGZyb250TWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWxldGVzIGFuIGFsaWFzIGZyb20gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZXhpc3RzLlxyXG4gKlxyXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxyXG4gKiBAcGFyYW0gYWxpYXMgLSBUaGUgYWxpYXMgdG8gZGVsZXRlLlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhbGlhcyBoYXMgYmVlbiBkZWxldGVkLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFsaWFzKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBhbGlhcz86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gIGlmICghYWxpYXMpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGF3YWl0IHByb2Nlc3NGcm9udE1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udE1hdHRlcikgPT4ge1xyXG4gICAgaWYgKCFmcm9udE1hdHRlci5hbGlhc2VzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmcm9udE1hdHRlci5hbGlhc2VzID0gZnJvbnRNYXR0ZXIuYWxpYXNlcy5maWx0ZXIoKGEpID0+IGEgIT0gYWxpYXMpO1xyXG5cclxuICAgIGlmIChmcm9udE1hdHRlci5hbGlhc2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBkZWxldGUgZnJvbnRNYXR0ZXIuYWxpYXNlcztcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb2Nlc3NlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gZmlsZSwgYWxsb3dpbmcgbW9kaWZpY2F0aW9ucyB2aWEgYSBwcm92aWRlZCBmdW5jdGlvbi5cclxuICpcclxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udE1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXHJcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXHJcbiAqIEBwYXJhbSBmcm9udE1hdHRlckZuIC0gQSBmdW5jdGlvbiB0aGF0IG1vZGlmaWVzIHRoZSBmcm9udCBtYXR0ZXIuXHJcbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbC4gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciByZXRyeWluZyB0aGUgcHJvY2Vzcy4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IG9wdGlvbnMgd2lsbCBiZSB1c2VkLlxyXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmcm9udCBtYXR0ZXIgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCBzYXZlZC5cclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlciA9IHVua25vd24+KGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmcm9udE1hdHRlckZuOiAoZnJvbnRNYXR0ZXI6IENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+KSA9PiBNYXliZVByb21pc2U8bnVsbCB8IHZvaWQ+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcclxuICBjb25zdCBERUZBVUxUX1JFVFJZX09QVElPTlM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgdGltZW91dEluTWlsbGlzZWNvbmRzOiA2MDAwMCB9O1xyXG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XHJcblxyXG4gIGF3YWl0IHByb2Nlc3MoYXBwLCBmaWxlLCBhc3luYyAoY29udGVudCkgPT4ge1xyXG4gICAgY29uc3Qgb2xkRnJvbnRNYXR0ZXIgPSBwYXJzZUZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPihjb250ZW50KTtcclxuICAgIGNvbnN0IG5ld0Zyb250TWF0dGVyID0gcGFyc2VGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj4oY29udGVudCk7XHJcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmcm9udE1hdHRlckZuKG5ld0Zyb250TWF0dGVyKTtcclxuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRlZXBFcXVhbChvbGRGcm9udE1hdHRlciwgbmV3RnJvbnRNYXR0ZXIpKSB7XHJcbiAgICAgIHJldHVybiBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzZXRGcm9udE1hdHRlcihjb250ZW50LCBuZXdGcm9udE1hdHRlcik7XHJcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUJBLG9CQUEwQjtBQUMxQix3QkFBd0I7QUFDeEIseUJBR087QUFDUCxtQkFBd0I7QUF6QnhCLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUErQkEsZUFBc0IsU0FBUyxLQUFVLFlBQXdCLE9BQStCO0FBQzlGLE1BQUksQ0FBQyxPQUFPO0FBQ1Y7QUFBQSxFQUNGO0FBRUEsUUFBTSxXQUFPLDJCQUFRLEtBQUssVUFBVTtBQUNwQyxNQUFJLFVBQVUsS0FBSyxVQUFVO0FBQzNCO0FBQUEsRUFDRjtBQUVBLFFBQU0sbUJBQW1CLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtBQUN6RCxRQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCLGtCQUFZLFVBQVUsQ0FBQztBQUFBLElBQ3pCO0FBRUEsUUFBSSxDQUFDLFlBQVksUUFBUSxTQUFTLEtBQUssR0FBRztBQUN4QyxrQkFBWSxRQUFRLEtBQUssS0FBSztBQUFBLElBQ2hDO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFVQSxlQUFzQixZQUFZLEtBQVUsWUFBd0IsT0FBK0I7QUFDakcsTUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG1CQUFtQixLQUFLLFlBQVksQ0FBQyxnQkFBZ0I7QUFDekQsUUFBSSxDQUFDLFlBQVksU0FBUztBQUN4QjtBQUFBLElBQ0Y7QUFFQSxnQkFBWSxVQUFVLFlBQVksUUFBUSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUs7QUFFbEUsUUFBSSxZQUFZLFFBQVEsV0FBVyxHQUFHO0FBQ3BDLGFBQU8sWUFBWTtBQUFBLElBQ3JCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFhQSxlQUFzQixtQkFBZ0QsS0FBVSxZQUF3QixlQUFtRyxlQUFzQyxDQUFDLEdBQWtCO0FBQ2xRLFFBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFDcEMsUUFBTSx3QkFBK0MsRUFBRSx1QkFBdUIsSUFBTTtBQUNwRixRQUFNLG9CQUEyQyxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsYUFBYTtBQUU3RixZQUFNLHNCQUFRLEtBQUssTUFBTSxPQUFPLFlBQVk7QUFDMUMsVUFBTSxxQkFBaUIscUNBQW9DLE9BQU87QUFDbEUsVUFBTSxxQkFBaUIscUNBQW9DLE9BQU87QUFDbEUsVUFBTSxTQUFTLE1BQU0sY0FBYyxjQUFjO0FBQ2pELFFBQUksV0FBVyxNQUFNO0FBQ25CLGFBQU87QUFBQSxJQUNUO0FBRUEsWUFBSSx5QkFBVSxnQkFBZ0IsY0FBYyxHQUFHO0FBQzdDLGFBQU87QUFBQSxJQUNUO0FBRUEsZUFBTyxtQ0FBZSxTQUFTLGNBQWM7QUFBQSxFQUMvQyxHQUFHLGlCQUFpQjtBQUN0QjsiLAogICJuYW1lcyI6IFtdCn0K
98
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0ZpbGVNYW5hZ2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZpbGVNYW5hZ2VyXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZmlsZXMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgTWF5YmVQcm9taXNlLFxuICBSZXRyeU9wdGlvbnNcbn0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuXG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICcuLi9PYmplY3QudHMnO1xuaW1wb3J0IHsgZ2V0RmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBwYXJzZUZyb250bWF0dGVyLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL0Zyb250bWF0dGVyLnRzJztcbmltcG9ydCB7IHByb2Nlc3MgfSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBBZGRzIGFuIGFsaWFzIHRvIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gKiBAcGFyYW0gYWxpYXMgLSBUaGUgYWxpYXMgdG8gYWRkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxpYXMgaGFzIGJlZW4gYWRkZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRBbGlhcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgYWxpYXM/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFhbGlhcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGlmIChhbGlhcyA9PT0gZmlsZS5iYXNlbmFtZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IHByb2Nlc3NGcm9udG1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udG1hdHRlcikgPT4ge1xuICAgIGlmICghZnJvbnRtYXR0ZXIuYWxpYXNlcykge1xuICAgICAgZnJvbnRtYXR0ZXIuYWxpYXNlcyA9IFtdO1xuICAgIH1cblxuICAgIGlmICghZnJvbnRtYXR0ZXIuYWxpYXNlcy5pbmNsdWRlcyhhbGlhcykpIHtcbiAgICAgIGZyb250bWF0dGVyLmFsaWFzZXMucHVzaChhbGlhcyk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWxldGVzIGFuIGFsaWFzIGZyb20gdGhlIGZyb250IG1hdHRlciBvZiBhIGdpdmVuIGZpbGUgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBURmlsZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBub3RlLlxuICogQHBhcmFtIGFsaWFzIC0gVGhlIGFsaWFzIHRvIGRlbGV0ZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFsaWFzIGhhcyBiZWVuIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGlhcyhhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgYWxpYXM/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFhbGlhcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IHByb2Nlc3NGcm9udG1hdHRlcihhcHAsIHBhdGhPckZpbGUsIChmcm9udG1hdHRlcikgPT4ge1xuICAgIGlmICghZnJvbnRtYXR0ZXIuYWxpYXNlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZyb250bWF0dGVyLmFsaWFzZXMgPSBmcm9udG1hdHRlci5hbGlhc2VzLmZpbHRlcigoYSkgPT4gYSAhPSBhbGlhcyk7XG5cbiAgICBpZiAoZnJvbnRtYXR0ZXIuYWxpYXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBmcm9udG1hdHRlci5hbGlhc2VzO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUHJvY2Vzc2VzIHRoZSBmcm9udCBtYXR0ZXIgb2YgYSBnaXZlbiBmaWxlLCBhbGxvd2luZyBtb2RpZmljYXRpb25zIHZpYSBhIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIFRGaWxlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG5vdGUuXG4gKiBAcGFyYW0gZnJvbnRtYXR0ZXJGbiAtIEEgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgZnJvbnQgbWF0dGVyLlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsLiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHJldHJ5aW5nIHRoZSBwcm9jZXNzLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgb3B0aW9ucyB3aWxsIGJlIHVzZWQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmcm9udCBtYXR0ZXIgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZCBzYXZlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBmcm9udG1hdHRlckZuOiAoZnJvbnRtYXR0ZXI6IENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+KSA9PiBNYXliZVByb21pc2U8bnVsbCB8IHZvaWQ+LCByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG5cbiAgYXdhaXQgcHJvY2VzcyhhcHAsIGZpbGUsIGFzeW5jIChjb250ZW50KSA9PiB7XG4gICAgY29uc3Qgb2xkRnJvbnRtYXR0ZXIgPSBwYXJzZUZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPihjb250ZW50KTtcbiAgICBjb25zdCBuZXdGcm9udG1hdHRlciA9IHBhcnNlRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+KGNvbnRlbnQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZyb250bWF0dGVyRm4obmV3RnJvbnRtYXR0ZXIpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkZWVwRXF1YWwob2xkRnJvbnRtYXR0ZXIsIG5ld0Zyb250bWF0dGVyKSkge1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldEZyb250bWF0dGVyKGNvbnRlbnQsIG5ld0Zyb250bWF0dGVyKTtcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsb0JBQTBCO0FBQzFCLHdCQUF3QjtBQUN4Qix5QkFHTztBQUNQLG1CQUF3QjtBQXpCeEIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQStCQSxlQUFzQixTQUFTLEtBQVUsWUFBd0IsT0FBK0I7QUFDOUYsTUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFdBQU8sMkJBQVEsS0FBSyxVQUFVO0FBQ3BDLE1BQUksVUFBVSxLQUFLLFVBQVU7QUFDM0I7QUFBQSxFQUNGO0FBRUEsUUFBTSxtQkFBbUIsS0FBSyxZQUFZLENBQUMsZ0JBQWdCO0FBQ3pELFFBQUksQ0FBQyxZQUFZLFNBQVM7QUFDeEIsa0JBQVksVUFBVSxDQUFDO0FBQUEsSUFDekI7QUFFQSxRQUFJLENBQUMsWUFBWSxRQUFRLFNBQVMsS0FBSyxHQUFHO0FBQ3hDLGtCQUFZLFFBQVEsS0FBSyxLQUFLO0FBQUEsSUFDaEM7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVVBLGVBQXNCLFlBQVksS0FBVSxZQUF3QixPQUErQjtBQUNqRyxNQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsRUFDRjtBQUVBLFFBQU0sbUJBQW1CLEtBQUssWUFBWSxDQUFDLGdCQUFnQjtBQUN6RCxRQUFJLENBQUMsWUFBWSxTQUFTO0FBQ3hCO0FBQUEsSUFDRjtBQUVBLGdCQUFZLFVBQVUsWUFBWSxRQUFRLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSztBQUVsRSxRQUFJLFlBQVksUUFBUSxXQUFXLEdBQUc7QUFDcEMsYUFBTyxZQUFZO0FBQUEsSUFDckI7QUFBQSxFQUNGLENBQUM7QUFDSDtBQWFBLGVBQXNCLG1CQUFnRCxLQUFVLFlBQXdCLGVBQW1HLGVBQXNDLENBQUMsR0FBa0I7QUFDbFEsUUFBTSxXQUFPLDJCQUFRLEtBQUssVUFBVTtBQUNwQyxRQUFNLHdCQUErQyxFQUFFLHVCQUF1QixJQUFNO0FBQ3BGLFFBQU0sb0JBQTJDLEVBQUUsR0FBRyx1QkFBdUIsR0FBRyxhQUFhO0FBRTdGLFlBQU0sc0JBQVEsS0FBSyxNQUFNLE9BQU8sWUFBWTtBQUMxQyxVQUFNLHFCQUFpQixxQ0FBb0MsT0FBTztBQUNsRSxVQUFNLHFCQUFpQixxQ0FBb0MsT0FBTztBQUNsRSxVQUFNLFNBQVMsTUFBTSxjQUFjLGNBQWM7QUFDakQsUUFBSSxXQUFXLE1BQU07QUFDbkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxZQUFJLHlCQUFVLGdCQUFnQixjQUFjLEdBQUc7QUFDN0MsYUFBTztBQUFBLElBQ1Q7QUFFQSxlQUFPLG1DQUFlLFNBQVMsY0FBYztBQUFBLEVBQy9DLEdBQUcsaUJBQWlCO0FBQ3RCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -5,7 +5,7 @@
5
5
  import type { App } from 'obsidian';
6
6
  import type { MaybePromise, RetryOptions } from '../Async.ts';
7
7
  import type { PathOrFile } from './FileSystem.ts';
8
- import type { CombinedFrontMatter } from './FrontMatter.ts';
8
+ import type { CombinedFrontmatter } from './Frontmatter.ts';
9
9
  /**
10
10
  * Adds an alias to the front matter of a given file if it does not already exist.
11
11
  *
@@ -27,11 +27,11 @@ export declare function deleteAlias(app: App, pathOrFile: PathOrFile, alias?: st
27
27
  /**
28
28
  * Processes the front matter of a given file, allowing modifications via a provided function.
29
29
  *
30
- * @typeParam CustomFrontMatter - The type of custom front matter.
30
+ * @typeParam CustomFrontmatter - The type of custom front matter.
31
31
  * @param app - The Obsidian app instance.
32
32
  * @param pathOrFile - The path or TFile object representing the note.
33
- * @param frontMatterFn - A function that modifies the front matter.
33
+ * @param frontmatterFn - A function that modifies the front matter.
34
34
  * @param retryOptions - Optional. Configuration options for retrying the process. If not provided, default options will be used.
35
35
  * @returns A promise that resolves when the front matter has been processed and saved.
36
36
  */
37
- export declare function processFrontMatter<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile, frontMatterFn: (frontMatter: CombinedFrontMatter<CustomFrontMatter>) => MaybePromise<null | void>, retryOptions?: Partial<RetryOptions>): Promise<void>;
37
+ export declare function processFrontmatter<CustomFrontmatter = unknown>(app: App, pathOrFile: PathOrFile, frontmatterFn: (frontmatter: CombinedFrontmatter<CustomFrontmatter>) => MaybePromise<null | void>, retryOptions?: Partial<RetryOptions>): Promise<void>;
@@ -25,12 +25,12 @@ var __copyProps = (to, from, except, desc) => {
25
25
  return to;
26
26
  };
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
- var FrontMatter_exports = {};
29
- __export(FrontMatter_exports, {
30
- parseFrontMatter: () => parseFrontMatter,
31
- setFrontMatter: () => setFrontMatter
28
+ var Frontmatter_exports = {};
29
+ __export(Frontmatter_exports, {
30
+ parseFrontmatter: () => parseFrontmatter,
31
+ setFrontmatter: () => setFrontmatter
32
32
  });
33
- module.exports = __toCommonJS(FrontMatter_exports);
33
+ module.exports = __toCommonJS(Frontmatter_exports);
34
34
  var import_obsidian = require('obsidian');
35
35
  var import_String = require('../String.cjs');
36
36
  var __process = globalThis["process"] ?? {
@@ -38,21 +38,21 @@ var __process = globalThis["process"] ?? {
38
38
  "env": {},
39
39
  "platform": "android"
40
40
  };
41
- function parseFrontMatter(content) {
42
- const frontMatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
43
- return (0, import_obsidian.parseYaml)(frontMatterInfo.frontmatter) ?? {};
41
+ function parseFrontmatter(content) {
42
+ const frontmatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
43
+ return (0, import_obsidian.parseYaml)(frontmatterInfo.frontmatter) ?? {};
44
44
  }
45
- function setFrontMatter(content, newFrontMatter) {
46
- const frontMatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
47
- if (Object.keys(newFrontMatter).length === 0) {
48
- return content.slice(frontMatterInfo.contentStart);
45
+ function setFrontmatter(content, newFrontmatter) {
46
+ const frontmatterInfo = (0, import_obsidian.getFrontMatterInfo)(content);
47
+ if (Object.keys(newFrontmatter).length === 0) {
48
+ return content.slice(frontmatterInfo.contentStart);
49
49
  }
50
- const newFrontMatterStr = (0, import_obsidian.stringifyYaml)(newFrontMatter);
51
- return frontMatterInfo.exists ? (0, import_String.insertAt)(content, newFrontMatterStr, frontMatterInfo.from, frontMatterInfo.to) : "---\n" + newFrontMatterStr + "---\n" + content;
50
+ const newFrontmatterStr = (0, import_obsidian.stringifyYaml)(newFrontmatter);
51
+ return frontmatterInfo.exists ? (0, import_String.insertAt)(content, newFrontmatterStr, frontmatterInfo.from, frontmatterInfo.to) : "---\n" + newFrontmatterStr + "---\n" + content;
52
52
  }
53
53
  // Annotate the CommonJS export names for ESM import in node:
54
54
  0 && (module.exports = {
55
- parseFrontMatter,
56
- setFrontMatter
55
+ parseFrontmatter,
56
+ setFrontmatter
57
57
  });
58
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250TWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZyb250TWF0dGVyXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBhbmQgbWFuYWdpbmcgWUFNTCBmcm9udCBtYXR0ZXIgaW4gT2JzaWRpYW4gbm90ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpbnNlcnRBdCB9IGZyb20gJy4uL1N0cmluZy50cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29tYmluZWQgZnJvbnQgbWF0dGVyIG9mIGEgZG9jdW1lbnQuXG4gKiBJdCBpcyBhIHVuaW9uIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIsIE9ic2lkaWFuIGZyb250IG1hdHRlciwgYW5kIGFkZGl0aW9uYWwgcHJvcGVydGllcy5cbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRNYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgdHlwZSBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPiA9IEN1c3RvbUZyb250TWF0dGVyICYgT2JzaWRpYW5Gcm9udE1hdHRlciAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBvZiBhbiBPYnNpZGlhbiBmaWxlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL0VkaXRpbmcrYW5kK2Zvcm1hdHRpbmcvUHJvcGVydGllcyNEZWZhdWx0K3Byb3BlcnRpZXN9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Gcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhbGlhc2VzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIG5vdGUuXG4gICAqL1xuICBjc3NjbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHRhZ3MgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBmb3IgcHVibGlzaGluZyBpbiBPYnNpZGlhbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjUHJvcGVydGllcytmb3IrT2JzaWRpYW4rUHVibGlzaH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblB1Ymxpc2hGcm9udE1hdHRlciB7XG4gIC8qKlxuICAgKiBUaGUgY292ZXIgaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgY292ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWFuZW50IGxpbmsgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgcGVybWFsaW5rPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBub3RlIGlzIHB1Ymxpc2hlZC5cbiAgICovXG4gIHB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXIgPSB1bmtub3duPihjb250ZW50OiBzdHJpbmcpOiBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPiB7XG4gIGNvbnN0IGZyb250TWF0dGVySW5mbyA9IGdldEZyb250TWF0dGVySW5mbyhjb250ZW50KTtcbiAgcmV0dXJuIChwYXJzZVlhbWwoZnJvbnRNYXR0ZXJJbmZvLmZyb250bWF0dGVyKSA/PyB7fSkgYXMgQ29tYmluZWRGcm9udE1hdHRlcjxDdXN0b21Gcm9udE1hdHRlcj47XG59XG5cbi8qKlxuICogU2V0cyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gc2V0IHRoZSBmcm9udCBtYXR0ZXIgaW4uXG4gKiBAcGFyYW0gbmV3RnJvbnRNYXR0ZXIgLSBUaGUgbmV3IGZyb250IG1hdHRlciB0byBzZXQuXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbnRlbnQgc3RyaW5nIHdpdGggdGhlIGZyb250IG1hdHRlciBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRGcm9udE1hdHRlcihjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250TWF0dGVyOiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBmcm9udE1hdHRlckluZm8gPSBnZXRGcm9udE1hdHRlckluZm8oY29udGVudCk7XG4gIGlmIChPYmplY3Qua2V5cyhuZXdGcm9udE1hdHRlcikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQuc2xpY2UoZnJvbnRNYXR0ZXJJbmZvLmNvbnRlbnRTdGFydCk7XG4gIH1cblxuICBjb25zdCBuZXdGcm9udE1hdHRlclN0ciA9IHN0cmluZ2lmeVlhbWwobmV3RnJvbnRNYXR0ZXIpO1xuXG4gIHJldHVybiBmcm9udE1hdHRlckluZm8uZXhpc3RzXG4gICAgPyBpbnNlcnRBdChjb250ZW50LCBuZXdGcm9udE1hdHRlclN0ciwgZnJvbnRNYXR0ZXJJbmZvLmZyb20sIGZyb250TWF0dGVySW5mby50bylcbiAgICA6ICctLS1cXG4nICsgbmV3RnJvbnRNYXR0ZXJTdHIgKyAnLS0tXFxuJyArIGNvbnRlbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFJTztBQUVQLG9CQUF5QjtBQWhCekIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQStFTyxTQUFTLGlCQUE4QyxTQUF5RDtBQUNySCxRQUFNLHNCQUFrQixvQ0FBbUIsT0FBTztBQUNsRCxhQUFRLDJCQUFVLGdCQUFnQixXQUFXLEtBQUssQ0FBQztBQUNyRDtBQVNPLFNBQVMsZUFBZSxTQUFpQixnQkFBZ0M7QUFDOUUsUUFBTSxzQkFBa0Isb0NBQW1CLE9BQU87QUFDbEQsTUFBSSxPQUFPLEtBQUssY0FBYyxFQUFFLFdBQVcsR0FBRztBQUM1QyxXQUFPLFFBQVEsTUFBTSxnQkFBZ0IsWUFBWTtBQUFBLEVBQ25EO0FBRUEsUUFBTSx3QkFBb0IsK0JBQWMsY0FBYztBQUV0RCxTQUFPLGdCQUFnQixhQUNuQix3QkFBUyxTQUFTLG1CQUFtQixnQkFBZ0IsTUFBTSxnQkFBZ0IsRUFBRSxJQUM3RSxVQUFVLG9CQUFvQixVQUFVO0FBQzlDOyIsCiAgIm5hbWVzIjogW10KfQo=
58
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0Zyb250bWF0dGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIEZyb250bWF0dGVyXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBhbmQgbWFuYWdpbmcgWUFNTCBmcm9udCBtYXR0ZXIgaW4gT2JzaWRpYW4gbm90ZXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpbnNlcnRBdCB9IGZyb20gJy4uL1N0cmluZy50cyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29tYmluZWQgZnJvbnQgbWF0dGVyIG9mIGEgZG9jdW1lbnQuXG4gKiBJdCBpcyBhIHVuaW9uIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIsIE9ic2lkaWFuIGZyb250IG1hdHRlciwgYW5kIGFkZGl0aW9uYWwgcHJvcGVydGllcy5cbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiBjdXN0b20gZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgdHlwZSBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiA9IEN1c3RvbUZyb250bWF0dGVyICYgT2JzaWRpYW5Gcm9udG1hdHRlciAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBvZiBhbiBPYnNpZGlhbiBmaWxlLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL0VkaXRpbmcrYW5kK2Zvcm1hdHRpbmcvUHJvcGVydGllcyNEZWZhdWx0K3Byb3BlcnRpZXN9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5Gcm9udG1hdHRlciB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhbGlhc2VzIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIG5vdGUuXG4gICAqL1xuICBjc3NjbGFzc2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHRhZ3MgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgdGFncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGZyb250IG1hdHRlciBmb3IgcHVibGlzaGluZyBpbiBPYnNpZGlhbi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vaGVscC5vYnNpZGlhbi5tZC9FZGl0aW5nK2FuZCtmb3JtYXR0aW5nL1Byb3BlcnRpZXMjUHJvcGVydGllcytmb3IrT2JzaWRpYW4rUHVibGlzaH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblB1Ymxpc2hGcm9udG1hdHRlciB7XG4gIC8qKlxuICAgKiBUaGUgY292ZXIgaW1hZ2UgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgY292ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIG5vdGUuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIGZvciB0aGUgbm90ZS5cbiAgICovXG4gIGltYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWFuZW50IGxpbmsgZm9yIHRoZSBub3RlLlxuICAgKi9cbiAgcGVybWFsaW5rPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBub3RlIGlzIHB1Ymxpc2hlZC5cbiAgICovXG4gIHB1Ymxpc2g/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihjb250ZW50OiBzdHJpbmcpOiBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiB7XG4gIGNvbnN0IGZyb250bWF0dGVySW5mbyA9IGdldEZyb250TWF0dGVySW5mbyhjb250ZW50KTtcbiAgcmV0dXJuIChwYXJzZVlhbWwoZnJvbnRtYXR0ZXJJbmZvLmZyb250bWF0dGVyKSA/PyB7fSkgYXMgQ29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj47XG59XG5cbi8qKlxuICogU2V0cyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgZ2l2ZW4gY29udGVudCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgLSBUaGUgY29udGVudCBzdHJpbmcgdG8gc2V0IHRoZSBmcm9udCBtYXR0ZXIgaW4uXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgbmV3IGZyb250IG1hdHRlciB0byBzZXQuXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbnRlbnQgc3RyaW5nIHdpdGggdGhlIGZyb250IG1hdHRlciBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRGcm9udG1hdHRlcihjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBmcm9udG1hdHRlckluZm8gPSBnZXRGcm9udE1hdHRlckluZm8oY29udGVudCk7XG4gIGlmIChPYmplY3Qua2V5cyhuZXdGcm9udG1hdHRlcikubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQuc2xpY2UoZnJvbnRtYXR0ZXJJbmZvLmNvbnRlbnRTdGFydCk7XG4gIH1cblxuICBjb25zdCBuZXdGcm9udG1hdHRlclN0ciA9IHN0cmluZ2lmeVlhbWwobmV3RnJvbnRtYXR0ZXIpO1xuXG4gIHJldHVybiBmcm9udG1hdHRlckluZm8uZXhpc3RzXG4gICAgPyBpbnNlcnRBdChjb250ZW50LCBuZXdGcm9udG1hdHRlclN0ciwgZnJvbnRtYXR0ZXJJbmZvLmZyb20sIGZyb250bWF0dGVySW5mby50bylcbiAgICA6ICctLS1cXG4nICsgbmV3RnJvbnRtYXR0ZXJTdHIgKyAnLS0tXFxuJyArIGNvbnRlbnQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFJTztBQUVQLG9CQUF5QjtBQWhCekIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQStFTyxTQUFTLGlCQUE4QyxTQUF5RDtBQUNySCxRQUFNLHNCQUFrQixvQ0FBbUIsT0FBTztBQUNsRCxhQUFRLDJCQUFVLGdCQUFnQixXQUFXLEtBQUssQ0FBQztBQUNyRDtBQVNPLFNBQVMsZUFBZSxTQUFpQixnQkFBZ0M7QUFDOUUsUUFBTSxzQkFBa0Isb0NBQW1CLE9BQU87QUFDbEQsTUFBSSxPQUFPLEtBQUssY0FBYyxFQUFFLFdBQVcsR0FBRztBQUM1QyxXQUFPLFFBQVEsTUFBTSxnQkFBZ0IsWUFBWTtBQUFBLEVBQ25EO0FBRUEsUUFBTSx3QkFBb0IsK0JBQWMsY0FBYztBQUV0RCxTQUFPLGdCQUFnQixhQUNuQix3QkFBUyxTQUFTLG1CQUFtQixnQkFBZ0IsTUFBTSxnQkFBZ0IsRUFBRSxJQUM3RSxVQUFVLG9CQUFvQixVQUFVO0FBQzlDOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -1,18 +1,18 @@
1
1
  /**
2
- * @packageDocumentation FrontMatter
2
+ * @packageDocumentation Frontmatter
3
3
  * This module provides utility functions for processing and managing YAML front matter in Obsidian notes.
4
4
  */
5
5
  /**
6
6
  * Represents the combined front matter of a document.
7
7
  * It is a union of custom front matter, Obsidian front matter, and additional properties.
8
- * @typeParam CustomFrontMatter - The type of custom front matter.
8
+ * @typeParam CustomFrontmatter - The type of custom front matter.
9
9
  */
10
- export type CombinedFrontMatter<CustomFrontMatter> = CustomFrontMatter & ObsidianFrontMatter & Record<string, unknown>;
10
+ export type CombinedFrontmatter<CustomFrontmatter> = CustomFrontmatter & ObsidianFrontmatter & Record<string, unknown>;
11
11
  /**
12
12
  * Represents the front matter of an Obsidian file.
13
13
  * @see {@link https://help.obsidian.md/Editing+and+formatting/Properties#Default+properties}
14
14
  */
15
- export interface ObsidianFrontMatter {
15
+ export interface ObsidianFrontmatter {
16
16
  /**
17
17
  * An array of aliases for the note.
18
18
  */
@@ -30,7 +30,7 @@ export interface ObsidianFrontMatter {
30
30
  * Represents the front matter for publishing in Obsidian.
31
31
  * @see {@link https://help.obsidian.md/Editing+and+formatting/Properties#Properties+for+Obsidian+Publish}
32
32
  */
33
- export interface ObsidianPublishFrontMatter {
33
+ export interface ObsidianPublishFrontmatter {
34
34
  /**
35
35
  * The cover image for the note.
36
36
  */
@@ -58,12 +58,12 @@ export interface ObsidianPublishFrontMatter {
58
58
  * @param content - The content string to parse.
59
59
  * @returns The parsed front matter.
60
60
  */
61
- export declare function parseFrontMatter<CustomFrontMatter = unknown>(content: string): CombinedFrontMatter<CustomFrontMatter>;
61
+ export declare function parseFrontmatter<CustomFrontmatter = unknown>(content: string): CombinedFrontmatter<CustomFrontmatter>;
62
62
  /**
63
63
  * Sets the front matter of a given content string.
64
64
  *
65
65
  * @param content - The content string to set the front matter in.
66
- * @param newFrontMatter - The new front matter to set.
66
+ * @param newFrontmatter - The new front matter to set.
67
67
  * @returns The new content string with the front matter set.
68
68
  */
69
- export declare function setFrontMatter(content: string, newFrontMatter: object): string;
69
+ export declare function setFrontmatter(content: string, newFrontmatter: object): string;
@@ -167,6 +167,14 @@ function generateMarkdownLink(options) {
167
167
  });
168
168
  }
169
169
  function parseLink(str) {
170
+ if ((0, import_url.isUrl)(str)) {
171
+ return {
172
+ isEmbed: false,
173
+ isExternal: true,
174
+ isWikilink: false,
175
+ url: str
176
+ };
177
+ }
170
178
  const EMBED_PREFIX = "!";
171
179
  const OPEN_ANGLE_BRACKET = "<";
172
180
  const LINK_ALIAS_SUFFIX = "](";
@@ -397,4 +405,4 @@ async function updateLinksInFile(options) {
397
405
  updateLink,
398
406
  updateLinksInFile
399
407
  });
400
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xpbmsudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTGlua1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzIGZvciBoYW5kbGluZyBhbmQgdXBkYXRpbmcgbGlua3Mgd2l0aGluIE9ic2lkaWFuIHZhdWx0cy4gSXQgaW5jbHVkZXNcbiAqIGZ1bmN0aW9ucyB0byBzcGxpdCBwYXRocywgdXBkYXRlIGxpbmtzIGluIGZpbGVzLCBhbmQgZ2VuZXJhdGUgbWFya2Rvd24gbGlua3Mgd2l0aCB2YXJpb3VzIG9wdGlvbnMuXG4gKiBUaGUgZnVuY3Rpb25zIGludGVncmF0ZSB3aXRoIE9ic2lkaWFuJ3MgQVBJIHRvIGVuc3VyZSB0aGF0IGxpbmtzIGFyZSBtYW5hZ2VkIGNvcnJlY3RseSB3aXRoaW4gdGhlIHZhdWx0LlxuICoqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIExpbmssXG4gIFRleHRcbn0gZnJvbSAnbWRhc3QnO1xuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFJlZmVyZW5jZSxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZUxpbmt0ZXh0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IHJlbWFyayB9IGZyb20gJ3JlbWFyayc7XG5pbXBvcnQgcmVtYXJrUGFyc2UgZnJvbSAncmVtYXJrLXBhcnNlJztcbmltcG9ydCB7IHdpa2lMaW5rUGx1Z2luIH0gZnJvbSAncmVtYXJrLXdpa2ktbGluayc7XG5cbmltcG9ydCB0eXBlIHtcbiAgTWF5YmVQcm9taXNlLFxuICBSZXRyeU9wdGlvbnNcbn0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlQ2hhbmdlIH0gZnJvbSAnLi9GaWxlQ2hhbmdlLnRzJztcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gJy4uL09iamVjdC50cyc7XG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBub3JtYWxpemUsXG4gIHRyaW1TdGFydFxufSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHsgaXNVcmwgfSBmcm9tICcuLi91cmwudHMnO1xuaW1wb3J0IHsgYXBwbHlGaWxlQ2hhbmdlcyB9IGZyb20gJy4vRmlsZUNoYW5nZS50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlLFxuICB0cmltTWFya2Rvd25FeHRlbnNpb25cbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIGdldEFsbExpbmtzLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuXG59IGZyb20gJy4vTWV0YWRhdGFDYWNoZS50cyc7XG5pbXBvcnQge1xuICBzaG91bGRVc2VSZWxhdGl2ZUxpbmtzLFxuICBzaG91bGRVc2VXaWtpbGlua3Ncbn0gZnJvbSAnLi9PYnNpZGlhblNldHRpbmdzLnRzJztcbmltcG9ydCB7IHJlZmVyZW5jZVRvRmlsZUNoYW5nZSB9IGZyb20gJy4vUmVmZXJlbmNlLnRzJztcblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIHNwZWNpYWwgbGluayBzeW1ib2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxuY29uc3QgU1BFQ0lBTF9MSU5LX1NZTUJPTFNfUkVHRVhQID0gL1tcXFxcXFx4MDBcXHgwOFxceDBCXFx4MENcXHgwRS1cXHgxRiBdL2c7XG5cbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIGZvciBzcGVjaWFsIG1hcmtkb3duIGxpbmsgc3ltYm9scy5cbiAqL1xuY29uc3QgU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVggPSAvW1xcXFxbXFxdPD5fKn49YCRdL2c7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udmVydGluZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVydExpbmtPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBhcHA6IEFwcDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBtYXJrZG93biBsaW5rcy5cbiAgICovXG4gIGZvcmNlTWFya2Rvd25MaW5rcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgbGluazogUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgb2xkIHBhdGggb2YgdGhlIGxpbmsuXG4gICAqL1xuICBvbGRQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBtYXAgb2Ygb2xkIGFuZCBuZXcgZmlsZSBwYXRocy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gICAqL1xuICBzb3VyY2VQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGRlZmF1bHQgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBtYXJrZG93biBsaW5rcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU1hcmtkb3duTGlua0RlZmF1bHRPcHRpb25zV3JhcHBlciB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBvcHRpb25zIGZvciBnZW5lcmF0aW5nIG1hcmtkb3duIGxpbmtzLlxuICAgKi9cbiAgZGVmYXVsdE9wdGlvbnNGbjogKCkgPT4gUGFydGlhbDxHZW5lcmF0ZU1hcmtkb3duTGlua09wdGlvbnM+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgYSBtYXJrZG93biBsaW5rLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlTWFya2Rvd25MaW5rT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYWxpYXMgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgYWxpYXM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgYW4gZW1wdHkgYWxpYXMgZm9yIGVtYmVkcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgYWxsb3dFbXB0eUVtYmVkQWxpYXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IG5vbi1leGlzdGluZyBmaWxlcy4gSWYgYGZhbHNlYCBhbmQgYHBhdGhPckZpbGVgIGlzIGEgbm9uLWV4aXN0aW5nIGZpbGUsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgYWxsb3dOb25FeGlzdGluZ0ZpbGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgcmVsYXRpdmUuIElmIG5vdCBwcm92aWRlZCBvciBgZmFsc2VgLCBpdCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAgICovXG4gIGZvcmNlUmVsYXRpdmVQYXRoPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBhdHRhY2htZW50IGV4dGVuc2lvbiBpbiB0aGUgZW1iZWQgYWxpYXMuIEhhcyBubyBlZmZlY3QgaWYgYGFsbG93RW1wdHlFbWJlZEFsaWFzYCBpcyBgdHJ1ZWAuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBpbmNsdWRlQXR0YWNobWVudEV4dGVuc2lvblRvRW1iZWRBbGlhcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgZW1iZWRkZWQuIElmIG5vdCBwcm92aWRlZCwgaXQgd2lsbCBiZSBpbmZlcnJlZCBiYXNlZCBvbiB0aGUgZmlsZSB0eXBlLlxuICAgKi9cbiAgaXNFbWJlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgYSB3aWtpbGluay4gSWYgbm90IHByb3ZpZGVkLCBpdCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAgICovXG4gIGlzV2lraWxpbms/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgICogVGhlIG9yaWdpbmFsIGxpbmsgdGV4dC4gSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCB0byBpbmZlciB0aGUgdmFsdWVzIG9mIGBpc0VtYmVkYCwgYGlzV2lraWxpbmtgLCBgdXNlTGVhZGluZ0RvdGAsIGFuZCBgdXNlQW5nbGVCcmFja2V0c2AuXG4gICAgKiBUaGVzZSBpbmZlcnJlZCB2YWx1ZXMgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IGNvcnJlc3BvbmRpbmcgc2V0dGluZ3MgaWYgc3BlY2lmaWVkLlxuICAgICovXG4gIG9yaWdpbmFsTGluaz86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGZpbGUgdG8gbGluayB0by5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCBvZiB0aGUgbGluay5cbiAgICovXG4gIHNvdXJjZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJwYXRoIG9mIHRoZSBsaW5rLlxuICAgKi9cbiAgc3VicGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIHNob3VsZCB1c2UgYW5nbGUgYnJhY2tldHMuIERlZmF1bHRzIHRvIGBmYWxzZWAuIEhhcyBubyBlZmZlY3QgaWYgYGlzV2lraWxpbmtgIGlzIGB0cnVlYFxuICAgKi9cbiAgdXNlQW5nbGVCcmFja2V0cz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgdXNlIGEgbGVhZGluZyBkb3QuIERlZmF1bHRzIHRvIGBmYWxzZWAuIEhhcyBubyBlZmZlY3QgaWYgYGlzV2lraWxpbmtgIGlzIGB0cnVlYCBvciBgaXNSZWxhdGl2ZWAgaXMgYGZhbHNlYC5cbiAgICovXG4gIHVzZUxlYWRpbmdEb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgcGFyc2luZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBhbGlhcyBvZiB0aGUgbGluay5cbiAgICovXG4gIGFsaWFzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaGFzIGFuZ2xlIGJyYWNrZXRzLlxuICAgKi9cbiAgaGFzQW5nbGVCcmFja2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhbiBlbWJlZCBsaW5rLlxuICAgKi9cbiAgaXNFbWJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIGlzIGV4dGVybmFsLlxuICAgKi9cbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhIHdpa2lsaW5rLlxuICAgKi9cbiAgaXNXaWtpbGluazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBsaW5rLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGxpbmsuXG4gICAqL1xuICB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZXRlcm1pbmluZyBpZiB0aGUgYWxpYXMgb2YgYSBsaW5rIHNob3VsZCBiZSByZXNldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG91bGRSZXNldEFsaWFzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIGxpbmsuXG4gICAqL1xuICBkaXNwbGF5VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaXMgYSB3aWtpbGluay5cbiAgICovXG4gIGlzV2lraWxpbms/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdGhlciBwYXRocyBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmsuXG4gICAqL1xuICBvdGhlclBhdGhPckZpbGVzOiAoUGF0aE9yRmlsZSB8IHVuZGVmaW5lZClbXTtcblxuICAvKipcbiAgICogVGhlIHBhdGggb3IgZmlsZSBvZiB0aGUgbGluay5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCBvZiB0aGUgbGluay5cbiAgICovXG4gIHNvdXJjZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogU3BsaXRzIGEgbGluayBpbnRvIGl0cyBsaW5rIHBhdGggYW5kIHN1YnBhdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BsaXRTdWJwYXRoUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBsaW5rIHBhdGguXG4gICAqL1xuICBsaW5rUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VicGF0aC5cbiAgICovXG4gIHN1YnBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB1cGRhdGluZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIG1hcmtkb3duIGxpbmtzLlxuICAgKi9cbiAgZm9yY2VNYXJrZG93bkxpbmtzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICBsaW5rOiBSZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBvbGQgcGF0aCBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG9sZFBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmsuXG4gICAqL1xuICBwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBtYXAgb2Ygb2xkIGFuZCBuZXcgZmlsZSBwYXRocy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gICAqL1xuICBzb3VyY2VQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHVwZGF0aW5nIGxpbmtzIGluIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVMaW5rc0luRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVwZGF0ZSBvbmx5IGVtYmVkZGVkIGxpbmtzLlxuICAgKi9cbiAgZW1iZWRPbmx5TGlua3M/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIHRoZSBsaW5rcyB0byBiZSBpbiBNYXJrZG93biBmb3JtYXQuXG4gICAqL1xuICBmb3JjZU1hcmtkb3duTGlua3M/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgb2xkIHBhdGggb2YgdGhlIGZpbGUuXG4gICAqL1xuICBvbGRQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGZpbGUgdG8gdXBkYXRlIHRoZSBsaW5rcyBpbi5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIG9sZCBhbmQgbmV3IHBhdGhzIGZvciByZW5hbWluZyBsaW5rcy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIFdpa2lMaW5rTm9kZSB7XG4gIGRhdGE6IHtcbiAgICBhbGlhczogc3RyaW5nO1xuICB9O1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGluayB0byBhIG5ldyBwYXRoLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGNvbnZlcnRpbmcgdGhlIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGxpbmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TGluayhvcHRpb25zOiBDb252ZXJ0TGlua09wdGlvbnMpOiBzdHJpbmcge1xuICByZXR1cm4gdXBkYXRlTGluayh7XG4gICAgYXBwOiBvcHRpb25zLmFwcCxcbiAgICBmb3JjZU1hcmtkb3duTGlua3M6IG9wdGlvbnMuZm9yY2VNYXJrZG93bkxpbmtzLFxuICAgIGxpbms6IG9wdGlvbnMubGluayxcbiAgICBvbGRQYXRoT3JGaWxlOiBvcHRpb25zLm9sZFBhdGhPckZpbGUsXG4gICAgcGF0aE9yRmlsZTogZXh0cmFjdExpbmtGaWxlKG9wdGlvbnMuYXBwLCBvcHRpb25zLmxpbmssIG9wdGlvbnMuc291cmNlUGF0aE9yRmlsZSksXG4gICAgcmVuYW1lTWFwOiBvcHRpb25zLnJlbmFtZU1hcCxcbiAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzOiBvcHRpb25zLnNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXMsXG4gICAgc291cmNlUGF0aE9yRmlsZTogb3B0aW9ucy5zb3VyY2VQYXRoT3JGaWxlXG4gIH0pO1xufVxuXG4vKipcbiAqIEVkaXRzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZWRpdCB0aGUgYmFja2xpbmtzIGZvci5cbiAqIEBwYXJhbSBsaW5rQ29udmVydGVyIC0gVGhlIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgZWFjaCBsaW5rLlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIG9wdGlvbnMgZm9yIHJldHJ5aW5nIHRoZSBvcGVyYXRpb24uXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBiYWNrbGlua3MgaGF2ZSBiZWVuIGVkaXRlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRCYWNrbGlua3MoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGxpbmtDb252ZXJ0ZXI6IChsaW5rOiBSZWZlcmVuY2UpID0+IE1heWJlUHJvbWlzZTxzdHJpbmcgfCB2b2lkPiwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBiYWNrbGlua3MgPSBhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHAsIHBhdGhPckZpbGUsIHJldHJ5T3B0aW9ucyk7XG4gIGZvciAoY29uc3QgYmFja2xpbmtOb3RlUGF0aCBvZiBiYWNrbGlua3Mua2V5cygpKSB7XG4gICAgY29uc3QgY3VycmVudExpbmtzID0gYmFja2xpbmtzLmdldChiYWNrbGlua05vdGVQYXRoKSA/PyBbXTtcbiAgICBjb25zdCBsaW5rSnNvbnMgPSBuZXcgU2V0PHN0cmluZz4oY3VycmVudExpbmtzLm1hcCgobGluaykgPT4gdG9Kc29uKGxpbmspKSk7XG4gICAgYXdhaXQgZWRpdExpbmtzKGFwcCwgYmFja2xpbmtOb3RlUGF0aCwgKGxpbmspID0+IHtcbiAgICAgIGNvbnN0IGxpbmtKc29uID0gdG9Kc29uKGxpbmspO1xuICAgICAgaWYgKCFsaW5rSnNvbnMuaGFzKGxpbmtKc29uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5rQ29udmVydGVyKGxpbmspO1xuICAgIH0sIHJldHJ5T3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBFZGl0cyB0aGUgbGlua3MgaW4gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggdXNpbmcgdGhlIHByb3ZpZGVkIGxpbmsgY29udmVydGVyIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZWRpdCB0aGUgbGlua3MgaW4uXG4gKiBAcGFyYW0gbGlua0NvbnZlcnRlciAtIFRoZSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIGVhY2ggbGluay5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGZvciByZXRyeWluZyB0aGUgb3BlcmF0aW9uLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGlua3MgaGF2ZSBiZWVuIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRMaW5rcyhcbiAgYXBwOiBBcHAsXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgbGlua0NvbnZlcnRlcjogKGxpbms6IFJlZmVyZW5jZSkgPT4gTWF5YmVQcm9taXNlPHN0cmluZyB8IHZvaWQ+LFxuICByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFwcGx5RmlsZUNoYW5nZXMoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICBpZiAoIWNhY2hlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlczogRmlsZUNoYW5nZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgZ2V0QWxsTGlua3MoY2FjaGUpKSB7XG4gICAgICBjb25zdCBuZXdDb250ZW50ID0gYXdhaXQgbGlua0NvbnZlcnRlcihsaW5rKTtcbiAgICAgIGlmIChuZXdDb250ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYW5nZXMucHVzaChyZWZlcmVuY2VUb0ZpbGVDaGFuZ2UobGluaywgbmV3Q29udGVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9LCByZXRyeU9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBmaWxlIGFzc29jaWF0ZWQgd2l0aCBhIGxpbmsuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBsaW5rIC0gVGhlIHJlZmVyZW5jZSBjYWNoZSBmb3IgdGhlIGxpbmsuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmssIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExpbmtGaWxlKGFwcDogQXBwLCBsaW5rOiBSZWZlcmVuY2UsIG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogbnVsbCB8IFRGaWxlIHtcbiAgY29uc3QgeyBsaW5rUGF0aCB9ID0gc3BsaXRTdWJwYXRoKGxpbmsubGluayk7XG4gIHJldHVybiBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChsaW5rUGF0aCwgZ2V0UGF0aChub3RlUGF0aE9yRmlsZSkpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG1hcmtkb3duIGxpbmsgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyB0aGUgbWFya2Rvd24gbGluay5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgbWFya2Rvd24gbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTWFya2Rvd25MaW5rKG9wdGlvbnM6IEdlbmVyYXRlTWFya2Rvd25MaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXBwIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zRm4gPSAoYXBwLmZpbGVNYW5hZ2VyLmdlbmVyYXRlTWFya2Rvd25MaW5rIGFzIFBhcnRpYWw8R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0T3B0aW9uc1dyYXBwZXI+KS5kZWZhdWx0T3B0aW9uc0ZuID8/ICgoKTogUGFydGlhbDxHZW5lcmF0ZU1hcmtkb3duTGlua09wdGlvbnM+ID0+ICh7fSkpO1xuICBjb25zdCBjb25maWd1cmFibGVEZWZhdWx0T3B0aW9ucyA9IGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zRm4oKTtcblxuICBjb25zdCBERUZBVUxUX09QVElPTlM6IFBhcnRpYWw8R2VuZXJhdGVNYXJrZG93bkxpbmtPcHRpb25zPiA9IHtcbiAgICBhbGxvd0VtcHR5RW1iZWRBbGlhczogdHJ1ZVxuICB9O1xuXG4gIG9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4uY29uZmlndXJhYmxlRGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcblxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIG9wdGlvbnMucGF0aE9yRmlsZSwgb3B0aW9ucy5hbGxvd05vbkV4aXN0aW5nRmlsZSk7XG5cbiAgcmV0dXJuIHRlbXBSZWdpc3RlckZpbGVBbmRSdW4oYXBwLCBmaWxlLCAoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IGdldFBhdGgob3B0aW9ucy5zb3VyY2VQYXRoT3JGaWxlKTtcbiAgICBjb25zdCBzdWJwYXRoID0gb3B0aW9ucy5zdWJwYXRoID8/ICcnO1xuICAgIGxldCBhbGlhcyA9IG9wdGlvbnMuYWxpYXMgPz8gJyc7XG4gICAgY29uc3QgaXNFbWJlZCA9IG9wdGlvbnMuaXNFbWJlZCA/PyAob3B0aW9ucy5vcmlnaW5hbExpbmsgPyB0ZXN0RW1iZWQob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyAhaXNNYXJrZG93bkZpbGUoZmlsZSk7XG4gICAgY29uc3QgaXNXaWtpbGluayA9IG9wdGlvbnMuaXNXaWtpbGluayA/PyAob3B0aW9ucy5vcmlnaW5hbExpbmsgPyB0ZXN0V2lraWxpbmsob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyBzaG91bGRVc2VXaWtpbGlua3MoYXBwKTtcbiAgICBjb25zdCBmb3JjZVJlbGF0aXZlUGF0aCA9IG9wdGlvbnMuZm9yY2VSZWxhdGl2ZVBhdGggPz8gc2hvdWxkVXNlUmVsYXRpdmVMaW5rcyhhcHApO1xuICAgIGNvbnN0IHVzZUxlYWRpbmdEb3QgPSBvcHRpb25zLnVzZUxlYWRpbmdEb3QgPz8gKG9wdGlvbnMub3JpZ2luYWxMaW5rID8gdGVzdExlYWRpbmdEb3Qob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyBmYWxzZTtcbiAgICBjb25zdCB1c2VBbmdsZUJyYWNrZXRzID0gb3B0aW9ucy51c2VBbmdsZUJyYWNrZXRzID8/IChvcHRpb25zLm9yaWdpbmFsTGluayA/IHRlc3RBbmdsZUJyYWNrZXRzKG9wdGlvbnMub3JpZ2luYWxMaW5rKSA6IHVuZGVmaW5lZCkgPz8gZmFsc2U7XG5cbiAgICBsZXQgbGlua1RleHQgPSBmaWxlLnBhdGggPT09IHNvdXJjZVBhdGggJiYgc3VicGF0aFxuICAgICAgPyBzdWJwYXRoXG4gICAgICA6IGZvcmNlUmVsYXRpdmVQYXRoXG4gICAgICAgID8gcmVsYXRpdmUoZGlybmFtZShzb3VyY2VQYXRoKSwgaXNXaWtpbGluayA/IHRyaW1NYXJrZG93bkV4dGVuc2lvbihmaWxlKSA6IGZpbGUucGF0aCkgKyBzdWJwYXRoXG4gICAgICAgIDogYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZVRvTGlua3RleHQoZmlsZSwgc291cmNlUGF0aCwgaXNXaWtpbGluaykgKyBzdWJwYXRoO1xuXG4gICAgaWYgKGZvcmNlUmVsYXRpdmVQYXRoICYmIHVzZUxlYWRpbmdEb3QgJiYgIWxpbmtUZXh0LnN0YXJ0c1dpdGgoJy4nKSAmJiAhbGlua1RleHQuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICBsaW5rVGV4dCA9ICcuLycgKyBsaW5rVGV4dDtcbiAgICB9XG5cbiAgICBjb25zdCBlbWJlZFByZWZpeCA9IGlzRW1iZWQgPyAnIScgOiAnJztcblxuICAgIGlmICghaXNXaWtpbGluaykge1xuICAgICAgaWYgKHVzZUFuZ2xlQnJhY2tldHMpIHtcbiAgICAgICAgbGlua1RleHQgPSBgPCR7bGlua1RleHR9PmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5rVGV4dCA9IGxpbmtUZXh0LnJlcGxhY2UoU1BFQ0lBTF9MSU5LX1NZTUJPTFNfUkVHRVhQLCBmdW5jdGlvbiAoc3BlY2lhbExpbmtTeW1ib2wpIHtcbiAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHNwZWNpYWxMaW5rU3ltYm9sKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghYWxpYXMgJiYgKCFpc0VtYmVkIHx8ICFvcHRpb25zLmFsbG93RW1wdHlFbWJlZEFsaWFzKSkge1xuICAgICAgICBhbGlhcyA9ICFvcHRpb25zLmluY2x1ZGVBdHRhY2htZW50RXh0ZW5zaW9uVG9FbWJlZEFsaWFzIHx8IGlzTWFya2Rvd25GaWxlKGZpbGUpID8gZmlsZS5iYXNlbmFtZSA6IGZpbGUubmFtZTtcbiAgICAgIH1cblxuICAgICAgYWxpYXMgPSBhbGlhcy5yZXBsYWNlKFNQRUNJQUxfTUFSS0RPV05fTElOS19TWU1CT0xTX1JFR0VYLCAnXFxcXCQmJyk7XG5cbiAgICAgIHJldHVybiBgJHtlbWJlZFByZWZpeH1bJHthbGlhc31dKCR7bGlua1RleHR9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhbGlhcyAmJiBhbGlhcy50b0xvd2VyQ2FzZSgpID09PSBsaW5rVGV4dC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGxpbmtUZXh0ID0gYWxpYXM7XG4gICAgICAgIGFsaWFzID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFsaWFzUGFydCA9IGFsaWFzID8gYHwke2FsaWFzfWAgOiAnJztcbiAgICAgIHJldHVybiBgJHtlbWJlZFByZWZpeH1bWyR7bGlua1RleHR9JHthbGlhc1BhcnR9XV1gO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgbGluayBpbnRvIGl0cyBjb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgbGluayB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGluayhzdHI6IHN0cmluZyk6IG51bGwgfCBQYXJzZUxpbmtSZXN1bHQge1xuICBjb25zdCBFTUJFRF9QUkVGSVggPSAnISc7XG4gIGNvbnN0IE9QRU5fQU5HTEVfQlJBQ0tFVCA9ICc8JztcbiAgY29uc3QgTElOS19BTElBU19TVUZGSVggPSAnXSgnO1xuICBjb25zdCBMSU5LX1NVRkZJWCA9ICcpJztcbiAgY29uc3QgV0lLSUxJTktfRElWSURFUiA9ICd8JztcblxuICBjb25zdCBpc0VtYmVkID0gc3RyLnN0YXJ0c1dpdGgoRU1CRURfUFJFRklYKTtcbiAgaWYgKGlzRW1iZWQpIHtcbiAgICBzdHIgPSB0cmltU3RhcnQoc3RyLCBFTUJFRF9QUkVGSVgpO1xuICB9XG4gIGNvbnN0IHByb2Nlc3NvciA9IHJlbWFyaygpLnVzZShyZW1hcmtQYXJzZSkudXNlKHdpa2lMaW5rUGx1Z2luLCB7IGFsaWFzRGl2aWRlcjogV0lLSUxJTktfRElWSURFUiB9KTtcbiAgY29uc3Qgcm9vdCA9IHByb2Nlc3Nvci5wYXJzZShzdHIpO1xuXG4gIGlmIChyb290LmNoaWxkcmVuLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcGFyYWdyYXBoID0gcm9vdC5jaGlsZHJlblswXTtcblxuICBpZiAocGFyYWdyYXBoPy50eXBlICE9PSAncGFyYWdyYXBoJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHBhcmFncmFwaC5jaGlsZHJlbi5sZW5ndGggIT09IDEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG5vZGUgPSBwYXJhZ3JhcGguY2hpbGRyZW5bMF07XG5cbiAgaWYgKG5vZGU/LnBvc2l0aW9uPy5zdGFydC5vZmZzZXQgIT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChub2RlLnBvc2l0aW9uLmVuZC5vZmZzZXQgIT09IHN0ci5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAobm9kZS50eXBlIGFzIHN0cmluZykge1xuICAgIGNhc2UgJ2xpbmsnOiB7XG4gICAgICBjb25zdCBsaW5rTm9kZSA9IG5vZGUgYXMgTGluaztcbiAgICAgIGNvbnN0IGFsaWFzTm9kZSA9IGxpbmtOb2RlLmNoaWxkcmVuWzBdIGFzIFRleHQ7XG4gICAgICBjb25zdCByYXdVcmwgPSBzdHIuc2xpY2UoKGFsaWFzTm9kZS5wb3NpdGlvbj8uZW5kLm9mZnNldCA/PyAwKSArIExJTktfQUxJQVNfU1VGRklYLmxlbmd0aCwgKGxpbmtOb2RlLnBvc2l0aW9uPy5lbmQub2Zmc2V0ID8/IDApIC0gTElOS19TVUZGSVgubGVuZ3RoKTtcbiAgICAgIGNvbnN0IGhhc0FuZ2xlQnJhY2tldHMgPSBzdHIuc3RhcnRzV2l0aChPUEVOX0FOR0xFX0JSQUNLRVQpIHx8IHJhd1VybC5zdGFydHNXaXRoKE9QRU5fQU5HTEVfQlJBQ0tFVCk7XG4gICAgICBjb25zdCBpc0V4dGVybmFsID0gaXNVcmwobGlua05vZGUudXJsKTtcbiAgICAgIGxldCB1cmwgPSBsaW5rTm9kZS51cmw7XG4gICAgICBpZiAoIWlzRXh0ZXJuYWwpIHtcbiAgICAgICAgaWYgKCFoYXNBbmdsZUJyYWNrZXRzKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IGRlY29kZVVSSUNvbXBvbmVudCh1cmwpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZGVjb2RlIFVSTCAke3VybH1gLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbGlhczogYWxpYXNOb2RlLnZhbHVlLFxuICAgICAgICBoYXNBbmdsZUJyYWNrZXRzLFxuICAgICAgICBpc0VtYmVkLFxuICAgICAgICBpc0V4dGVybmFsLFxuICAgICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgICAgdGl0bGU6IGxpbmtOb2RlLnRpdGxlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgdXJsXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICd3aWtpTGluayc6IHtcbiAgICAgIGNvbnN0IHdpa2lMaW5rTm9kZSA9IG5vZGUgYXMgdW5rbm93biBhcyBXaWtpTGlua05vZGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbGlhczogc3RyLmluY2x1ZGVzKFdJS0lMSU5LX0RJVklERVIpID8gd2lraUxpbmtOb2RlLmRhdGEuYWxpYXMgOiB1bmRlZmluZWQsXG4gICAgICAgIGlzRW1iZWQsXG4gICAgICAgIGlzV2lraWxpbms6IHRydWUsXG4gICAgICAgIHVybDogd2lraUxpbmtOb2RlLnZhbHVlXG4gICAgICB9O1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBhbGlhcyBvZiBhIGxpbmsgc2hvdWxkIGJlIHJlc2V0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGRldGVybWluaW5nIGlmIHRoZSBhbGlhcyBzaG91bGQgYmUgcmVzZXQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhbGlhcyBzaG91bGQgYmUgcmVzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRSZXNldEFsaWFzKG9wdGlvbnM6IFNob3VsZFJlc2V0QWxpYXNPcHRpb25zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgZGlzcGxheVRleHQsXG4gICAgaXNXaWtpbGluayxcbiAgICBvdGhlclBhdGhPckZpbGVzLFxuICAgIHBhdGhPckZpbGUsXG4gICAgc291cmNlUGF0aE9yRmlsZVxuICB9ID0gb3B0aW9ucztcbiAgaWYgKGlzV2lraWxpbmsgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcblxuICBpZiAoIWRpc3BsYXlUZXh0KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb25zdCBzb3VyY2VQYXRoID0gZ2V0UGF0aChzb3VyY2VQYXRoT3JGaWxlKTtcbiAgY29uc3Qgc291cmNlRGlyID0gZGlybmFtZShzb3VyY2VQYXRoKTtcblxuICBjb25zdCBhbGlhc2VzVG9SZXNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3QgcGF0aE9yRmlsZSBvZiBbZmlsZS5wYXRoLCAuLi5vdGhlclBhdGhPckZpbGVzXSkge1xuICAgIGlmICghcGF0aE9yRmlsZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IGdldFBhdGgocGF0aE9yRmlsZSk7XG4gICAgYWxpYXNlc1RvUmVzZXQuYWRkKHBhdGgpO1xuICAgIGFsaWFzZXNUb1Jlc2V0LmFkZChiYXNlbmFtZShwYXRoKSk7XG4gICAgYWxpYXNlc1RvUmVzZXQuYWRkKHJlbGF0aXZlKHNvdXJjZURpciwgcGF0aCkpO1xuICB9XG5cbiAgYWxpYXNlc1RvUmVzZXQuYWRkKGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVUb0xpbmt0ZXh0KGZpbGUsIHNvdXJjZVBhdGgsIGZhbHNlKSk7XG5cbiAgY29uc3QgY2xlYW5EaXNwbGF5VGV4dCA9IG5vcm1hbGl6ZVBhdGgoZGlzcGxheVRleHQuc3BsaXQoJyA+ICcpWzBdID8/ICcnKS5yZXBsYWNlKC9eXFwuXFwvLywgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgZm9yIChjb25zdCBhbGlhcyBvZiBhbGlhc2VzVG9SZXNldCkge1xuICAgIGlmIChhbGlhcy50b0xvd2VyQ2FzZSgpID09PSBjbGVhbkRpc3BsYXlUZXh0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXIgPSBkaXJuYW1lKGFsaWFzKTtcbiAgICBjb25zdCBiYXNlID0gYmFzZW5hbWUoYWxpYXMsIGV4dG5hbWUoYWxpYXMpKTtcbiAgICBpZiAoam9pbihkaXIsIGJhc2UpLnRvTG93ZXJDYXNlKCkgPT09IGNsZWFuRGlzcGxheVRleHQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBTcGxpdHMgYSBsaW5rIGludG8gaXRzIGxpbmsgcGF0aCBhbmQgc3VicGF0aC5cbiAqXG4gKiBAcGFyYW0gbGluayAtIFRoZSBsaW5rIHRvIHNwbGl0LlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGxpbmsgcGF0aCBhbmQgc3VicGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0U3VicGF0aChsaW5rOiBzdHJpbmcpOiBTcGxpdFN1YnBhdGhSZXN1bHQge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZUxpbmt0ZXh0KG5vcm1hbGl6ZShsaW5rKSk7XG4gIHJldHVybiB7XG4gICAgbGlua1BhdGg6IHBhcnNlZC5wYXRoLFxuICAgIHN1YnBhdGg6IHBhcnNlZC5zdWJwYXRoXG4gIH07XG59XG5cbi8qKlxuICogVGVzdHMgd2hldGhlciBhIGxpbmsgdXNlcyBhbmdsZSBicmFja2V0cywgcG9zc2libHkgZW1iZWQ6XG4gKiBgW3RpdGxlXSg8bGluaz4pYCwgYCFbdGl0bGVdKDxsaW5rPilgLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gTGluayB0byB0ZXN0XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBsaW5rIHVzZXMgYW5nbGUgYnJhY2tldHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RBbmdsZUJyYWNrZXRzKGxpbms6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZUxpbmtSZXN1bHQgPSBwYXJzZUxpbmsobGluayk7XG4gIHJldHVybiBwYXJzZUxpbmtSZXN1bHQ/Lmhhc0FuZ2xlQnJhY2tldHMgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogVGVzdHMgd2hldGhlciBhIGxpbmsgaXMgYW4gZW1iZWQgbGluazpcbiAqIGAhW1tsaW5rXV1gLCBgIVt0aXRsZV0obGluaylgLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gTGluayB0byB0ZXN0XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBsaW5rIGlzIGFuIGVtYmVkIGxpbmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RFbWJlZChsaW5rOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VMaW5rUmVzdWx0ID0gcGFyc2VMaW5rKGxpbmspO1xuICByZXR1cm4gcGFyc2VMaW5rUmVzdWx0Py5pc0VtYmVkID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIFRlc3RzIHdoZXRoZXIgYSBsaW5rIGhhcyBhIGxlYWRpbmcgZG90LCBwb3NzaWJseSBlbWJlZDpcbiAqIGBbWy4vbGlua11dYCwgYFt0aXRsZV0oLi9saW5rKWAsIGBbdGl0bGVdKDwuL2xpbms+KWAsXG4gKiBgIVtbLi9saW5rXV1gLCBgIVt0aXRsZV0oLi9saW5rKWAsIGAhW3RpdGxlXSg8Li9saW5rPilgLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gTGluayB0byB0ZXN0XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBsaW5rIGhhcyBhIGxlYWRpbmcgZG90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0TGVhZGluZ0RvdChsaW5rOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VMaW5rUmVzdWx0ID0gcGFyc2VMaW5rKGxpbmspO1xuICByZXR1cm4gcGFyc2VMaW5rUmVzdWx0Py51cmwuc3RhcnRzV2l0aCgnLi8nKSA/PyBmYWxzZTtcbn1cblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgbGluayBpcyBhIHdpa2lsaW5rLCBwb3NzaWJseSBlbWJlZDpcbiAqIGBbW2xpbmtdXWAsIGAhW1tsaW5rXV1gLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gTGluayB0byB0ZXN0XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBsaW5rIGlzIGEgd2lraWxpbmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RXaWtpbGluayhsaW5rOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VMaW5rUmVzdWx0ID0gcGFyc2VMaW5rKGxpbmspO1xuICByZXR1cm4gcGFyc2VMaW5rUmVzdWx0Py5pc1dpa2lsaW5rID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgYSBsaW5rIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHVwZGF0aW5nIHRoZSBsaW5rLlxuICogQHJldHVybnMgVGhlIHVwZGF0ZWQgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUxpbmsob3B0aW9uczogVXBkYXRlTGlua09wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGZvcmNlTWFya2Rvd25MaW5rcyxcbiAgICBsaW5rLFxuICAgIG9sZFBhdGhPckZpbGUsXG4gICAgcGF0aE9yRmlsZSxcbiAgICByZW5hbWVNYXAsXG4gICAgc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhcyxcbiAgICBzb3VyY2VQYXRoT3JGaWxlXG4gIH0gPSBvcHRpb25zO1xuICBpZiAoIXBhdGhPckZpbGUpIHtcbiAgICByZXR1cm4gbGluay5vcmlnaW5hbDtcbiAgfVxuICBsZXQgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgY29uc3Qgb2xkUGF0aCA9IGdldFBhdGgob2xkUGF0aE9yRmlsZSA/PyBzb3VyY2VQYXRoT3JGaWxlKTtcbiAgY29uc3QgaXNXaWtpbGluayA9IHRlc3RXaWtpbGluayhsaW5rLm9yaWdpbmFsKSAmJiBmb3JjZU1hcmtkb3duTGlua3MgIT09IHRydWU7XG4gIGNvbnN0IHsgc3VicGF0aCB9ID0gc3BsaXRTdWJwYXRoKGxpbmsubGluayk7XG5cbiAgY29uc3QgbmV3UGF0aCA9IHJlbmFtZU1hcD8uZ2V0KGZpbGUucGF0aCk7XG4gIGxldCBhbGlhcyA9IHNob3VsZFJlc2V0QWxpYXMoe1xuICAgIGFwcCxcbiAgICBkaXNwbGF5VGV4dDogbGluay5kaXNwbGF5VGV4dCxcbiAgICBpc1dpa2lsaW5rLFxuICAgIG90aGVyUGF0aE9yRmlsZXM6IFtvbGRQYXRoLCBuZXdQYXRoXSxcbiAgICBwYXRoT3JGaWxlLFxuICAgIHNvdXJjZVBhdGhPckZpbGVcbiAgfSlcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogbGluay5kaXNwbGF5VGV4dDtcblxuICBpZiAoc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhcyA/PyB0cnVlKSB7XG4gICAgaWYgKGFsaWFzPy50b0xvd2VyQ2FzZSgpID09PSBiYXNlbmFtZShvbGRQYXRoLCBleHRuYW1lKG9sZFBhdGgpKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBhbGlhcyA9IGZpbGUuYmFzZW5hbWU7XG4gICAgfSBlbHNlIGlmIChhbGlhcz8udG9Mb3dlckNhc2UoKSA9PT0gYmFzZW5hbWUob2xkUGF0aCkudG9Mb3dlckNhc2UoKSkge1xuICAgICAgYWxpYXMgPSBmaWxlLm5hbWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld1BhdGgpIHtcbiAgICBmaWxlID0gZ2V0RmlsZShhcHAsIG5ld1BhdGgsIHRydWUpO1xuICB9XG5cbiAgaWYgKGlzQ2FudmFzRmlsZShzb3VyY2VQYXRoT3JGaWxlKSkge1xuICAgIHJldHVybiBmaWxlLnBhdGggKyBzdWJwYXRoO1xuICB9XG5cbiAgY29uc3QgbmV3TGluayA9IGdlbmVyYXRlTWFya2Rvd25MaW5rKHtcbiAgICBhbGlhcyxcbiAgICBhcHAsXG4gICAgaXNXaWtpbGluazogZm9yY2VNYXJrZG93bkxpbmtzID8gZmFsc2UgOiB1bmRlZmluZWQsXG4gICAgb3JpZ2luYWxMaW5rOiBsaW5rLm9yaWdpbmFsLFxuICAgIHBhdGhPckZpbGU6IGZpbGUsXG4gICAgc291cmNlUGF0aE9yRmlsZSxcbiAgICBzdWJwYXRoXG4gIH0pO1xuICByZXR1cm4gbmV3TGluaztcbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBsaW5rcyBpbiBhIGZpbGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdXBkYXRpbmcgdGhlIGxpbmtzLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGlua3MgYXJlIHVwZGF0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVMaW5rc0luRmlsZShvcHRpb25zOiBVcGRhdGVMaW5rc0luRmlsZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBlbWJlZE9ubHlMaW5rcyxcbiAgICBmb3JjZU1hcmtkb3duTGlua3MsXG4gICAgb2xkUGF0aE9yRmlsZSxcbiAgICBwYXRoT3JGaWxlLFxuICAgIHJlbmFtZU1hcCxcbiAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChpc0NhbnZhc0ZpbGUocGF0aE9yRmlsZSkgJiYgIWFwcC5pbnRlcm5hbFBsdWdpbnMuZ2V0RW5hYmxlZFBsdWdpbkJ5SWQoJ2NhbnZhcycpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgZWRpdExpbmtzKGFwcCwgcGF0aE9yRmlsZSwgKGxpbmspID0+IHtcbiAgICBjb25zdCBpc0VtYmVkTGluayA9IHRlc3RFbWJlZChsaW5rLm9yaWdpbmFsKTtcbiAgICBpZiAoZW1iZWRPbmx5TGlua3MgIT09IHVuZGVmaW5lZCAmJiBlbWJlZE9ubHlMaW5rcyAhPT0gaXNFbWJlZExpbmspIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnZlcnRMaW5rKHtcbiAgICAgIGFwcCxcbiAgICAgIGZvcmNlTWFya2Rvd25MaW5rcyxcbiAgICAgIGxpbmssXG4gICAgICBvbGRQYXRoT3JGaWxlLFxuICAgICAgcmVuYW1lTWFwLFxuICAgICAgc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhcyxcbiAgICAgIHNvdXJjZVBhdGhPckZpbGU6IHBhdGhPckZpbGVcbiAgICB9KTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFB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
408
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xpbmsudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTGlua1xuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzIGZvciBoYW5kbGluZyBhbmQgdXBkYXRpbmcgbGlua3Mgd2l0aGluIE9ic2lkaWFuIHZhdWx0cy4gSXQgaW5jbHVkZXNcbiAqIGZ1bmN0aW9ucyB0byBzcGxpdCBwYXRocywgdXBkYXRlIGxpbmtzIGluIGZpbGVzLCBhbmQgZ2VuZXJhdGUgbWFya2Rvd24gbGlua3Mgd2l0aCB2YXJpb3VzIG9wdGlvbnMuXG4gKiBUaGUgZnVuY3Rpb25zIGludGVncmF0ZSB3aXRoIE9ic2lkaWFuJ3MgQVBJIHRvIGVuc3VyZSB0aGF0IGxpbmtzIGFyZSBtYW5hZ2VkIGNvcnJlY3RseSB3aXRoaW4gdGhlIHZhdWx0LlxuICoqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIExpbmssXG4gIFRleHRcbn0gZnJvbSAnbWRhc3QnO1xuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIFJlZmVyZW5jZSxcbiAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZUxpbmt0ZXh0XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IHJlbWFyayB9IGZyb20gJ3JlbWFyayc7XG5pbXBvcnQgcmVtYXJrUGFyc2UgZnJvbSAncmVtYXJrLXBhcnNlJztcbmltcG9ydCB7IHdpa2lMaW5rUGx1Z2luIH0gZnJvbSAncmVtYXJrLXdpa2ktbGluayc7XG5cbmltcG9ydCB0eXBlIHtcbiAgTWF5YmVQcm9taXNlLFxuICBSZXRyeU9wdGlvbnNcbn0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlQ2hhbmdlIH0gZnJvbSAnLi9GaWxlQ2hhbmdlLnRzJztcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7IHRvSnNvbiB9IGZyb20gJy4uL09iamVjdC50cyc7XG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgam9pbixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBub3JtYWxpemUsXG4gIHRyaW1TdGFydFxufSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHsgaXNVcmwgfSBmcm9tICcuLi91cmwudHMnO1xuaW1wb3J0IHsgYXBwbHlGaWxlQ2hhbmdlcyB9IGZyb20gJy4vRmlsZUNoYW5nZS50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRQYXRoLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlLFxuICB0cmltTWFya2Rvd25FeHRlbnNpb25cbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7XG4gIGdldEFsbExpbmtzLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuXG59IGZyb20gJy4vTWV0YWRhdGFDYWNoZS50cyc7XG5pbXBvcnQge1xuICBzaG91bGRVc2VSZWxhdGl2ZUxpbmtzLFxuICBzaG91bGRVc2VXaWtpbGlua3Ncbn0gZnJvbSAnLi9PYnNpZGlhblNldHRpbmdzLnRzJztcbmltcG9ydCB7IHJlZmVyZW5jZVRvRmlsZUNoYW5nZSB9IGZyb20gJy4vUmVmZXJlbmNlLnRzJztcblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIHNwZWNpYWwgbGluayBzeW1ib2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxuY29uc3QgU1BFQ0lBTF9MSU5LX1NZTUJPTFNfUkVHRVhQID0gL1tcXFxcXFx4MDBcXHgwOFxceDBCXFx4MENcXHgwRS1cXHgxRiBdL2c7XG5cbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIGZvciBzcGVjaWFsIG1hcmtkb3duIGxpbmsgc3ltYm9scy5cbiAqL1xuY29uc3QgU1BFQ0lBTF9NQVJLRE9XTl9MSU5LX1NZTUJPTFNfUkVHRVggPSAvW1xcXFxbXFxdPD5fKn49YCRdL2c7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udmVydGluZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udmVydExpbmtPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICBhcHA6IEFwcDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBtYXJrZG93biBsaW5rcy5cbiAgICovXG4gIGZvcmNlTWFya2Rvd25MaW5rcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgbGluazogUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgb2xkIHBhdGggb2YgdGhlIGxpbmsuXG4gICAqL1xuICBvbGRQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBtYXAgb2Ygb2xkIGFuZCBuZXcgZmlsZSBwYXRocy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gICAqL1xuICBzb3VyY2VQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGRlZmF1bHQgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBtYXJrZG93biBsaW5rcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU1hcmtkb3duTGlua0RlZmF1bHRPcHRpb25zV3JhcHBlciB7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBvcHRpb25zIGZvciBnZW5lcmF0aW5nIG1hcmtkb3duIGxpbmtzLlxuICAgKi9cbiAgZGVmYXVsdE9wdGlvbnNGbjogKCkgPT4gUGFydGlhbDxHZW5lcmF0ZU1hcmtkb3duTGlua09wdGlvbnM+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgYSBtYXJrZG93biBsaW5rLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlTWFya2Rvd25MaW5rT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYWxpYXMgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgYWxpYXM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgYW4gZW1wdHkgYWxpYXMgZm9yIGVtYmVkcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgYWxsb3dFbXB0eUVtYmVkQWxpYXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IG5vbi1leGlzdGluZyBmaWxlcy4gSWYgYGZhbHNlYCBhbmQgYHBhdGhPckZpbGVgIGlzIGEgbm9uLWV4aXN0aW5nIGZpbGUsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgYWxsb3dOb25FeGlzdGluZ0ZpbGU/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgcmVsYXRpdmUuIElmIG5vdCBwcm92aWRlZCBvciBgZmFsc2VgLCBpdCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAgICovXG4gIGZvcmNlUmVsYXRpdmVQYXRoPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBhdHRhY2htZW50IGV4dGVuc2lvbiBpbiB0aGUgZW1iZWQgYWxpYXMuIEhhcyBubyBlZmZlY3QgaWYgYGFsbG93RW1wdHlFbWJlZEFsaWFzYCBpcyBgdHJ1ZWAuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqL1xuICBpbmNsdWRlQXR0YWNobWVudEV4dGVuc2lvblRvRW1iZWRBbGlhcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgZW1iZWRkZWQuIElmIG5vdCBwcm92aWRlZCwgaXQgd2lsbCBiZSBpbmZlcnJlZCBiYXNlZCBvbiB0aGUgZmlsZSB0eXBlLlxuICAgKi9cbiAgaXNFbWJlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgYmUgYSB3aWtpbGluay4gSWYgbm90IHByb3ZpZGVkLCBpdCB3aWxsIGJlIGluZmVycmVkIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAgICovXG4gIGlzV2lraWxpbms/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgICogVGhlIG9yaWdpbmFsIGxpbmsgdGV4dC4gSWYgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCB0byBpbmZlciB0aGUgdmFsdWVzIG9mIGBpc0VtYmVkYCwgYGlzV2lraWxpbmtgLCBgdXNlTGVhZGluZ0RvdGAsIGFuZCBgdXNlQW5nbGVCcmFja2V0c2AuXG4gICAgKiBUaGVzZSBpbmZlcnJlZCB2YWx1ZXMgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IGNvcnJlc3BvbmRpbmcgc2V0dGluZ3MgaWYgc3BlY2lmaWVkLlxuICAgICovXG4gIG9yaWdpbmFsTGluaz86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGZpbGUgdG8gbGluayB0by5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCBvZiB0aGUgbGluay5cbiAgICovXG4gIHNvdXJjZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJwYXRoIG9mIHRoZSBsaW5rLlxuICAgKi9cbiAgc3VicGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIHNob3VsZCB1c2UgYW5nbGUgYnJhY2tldHMuIERlZmF1bHRzIHRvIGBmYWxzZWAuIEhhcyBubyBlZmZlY3QgaWYgYGlzV2lraWxpbmtgIGlzIGB0cnVlYFxuICAgKi9cbiAgdXNlQW5nbGVCcmFja2V0cz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBzaG91bGQgdXNlIGEgbGVhZGluZyBkb3QuIERlZmF1bHRzIHRvIGBmYWxzZWAuIEhhcyBubyBlZmZlY3QgaWYgYGlzV2lraWxpbmtgIGlzIGB0cnVlYCBvciBgaXNSZWxhdGl2ZWAgaXMgYGZhbHNlYC5cbiAgICovXG4gIHVzZUxlYWRpbmdEb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSByZXN1bHQgb2YgcGFyc2luZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VMaW5rUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBhbGlhcyBvZiB0aGUgbGluay5cbiAgICovXG4gIGFsaWFzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaGFzIGFuZ2xlIGJyYWNrZXRzLlxuICAgKi9cbiAgaGFzQW5nbGVCcmFja2V0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhbiBlbWJlZCBsaW5rLlxuICAgKi9cbiAgaXNFbWJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaW5rIGlzIGV4dGVybmFsLlxuICAgKi9cbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGluayBpcyBhIHdpa2lsaW5rLlxuICAgKi9cbiAgaXNXaWtpbGluazogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBsaW5rLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGxpbmsuXG4gICAqL1xuICB1cmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZXRlcm1pbmluZyBpZiB0aGUgYWxpYXMgb2YgYSBsaW5rIHNob3VsZCBiZSByZXNldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG91bGRSZXNldEFsaWFzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IHRleHQgb2YgdGhlIGxpbmsuXG4gICAqL1xuICBkaXNwbGF5VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGxpbmsgaXMgYSB3aWtpbGluay5cbiAgICovXG4gIGlzV2lraWxpbms/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdGhlciBwYXRocyBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmsuXG4gICAqL1xuICBvdGhlclBhdGhPckZpbGVzOiAoUGF0aE9yRmlsZSB8IHVuZGVmaW5lZClbXTtcblxuICAvKipcbiAgICogVGhlIHBhdGggb3IgZmlsZSBvZiB0aGUgbGluay5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgcGF0aCBvZiB0aGUgbGluay5cbiAgICovXG4gIHNvdXJjZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG59XG5cbi8qKlxuICogU3BsaXRzIGEgbGluayBpbnRvIGl0cyBsaW5rIHBhdGggYW5kIHN1YnBhdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BsaXRTdWJwYXRoUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBsaW5rIHBhdGguXG4gICAqL1xuICBsaW5rUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VicGF0aC5cbiAgICovXG4gIHN1YnBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB1cGRhdGluZyBhIGxpbmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIG1hcmtkb3duIGxpbmtzLlxuICAgKi9cbiAgZm9yY2VNYXJrZG93bkxpbmtzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICBsaW5rOiBSZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBvbGQgcGF0aCBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG9sZFBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmsuXG4gICAqL1xuICBwYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBtYXAgb2Ygb2xkIGFuZCBuZXcgZmlsZSBwYXRocy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gICAqL1xuICBzb3VyY2VQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHVwZGF0aW5nIGxpbmtzIGluIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVMaW5rc0luRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVwZGF0ZSBvbmx5IGVtYmVkZGVkIGxpbmtzLlxuICAgKi9cbiAgZW1iZWRPbmx5TGlua3M/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIHRoZSBsaW5rcyB0byBiZSBpbiBNYXJrZG93biBmb3JtYXQuXG4gICAqL1xuICBmb3JjZU1hcmtkb3duTGlua3M/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgb2xkIHBhdGggb2YgdGhlIGZpbGUuXG4gICAqL1xuICBvbGRQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGZpbGUgdG8gdXBkYXRlIHRoZSBsaW5rcyBpbi5cbiAgICovXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIG9sZCBhbmQgbmV3IHBhdGhzIGZvciByZW5hbWluZyBsaW5rcy5cbiAgICovXG4gIHJlbmFtZU1hcD86IE1hcDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbGVuYW1lIGFsaWFzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIFdpa2lMaW5rTm9kZSB7XG4gIGRhdGE6IHtcbiAgICBhbGlhczogc3RyaW5nO1xuICB9O1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGluayB0byBhIG5ldyBwYXRoLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGNvbnZlcnRpbmcgdGhlIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgY29udmVydGVkIGxpbmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TGluayhvcHRpb25zOiBDb252ZXJ0TGlua09wdGlvbnMpOiBzdHJpbmcge1xuICByZXR1cm4gdXBkYXRlTGluayh7XG4gICAgYXBwOiBvcHRpb25zLmFwcCxcbiAgICBmb3JjZU1hcmtkb3duTGlua3M6IG9wdGlvbnMuZm9yY2VNYXJrZG93bkxpbmtzLFxuICAgIGxpbms6IG9wdGlvbnMubGluayxcbiAgICBvbGRQYXRoT3JGaWxlOiBvcHRpb25zLm9sZFBhdGhPckZpbGUsXG4gICAgcGF0aE9yRmlsZTogZXh0cmFjdExpbmtGaWxlKG9wdGlvbnMuYXBwLCBvcHRpb25zLmxpbmssIG9wdGlvbnMuc291cmNlUGF0aE9yRmlsZSksXG4gICAgcmVuYW1lTWFwOiBvcHRpb25zLnJlbmFtZU1hcCxcbiAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzOiBvcHRpb25zLnNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXMsXG4gICAgc291cmNlUGF0aE9yRmlsZTogb3B0aW9ucy5zb3VyY2VQYXRoT3JGaWxlXG4gIH0pO1xufVxuXG4vKipcbiAqIEVkaXRzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZWRpdCB0aGUgYmFja2xpbmtzIGZvci5cbiAqIEBwYXJhbSBsaW5rQ29udmVydGVyIC0gVGhlIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgZWFjaCBsaW5rLlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIG9wdGlvbnMgZm9yIHJldHJ5aW5nIHRoZSBvcGVyYXRpb24uXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBiYWNrbGlua3MgaGF2ZSBiZWVuIGVkaXRlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1pbnZhbGlkLXZvaWQtdHlwZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRCYWNrbGlua3MoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGxpbmtDb252ZXJ0ZXI6IChsaW5rOiBSZWZlcmVuY2UpID0+IE1heWJlUHJvbWlzZTxzdHJpbmcgfCB2b2lkPiwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBiYWNrbGlua3MgPSBhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHAsIHBhdGhPckZpbGUsIHJldHJ5T3B0aW9ucyk7XG4gIGZvciAoY29uc3QgYmFja2xpbmtOb3RlUGF0aCBvZiBiYWNrbGlua3Mua2V5cygpKSB7XG4gICAgY29uc3QgY3VycmVudExpbmtzID0gYmFja2xpbmtzLmdldChiYWNrbGlua05vdGVQYXRoKSA/PyBbXTtcbiAgICBjb25zdCBsaW5rSnNvbnMgPSBuZXcgU2V0PHN0cmluZz4oY3VycmVudExpbmtzLm1hcCgobGluaykgPT4gdG9Kc29uKGxpbmspKSk7XG4gICAgYXdhaXQgZWRpdExpbmtzKGFwcCwgYmFja2xpbmtOb3RlUGF0aCwgKGxpbmspID0+IHtcbiAgICAgIGNvbnN0IGxpbmtKc29uID0gdG9Kc29uKGxpbmspO1xuICAgICAgaWYgKCFsaW5rSnNvbnMuaGFzKGxpbmtKc29uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5rQ29udmVydGVyKGxpbmspO1xuICAgIH0sIHJldHJ5T3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBFZGl0cyB0aGUgbGlua3MgaW4gdGhlIHNwZWNpZmllZCBmaWxlIG9yIHBhdGggdXNpbmcgdGhlIHByb3ZpZGVkIGxpbmsgY29udmVydGVyIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgdG8gZWRpdCB0aGUgbGlua3MgaW4uXG4gKiBAcGFyYW0gbGlua0NvbnZlcnRlciAtIFRoZSBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIGVhY2ggbGluay5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCBvcHRpb25zIGZvciByZXRyeWluZyB0aGUgb3BlcmF0aW9uLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbGlua3MgaGF2ZSBiZWVuIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRMaW5rcyhcbiAgYXBwOiBBcHAsXG4gIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGVcbiAgbGlua0NvbnZlcnRlcjogKGxpbms6IFJlZmVyZW5jZSkgPT4gTWF5YmVQcm9taXNlPHN0cmluZyB8IHZvaWQ+LFxuICByZXRyeU9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGFwcGx5RmlsZUNoYW5nZXMoYXBwLCBwYXRoT3JGaWxlLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICBpZiAoIWNhY2hlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlczogRmlsZUNoYW5nZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgZ2V0QWxsTGlua3MoY2FjaGUpKSB7XG4gICAgICBjb25zdCBuZXdDb250ZW50ID0gYXdhaXQgbGlua0NvbnZlcnRlcihsaW5rKTtcbiAgICAgIGlmIChuZXdDb250ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNoYW5nZXMucHVzaChyZWZlcmVuY2VUb0ZpbGVDaGFuZ2UobGluaywgbmV3Q29udGVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9LCByZXRyeU9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBmaWxlIGFzc29jaWF0ZWQgd2l0aCBhIGxpbmsuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBsaW5rIC0gVGhlIHJlZmVyZW5jZSBjYWNoZSBmb3IgdGhlIGxpbmsuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlIGNvbnRhaW5pbmcgdGhlIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpbmssIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExpbmtGaWxlKGFwcDogQXBwLCBsaW5rOiBSZWZlcmVuY2UsIG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogbnVsbCB8IFRGaWxlIHtcbiAgY29uc3QgeyBsaW5rUGF0aCB9ID0gc3BsaXRTdWJwYXRoKGxpbmsubGluayk7XG4gIHJldHVybiBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChsaW5rUGF0aCwgZ2V0UGF0aChub3RlUGF0aE9yRmlsZSkpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG1hcmtkb3duIGxpbmsgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyB0aGUgbWFya2Rvd24gbGluay5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgbWFya2Rvd24gbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTWFya2Rvd25MaW5rKG9wdGlvbnM6IEdlbmVyYXRlTWFya2Rvd25MaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXBwIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zRm4gPSAoYXBwLmZpbGVNYW5hZ2VyLmdlbmVyYXRlTWFya2Rvd25MaW5rIGFzIFBhcnRpYWw8R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0T3B0aW9uc1dyYXBwZXI+KS5kZWZhdWx0T3B0aW9uc0ZuID8/ICgoKTogUGFydGlhbDxHZW5lcmF0ZU1hcmtkb3duTGlua09wdGlvbnM+ID0+ICh7fSkpO1xuICBjb25zdCBjb25maWd1cmFibGVEZWZhdWx0T3B0aW9ucyA9IGNvbmZpZ3VyYWJsZURlZmF1bHRPcHRpb25zRm4oKTtcblxuICBjb25zdCBERUZBVUxUX09QVElPTlM6IFBhcnRpYWw8R2VuZXJhdGVNYXJrZG93bkxpbmtPcHRpb25zPiA9IHtcbiAgICBhbGxvd0VtcHR5RW1iZWRBbGlhczogdHJ1ZVxuICB9O1xuXG4gIG9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfT1BUSU9OUywgLi4uY29uZmlndXJhYmxlRGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcblxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIG9wdGlvbnMucGF0aE9yRmlsZSwgb3B0aW9ucy5hbGxvd05vbkV4aXN0aW5nRmlsZSk7XG5cbiAgcmV0dXJuIHRlbXBSZWdpc3RlckZpbGVBbmRSdW4oYXBwLCBmaWxlLCAoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlUGF0aCA9IGdldFBhdGgob3B0aW9ucy5zb3VyY2VQYXRoT3JGaWxlKTtcbiAgICBjb25zdCBzdWJwYXRoID0gb3B0aW9ucy5zdWJwYXRoID8/ICcnO1xuICAgIGxldCBhbGlhcyA9IG9wdGlvbnMuYWxpYXMgPz8gJyc7XG4gICAgY29uc3QgaXNFbWJlZCA9IG9wdGlvbnMuaXNFbWJlZCA/PyAob3B0aW9ucy5vcmlnaW5hbExpbmsgPyB0ZXN0RW1iZWQob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyAhaXNNYXJrZG93bkZpbGUoZmlsZSk7XG4gICAgY29uc3QgaXNXaWtpbGluayA9IG9wdGlvbnMuaXNXaWtpbGluayA/PyAob3B0aW9ucy5vcmlnaW5hbExpbmsgPyB0ZXN0V2lraWxpbmsob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyBzaG91bGRVc2VXaWtpbGlua3MoYXBwKTtcbiAgICBjb25zdCBmb3JjZVJlbGF0aXZlUGF0aCA9IG9wdGlvbnMuZm9yY2VSZWxhdGl2ZVBhdGggPz8gc2hvdWxkVXNlUmVsYXRpdmVMaW5rcyhhcHApO1xuICAgIGNvbnN0IHVzZUxlYWRpbmdEb3QgPSBvcHRpb25zLnVzZUxlYWRpbmdEb3QgPz8gKG9wdGlvbnMub3JpZ2luYWxMaW5rID8gdGVzdExlYWRpbmdEb3Qob3B0aW9ucy5vcmlnaW5hbExpbmspIDogdW5kZWZpbmVkKSA/PyBmYWxzZTtcbiAgICBjb25zdCB1c2VBbmdsZUJyYWNrZXRzID0gb3B0aW9ucy51c2VBbmdsZUJyYWNrZXRzID8/IChvcHRpb25zLm9yaWdpbmFsTGluayA/IHRlc3RBbmdsZUJyYWNrZXRzKG9wdGlvbnMub3JpZ2luYWxMaW5rKSA6IHVuZGVmaW5lZCkgPz8gZmFsc2U7XG5cbiAgICBsZXQgbGlua1RleHQgPSBmaWxlLnBhdGggPT09IHNvdXJjZVBhdGggJiYgc3VicGF0aFxuICAgICAgPyBzdWJwYXRoXG4gICAgICA6IGZvcmNlUmVsYXRpdmVQYXRoXG4gICAgICAgID8gcmVsYXRpdmUoZGlybmFtZShzb3VyY2VQYXRoKSwgaXNXaWtpbGluayA/IHRyaW1NYXJrZG93bkV4dGVuc2lvbihmaWxlKSA6IGZpbGUucGF0aCkgKyBzdWJwYXRoXG4gICAgICAgIDogYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZVRvTGlua3RleHQoZmlsZSwgc291cmNlUGF0aCwgaXNXaWtpbGluaykgKyBzdWJwYXRoO1xuXG4gICAgaWYgKGZvcmNlUmVsYXRpdmVQYXRoICYmIHVzZUxlYWRpbmdEb3QgJiYgIWxpbmtUZXh0LnN0YXJ0c1dpdGgoJy4nKSAmJiAhbGlua1RleHQuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICBsaW5rVGV4dCA9ICcuLycgKyBsaW5rVGV4dDtcbiAgICB9XG5cbiAgICBjb25zdCBlbWJlZFByZWZpeCA9IGlzRW1iZWQgPyAnIScgOiAnJztcblxuICAgIGlmICghaXNXaWtpbGluaykge1xuICAgICAgaWYgKHVzZUFuZ2xlQnJhY2tldHMpIHtcbiAgICAgICAgbGlua1RleHQgPSBgPCR7bGlua1RleHR9PmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5rVGV4dCA9IGxpbmtUZXh0LnJlcGxhY2UoU1BFQ0lBTF9MSU5LX1NZTUJPTFNfUkVHRVhQLCBmdW5jdGlvbiAoc3BlY2lhbExpbmtTeW1ib2wpIHtcbiAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHNwZWNpYWxMaW5rU3ltYm9sKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghYWxpYXMgJiYgKCFpc0VtYmVkIHx8ICFvcHRpb25zLmFsbG93RW1wdHlFbWJlZEFsaWFzKSkge1xuICAgICAgICBhbGlhcyA9ICFvcHRpb25zLmluY2x1ZGVBdHRhY2htZW50RXh0ZW5zaW9uVG9FbWJlZEFsaWFzIHx8IGlzTWFya2Rvd25GaWxlKGZpbGUpID8gZmlsZS5iYXNlbmFtZSA6IGZpbGUubmFtZTtcbiAgICAgIH1cblxuICAgICAgYWxpYXMgPSBhbGlhcy5yZXBsYWNlKFNQRUNJQUxfTUFSS0RPV05fTElOS19TWU1CT0xTX1JFR0VYLCAnXFxcXCQmJyk7XG5cbiAgICAgIHJldHVybiBgJHtlbWJlZFByZWZpeH1bJHthbGlhc31dKCR7bGlua1RleHR9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhbGlhcyAmJiBhbGlhcy50b0xvd2VyQ2FzZSgpID09PSBsaW5rVGV4dC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGxpbmtUZXh0ID0gYWxpYXM7XG4gICAgICAgIGFsaWFzID0gJyc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFsaWFzUGFydCA9IGFsaWFzID8gYHwke2FsaWFzfWAgOiAnJztcbiAgICAgIHJldHVybiBgJHtlbWJlZFByZWZpeH1bWyR7bGlua1RleHR9JHthbGlhc1BhcnR9XV1gO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgbGluayBpbnRvIGl0cyBjb21wb25lbnRzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgbGluayB0byBwYXJzZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTGluayhzdHI6IHN0cmluZyk6IG51bGwgfCBQYXJzZUxpbmtSZXN1bHQge1xuICBpZiAoaXNVcmwoc3RyKSkge1xuICAgIHJldHVybiB7XG4gICAgICBpc0VtYmVkOiBmYWxzZSxcbiAgICAgIGlzRXh0ZXJuYWw6IHRydWUsXG4gICAgICBpc1dpa2lsaW5rOiBmYWxzZSxcbiAgICAgIHVybDogc3RyXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IEVNQkVEX1BSRUZJWCA9ICchJztcbiAgY29uc3QgT1BFTl9BTkdMRV9CUkFDS0VUID0gJzwnO1xuICBjb25zdCBMSU5LX0FMSUFTX1NVRkZJWCA9ICddKCc7XG4gIGNvbnN0IExJTktfU1VGRklYID0gJyknO1xuICBjb25zdCBXSUtJTElOS19ESVZJREVSID0gJ3wnO1xuXG4gIGNvbnN0IGlzRW1iZWQgPSBzdHIuc3RhcnRzV2l0aChFTUJFRF9QUkVGSVgpO1xuICBpZiAoaXNFbWJlZCkge1xuICAgIHN0ciA9IHRyaW1TdGFydChzdHIsIEVNQkVEX1BSRUZJWCk7XG4gIH1cbiAgY29uc3QgcHJvY2Vzc29yID0gcmVtYXJrKCkudXNlKHJlbWFya1BhcnNlKS51c2Uod2lraUxpbmtQbHVnaW4sIHsgYWxpYXNEaXZpZGVyOiBXSUtJTElOS19ESVZJREVSIH0pO1xuICBjb25zdCByb290ID0gcHJvY2Vzc29yLnBhcnNlKHN0cik7XG5cbiAgaWYgKHJvb3QuY2hpbGRyZW4ubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwYXJhZ3JhcGggPSByb290LmNoaWxkcmVuWzBdO1xuXG4gIGlmIChwYXJhZ3JhcGg/LnR5cGUgIT09ICdwYXJhZ3JhcGgnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAocGFyYWdyYXBoLmNoaWxkcmVuLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qgbm9kZSA9IHBhcmFncmFwaC5jaGlsZHJlblswXTtcblxuICBpZiAobm9kZT8ucG9zaXRpb24/LnN0YXJ0Lm9mZnNldCAhPT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5vZGUucG9zaXRpb24uZW5kLm9mZnNldCAhPT0gc3RyLmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3dpdGNoIChub2RlLnR5cGUgYXMgc3RyaW5nKSB7XG4gICAgY2FzZSAnbGluayc6IHtcbiAgICAgIGNvbnN0IGxpbmtOb2RlID0gbm9kZSBhcyBMaW5rO1xuICAgICAgY29uc3QgYWxpYXNOb2RlID0gbGlua05vZGUuY2hpbGRyZW5bMF0gYXMgVGV4dDtcbiAgICAgIGNvbnN0IHJhd1VybCA9IHN0ci5zbGljZSgoYWxpYXNOb2RlLnBvc2l0aW9uPy5lbmQub2Zmc2V0ID8/IDApICsgTElOS19BTElBU19TVUZGSVgubGVuZ3RoLCAobGlua05vZGUucG9zaXRpb24/LmVuZC5vZmZzZXQgPz8gMCkgLSBMSU5LX1NVRkZJWC5sZW5ndGgpO1xuICAgICAgY29uc3QgaGFzQW5nbGVCcmFja2V0cyA9IHN0ci5zdGFydHNXaXRoKE9QRU5fQU5HTEVfQlJBQ0tFVCkgfHwgcmF3VXJsLnN0YXJ0c1dpdGgoT1BFTl9BTkdMRV9CUkFDS0VUKTtcbiAgICAgIGNvbnN0IGlzRXh0ZXJuYWwgPSBpc1VybChsaW5rTm9kZS51cmwpO1xuICAgICAgbGV0IHVybCA9IGxpbmtOb2RlLnVybDtcbiAgICAgIGlmICghaXNFeHRlcm5hbCkge1xuICAgICAgICBpZiAoIWhhc0FuZ2xlQnJhY2tldHMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgVVJMICR7dXJsfWAsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsaWFzOiBhbGlhc05vZGUudmFsdWUsXG4gICAgICAgIGhhc0FuZ2xlQnJhY2tldHMsXG4gICAgICAgIGlzRW1iZWQsXG4gICAgICAgIGlzRXh0ZXJuYWwsXG4gICAgICAgIGlzV2lraWxpbms6IGZhbHNlLFxuICAgICAgICB0aXRsZTogbGlua05vZGUudGl0bGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ3dpa2lMaW5rJzoge1xuICAgICAgY29uc3Qgd2lraUxpbmtOb2RlID0gbm9kZSBhcyB1bmtub3duIGFzIFdpa2lMaW5rTm9kZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFsaWFzOiBzdHIuaW5jbHVkZXMoV0lLSUxJTktfRElWSURFUikgPyB3aWtpTGlua05vZGUuZGF0YS5hbGlhcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNFbWJlZCxcbiAgICAgICAgaXNXaWtpbGluazogdHJ1ZSxcbiAgICAgICAgdXJsOiB3aWtpTGlua05vZGUudmFsdWVcbiAgICAgIH07XG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGFsaWFzIG9mIGEgbGluayBzaG91bGQgYmUgcmVzZXQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgaWYgdGhlIGFsaWFzIHNob3VsZCBiZSByZXNldC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFsaWFzIHNob3VsZCBiZSByZXNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFJlc2V0QWxpYXMob3B0aW9uczogU2hvdWxkUmVzZXRBbGlhc09wdGlvbnMpOiBib29sZWFuIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBkaXNwbGF5VGV4dCxcbiAgICBpc1dpa2lsaW5rLFxuICAgIG90aGVyUGF0aE9yRmlsZXMsXG4gICAgcGF0aE9yRmlsZSxcbiAgICBzb3VyY2VQYXRoT3JGaWxlXG4gIH0gPSBvcHRpb25zO1xuICBpZiAoaXNXaWtpbGluayA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShhcHAsIHBhdGhPckZpbGUpO1xuXG4gIGlmICghZGlzcGxheVRleHQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZVBhdGggPSBnZXRQYXRoKHNvdXJjZVBhdGhPckZpbGUpO1xuICBjb25zdCBzb3VyY2VEaXIgPSBkaXJuYW1lKHNvdXJjZVBhdGgpO1xuXG4gIGNvbnN0IGFsaWFzZXNUb1Jlc2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBwYXRoT3JGaWxlIG9mIFtmaWxlLnBhdGgsIC4uLm90aGVyUGF0aE9yRmlsZXNdKSB7XG4gICAgaWYgKCFwYXRoT3JGaWxlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gZ2V0UGF0aChwYXRoT3JGaWxlKTtcbiAgICBhbGlhc2VzVG9SZXNldC5hZGQocGF0aCk7XG4gICAgYWxpYXNlc1RvUmVzZXQuYWRkKGJhc2VuYW1lKHBhdGgpKTtcbiAgICBhbGlhc2VzVG9SZXNldC5hZGQocmVsYXRpdmUoc291cmNlRGlyLCBwYXRoKSk7XG4gIH1cblxuICBhbGlhc2VzVG9SZXNldC5hZGQoYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZVRvTGlua3RleHQoZmlsZSwgc291cmNlUGF0aCwgZmFsc2UpKTtcblxuICBjb25zdCBjbGVhbkRpc3BsYXlUZXh0ID0gbm9ybWFsaXplUGF0aChkaXNwbGF5VGV4dC5zcGxpdCgnID4gJylbMF0gPz8gJycpLnJlcGxhY2UoL15cXC5cXC8vLCAnJykudG9Mb3dlckNhc2UoKTtcblxuICBmb3IgKGNvbnN0IGFsaWFzIG9mIGFsaWFzZXNUb1Jlc2V0KSB7XG4gICAgaWYgKGFsaWFzLnRvTG93ZXJDYXNlKCkgPT09IGNsZWFuRGlzcGxheVRleHQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoYWxpYXMpO1xuICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShhbGlhcywgZXh0bmFtZShhbGlhcykpO1xuICAgIGlmIChqb2luKGRpciwgYmFzZSkudG9Mb3dlckNhc2UoKSA9PT0gY2xlYW5EaXNwbGF5VGV4dCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFNwbGl0cyBhIGxpbmsgaW50byBpdHMgbGluayBwYXRoIGFuZCBzdWJwYXRoLlxuICpcbiAqIEBwYXJhbSBsaW5rIC0gVGhlIGxpbmsgdG8gc3BsaXQuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGluayBwYXRoIGFuZCBzdWJwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRTdWJwYXRoKGxpbms6IHN0cmluZyk6IFNwbGl0U3VicGF0aFJlc3VsdCB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlTGlua3RleHQobm9ybWFsaXplKGxpbmspKTtcbiAgcmV0dXJuIHtcbiAgICBsaW5rUGF0aDogcGFyc2VkLnBhdGgsXG4gICAgc3VicGF0aDogcGFyc2VkLnN1YnBhdGhcbiAgfTtcbn1cblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgbGluayB1c2VzIGFuZ2xlIGJyYWNrZXRzLCBwb3NzaWJseSBlbWJlZDpcbiAqIGBbdGl0bGVdKDxsaW5rPilgLCBgIVt0aXRsZV0oPGxpbms+KWAuXG4gKlxuICogQHBhcmFtIGxpbmsgLSBMaW5rIHRvIHRlc3RcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGxpbmsgdXNlcyBhbmdsZSBicmFja2V0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGVzdEFuZ2xlQnJhY2tldHMobGluazogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcnNlTGlua1Jlc3VsdCA9IHBhcnNlTGluayhsaW5rKTtcbiAgcmV0dXJuIHBhcnNlTGlua1Jlc3VsdD8uaGFzQW5nbGVCcmFja2V0cyA/PyBmYWxzZTtcbn1cblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgbGluayBpcyBhbiBlbWJlZCBsaW5rOlxuICogYCFbW2xpbmtdXWAsIGAhW3RpdGxlXShsaW5rKWAuXG4gKlxuICogQHBhcmFtIGxpbmsgLSBMaW5rIHRvIHRlc3RcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGxpbmsgaXMgYW4gZW1iZWQgbGlua1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGVzdEVtYmVkKGxpbms6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZUxpbmtSZXN1bHQgPSBwYXJzZUxpbmsobGluayk7XG4gIHJldHVybiBwYXJzZUxpbmtSZXN1bHQ/LmlzRW1iZWQgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogVGVzdHMgd2hldGhlciBhIGxpbmsgaGFzIGEgbGVhZGluZyBkb3QsIHBvc3NpYmx5IGVtYmVkOlxuICogYFtbLi9saW5rXV1gLCBgW3RpdGxlXSguL2xpbmspYCwgYFt0aXRsZV0oPC4vbGluaz4pYCxcbiAqIGAhW1suL2xpbmtdXWAsIGAhW3RpdGxlXSguL2xpbmspYCwgYCFbdGl0bGVdKDwuL2xpbms+KWAuXG4gKlxuICogQHBhcmFtIGxpbmsgLSBMaW5rIHRvIHRlc3RcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGxpbmsgaGFzIGEgbGVhZGluZyBkb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RMZWFkaW5nRG90KGxpbms6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZUxpbmtSZXN1bHQgPSBwYXJzZUxpbmsobGluayk7XG4gIHJldHVybiBwYXJzZUxpbmtSZXN1bHQ/LnVybC5zdGFydHNXaXRoKCcuLycpID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIFRlc3RzIHdoZXRoZXIgYSBsaW5rIGlzIGEgd2lraWxpbmssIHBvc3NpYmx5IGVtYmVkOlxuICogYFtbbGlua11dYCwgYCFbW2xpbmtdXWAuXG4gKlxuICogQHBhcmFtIGxpbmsgLSBMaW5rIHRvIHRlc3RcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGxpbmsgaXMgYSB3aWtpbGlua1xuICovXG5leHBvcnQgZnVuY3Rpb24gdGVzdFdpa2lsaW5rKGxpbms6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZUxpbmtSZXN1bHQgPSBwYXJzZUxpbmsobGluayk7XG4gIHJldHVybiBwYXJzZUxpbmtSZXN1bHQ/LmlzV2lraWxpbmsgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogVXBkYXRlcyBhIGxpbmsgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdXBkYXRpbmcgdGhlIGxpbmsuXG4gKiBAcmV0dXJucyBUaGUgdXBkYXRlZCBsaW5rLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlTGluayhvcHRpb25zOiBVcGRhdGVMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgZm9yY2VNYXJrZG93bkxpbmtzLFxuICAgIGxpbmssXG4gICAgb2xkUGF0aE9yRmlsZSxcbiAgICBwYXRoT3JGaWxlLFxuICAgIHJlbmFtZU1hcCxcbiAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzLFxuICAgIHNvdXJjZVBhdGhPckZpbGVcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICghcGF0aE9yRmlsZSkge1xuICAgIHJldHVybiBsaW5rLm9yaWdpbmFsO1xuICB9XG4gIGxldCBmaWxlID0gZ2V0RmlsZShhcHAsIHBhdGhPckZpbGUpO1xuICBjb25zdCBvbGRQYXRoID0gZ2V0UGF0aChvbGRQYXRoT3JGaWxlID8/IHNvdXJjZVBhdGhPckZpbGUpO1xuICBjb25zdCBpc1dpa2lsaW5rID0gdGVzdFdpa2lsaW5rKGxpbmsub3JpZ2luYWwpICYmIGZvcmNlTWFya2Rvd25MaW5rcyAhPT0gdHJ1ZTtcbiAgY29uc3QgeyBzdWJwYXRoIH0gPSBzcGxpdFN1YnBhdGgobGluay5saW5rKTtcblxuICBjb25zdCBuZXdQYXRoID0gcmVuYW1lTWFwPy5nZXQoZmlsZS5wYXRoKTtcbiAgbGV0IGFsaWFzID0gc2hvdWxkUmVzZXRBbGlhcyh7XG4gICAgYXBwLFxuICAgIGRpc3BsYXlUZXh0OiBsaW5rLmRpc3BsYXlUZXh0LFxuICAgIGlzV2lraWxpbmssXG4gICAgb3RoZXJQYXRoT3JGaWxlczogW29sZFBhdGgsIG5ld1BhdGhdLFxuICAgIHBhdGhPckZpbGUsXG4gICAgc291cmNlUGF0aE9yRmlsZVxuICB9KVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiBsaW5rLmRpc3BsYXlUZXh0O1xuXG4gIGlmIChzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzID8/IHRydWUpIHtcbiAgICBpZiAoYWxpYXM/LnRvTG93ZXJDYXNlKCkgPT09IGJhc2VuYW1lKG9sZFBhdGgsIGV4dG5hbWUob2xkUGF0aCkpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGFsaWFzID0gZmlsZS5iYXNlbmFtZTtcbiAgICB9IGVsc2UgaWYgKGFsaWFzPy50b0xvd2VyQ2FzZSgpID09PSBiYXNlbmFtZShvbGRQYXRoKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBhbGlhcyA9IGZpbGUubmFtZTtcbiAgICB9XG4gIH1cblxuICBpZiAobmV3UGF0aCkge1xuICAgIGZpbGUgPSBnZXRGaWxlKGFwcCwgbmV3UGF0aCwgdHJ1ZSk7XG4gIH1cblxuICBpZiAoaXNDYW52YXNGaWxlKHNvdXJjZVBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuIGZpbGUucGF0aCArIHN1YnBhdGg7XG4gIH1cblxuICBjb25zdCBuZXdMaW5rID0gZ2VuZXJhdGVNYXJrZG93bkxpbmsoe1xuICAgIGFsaWFzLFxuICAgIGFwcCxcbiAgICBpc1dpa2lsaW5rOiBmb3JjZU1hcmtkb3duTGlua3MgPyBmYWxzZSA6IHVuZGVmaW5lZCxcbiAgICBvcmlnaW5hbExpbms6IGxpbmsub3JpZ2luYWwsXG4gICAgcGF0aE9yRmlsZTogZmlsZSxcbiAgICBzb3VyY2VQYXRoT3JGaWxlLFxuICAgIHN1YnBhdGhcbiAgfSk7XG4gIHJldHVybiBuZXdMaW5rO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIGxpbmtzIGluIGEgZmlsZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB1cGRhdGluZyB0aGUgbGlua3MuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBsaW5rcyBhcmUgdXBkYXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUxpbmtzSW5GaWxlKG9wdGlvbnM6IFVwZGF0ZUxpbmtzSW5GaWxlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIGVtYmVkT25seUxpbmtzLFxuICAgIGZvcmNlTWFya2Rvd25MaW5rcyxcbiAgICBvbGRQYXRoT3JGaWxlLFxuICAgIHBhdGhPckZpbGUsXG4gICAgcmVuYW1lTWFwLFxuICAgIHNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKGlzQ2FudmFzRmlsZShwYXRoT3JGaWxlKSAmJiAhYXBwLmludGVybmFsUGx1Z2lucy5nZXRFbmFibGVkUGx1Z2luQnlJZCgnY2FudmFzJykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBlZGl0TGlua3MoYXBwLCBwYXRoT3JGaWxlLCAobGluaykgPT4ge1xuICAgIGNvbnN0IGlzRW1iZWRMaW5rID0gdGVzdEVtYmVkKGxpbmsub3JpZ2luYWwpO1xuICAgIGlmIChlbWJlZE9ubHlMaW5rcyAhPT0gdW5kZWZpbmVkICYmIGVtYmVkT25seUxpbmtzICE9PSBpc0VtYmVkTGluaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gY29udmVydExpbmsoe1xuICAgICAgYXBwLFxuICAgICAgZm9yY2VNYXJrZG93bkxpbmtzLFxuICAgICAgbGluayxcbiAgICAgIG9sZFBhdGhPckZpbGUsXG4gICAgICByZW5hbWVNYXAsXG4gICAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzLFxuICAgICAgc291cmNlUGF0aE9yRmlsZTogcGF0aE9yRmlsZVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFzQkEsc0JBR087QUFDUCxvQkFBdUI7QUFDdkIsMEJBQXdCO0FBQ3hCLDhCQUErQjtBQVMvQixvQkFBdUI7QUFDdkIsa0JBTU87QUFDUCxvQkFHTztBQUNQLGlCQUFzQjtBQUN0Qix3QkFBaUM7QUFDakMsd0JBTU87QUFDUCwyQkFLTztBQUNQLDhCQUdPO0FBQ1AsdUJBQXNDO0FBcEV0QyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBc0VBLE1BQU0sOEJBQThCO0FBS3BDLE1BQU0sc0NBQXNDO0FBNFRyQyxTQUFTLFlBQVksU0FBcUM7QUFDL0QsU0FBTyxXQUFXO0FBQUEsSUFDaEIsS0FBSyxRQUFRO0FBQUEsSUFDYixvQkFBb0IsUUFBUTtBQUFBLElBQzVCLE1BQU0sUUFBUTtBQUFBLElBQ2QsZUFBZSxRQUFRO0FBQUEsSUFDdkIsWUFBWSxnQkFBZ0IsUUFBUSxLQUFLLFFBQVEsTUFBTSxRQUFRLGdCQUFnQjtBQUFBLElBQy9FLFdBQVcsUUFBUTtBQUFBLElBQ25CLDJCQUEyQixRQUFRO0FBQUEsSUFDbkMsa0JBQWtCLFFBQVE7QUFBQSxFQUM1QixDQUFDO0FBQ0g7QUFZQSxlQUFzQixjQUFjLEtBQVUsWUFBd0IsZUFBaUUsZUFBc0MsQ0FBQyxHQUFrQjtBQUM5TCxRQUFNLFlBQVksVUFBTSw4Q0FBd0IsS0FBSyxZQUFZLFlBQVk7QUFDN0UsYUFBVyxvQkFBb0IsVUFBVSxLQUFLLEdBQUc7QUFDL0Ms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QUFLO0FBQUEsRUFDZDtBQUNBLE1BQUksV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFDbEMsUUFBTSxjQUFVLDJCQUFRLGlCQUFpQixnQkFBZ0I7QUFDekQsUUFBTSxhQUFhLGFBQWEsS0FBSyxRQUFRLEtBQUssdUJBQXVCO0FBQ3pFLFFBQU0sRUFBRSxRQUFRLElBQUksYUFBYSxLQUFLLElBQUk7QUFFMUMsUUFBTSxVQUFVLFdBQVcsSUFBSSxLQUFLLElBQUk7QUFDeEMsTUFBSSxRQUFRLGlCQUFpQjtBQUFBLElBQzNCO0FBQUEsSUFDQSxhQUFhLEtBQUs7QUFBQSxJQUNsQjtBQUFBLElBQ0Esa0JBQWtCLENBQUMsU0FBUyxPQUFPO0FBQUEsSUFDbkM7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDLElBQ0csU0FDQSxLQUFLO0FBRVQsTUFBSSw2QkFBNkIsTUFBTTtBQUNyQyxRQUFJLE9BQU8sWUFBWSxVQUFNLHNCQUFTLGFBQVMscUJBQVEsT0FBTyxDQUFDLEVBQUUsWUFBWSxHQUFHO0FBQzlFLGNBQVEsS0FBSztBQUFBLElBQ2YsV0FBVyxPQUFPLFlBQVksVUFBTSxzQkFBUyxPQUFPLEVBQUUsWUFBWSxHQUFHO0FBQ25FLGNBQVEsS0FBSztBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBRUEsTUFBSSxTQUFTO0FBQ1gsZUFBTywyQkFBUSxLQUFLLFNBQVMsSUFBSTtBQUFBLEVBQ25DO0FBRUEsVUFBSSxnQ0FBYSxnQkFBZ0IsR0FBRztBQUNsQyxXQUFPLEtBQUssT0FBTztBQUFBLEVBQ3JCO0FBRUEsUUFBTSxVQUFVLHFCQUFxQjtBQUFBLElBQ25DO0FBQUEsSUFDQTtBQUFBLElBQ0EsWUFBWSxxQkFBcUIsUUFBUTtBQUFBLElBQ3pDLGNBQWMsS0FBSztBQUFBLElBQ25CLFlBQVk7QUFBQSxJQUNaO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNELFNBQU87QUFDVDtBQVFBLGVBQXNCLGtCQUFrQixTQUFrRDtBQUN4RixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFVBQUksZ0NBQWEsVUFBVSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IscUJBQXFCLFFBQVEsR0FBRztBQUNuRjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFVBQVUsS0FBSyxZQUFZLENBQUMsU0FBUztBQUN6QyxVQUFNLGNBQWMsVUFBVSxLQUFLLFFBQVE7QUFDM0MsUUFBSSxtQkFBbUIsVUFBYSxtQkFBbUIsYUFBYTtBQUNsRTtBQUFBLElBQ0Y7QUFDQSxXQUFPLFlBQVk7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQSxrQkFBa0I7QUFBQSxJQUNwQixDQUFDO0FBQUEsRUFDSCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbInJlbWFya1BhcnNlIiwgInBhdGhPckZpbGUiXQp9Cg==
@@ -33,7 +33,7 @@ __export(MetadataCache_exports, {
33
33
  getBacklinksForFileSafe: () => getBacklinksForFileSafe,
34
34
  getBacklinksMap: () => getBacklinksMap,
35
35
  getCacheSafe: () => getCacheSafe,
36
- getFrontMatterSafe: () => getFrontMatterSafe,
36
+ getFrontmatterSafe: () => getFrontmatterSafe,
37
37
  registerFile: () => registerFile,
38
38
  tempRegisterFileAndRun: () => tempRegisterFileAndRun
39
39
  });
@@ -44,7 +44,7 @@ var import_Async = require('../Async.cjs');
44
44
  var import_Function = require('../Function.cjs');
45
45
  var import_Object = require('../Object.cjs');
46
46
  var import_FileSystem = require('./FileSystem.cjs');
47
- var import_FrontMatter = require('./FrontMatter.cjs');
47
+ var import_Frontmatter = require('./Frontmatter.cjs');
48
48
  var import_Reference = require('./Reference.cjs');
49
49
  var __process = globalThis["process"] ?? {
50
50
  "cwd": () => "/",
@@ -115,7 +115,7 @@ async function getBacklinksForFileSafe(app, pathOrFile, retryOptions = {}) {
115
115
  }
116
116
  await saveNote(app, note);
117
117
  const content = await app.vault.read(note);
118
- const frontMatter = (0, import_FrontMatter.parseFrontMatter)(content);
118
+ const frontmatter = (0, import_Frontmatter.parseFrontmatter)(content);
119
119
  const links = backlinks.get(notePath);
120
120
  if (!links) {
121
121
  return false;
@@ -125,7 +125,7 @@ async function getBacklinksForFileSafe(app, pathOrFile, retryOptions = {}) {
125
125
  if ((0, import_implementations.isReferenceCache)(link)) {
126
126
  actualLink = content.slice(link.position.start.offset, link.position.end.offset);
127
127
  } else if ((0, import_implementations.isFrontmatterLinkCache)(link)) {
128
- const linkValue = (0, import_Object.getNestedPropertyValue)(frontMatter, link.key);
128
+ const linkValue = (0, import_Object.getNestedPropertyValue)(frontmatter, link.key);
129
129
  if (typeof linkValue !== "string") {
130
130
  return false;
131
131
  }
@@ -193,7 +193,7 @@ async function getCacheSafe(app, fileOrPath, retryOptions = {}) {
193
193
  }, overriddenOptions);
194
194
  return cache;
195
195
  }
196
- async function getFrontMatterSafe(app, pathOrFile) {
196
+ async function getFrontmatterSafe(app, pathOrFile) {
197
197
  const cache = await getCacheSafe(app, pathOrFile);
198
198
  return cache?.frontmatter ?? {};
199
199
  }
@@ -247,8 +247,8 @@ async function saveNote(app, pathOrFile) {
247
247
  getBacklinksForFileSafe,
248
248
  getBacklinksMap,
249
249
  getCacheSafe,
250
- getFrontMatterSafe,
250
+ getFrontmatterSafe,
251
251
  registerFile,
252
252
  tempRegisterFileAndRun
253
253
  });
254
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTWV0YWRhdGFDYWNoZVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgbWV0YWRhdGEgY2FjaGUgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENhY2hlZE1ldGFkYXRhLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzJztcblxuaW1wb3J0IHsgTWFya2Rvd25WaWV3IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZSxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udE1hdHRlciB9IGZyb20gJy4vRnJvbnRNYXR0ZXIudHMnO1xuXG5pbXBvcnQgeyByZXRyeVdpdGhUaW1lb3V0IH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldE5lc3RlZFByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi9PYmplY3QudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRQYXRoLFxuICBpc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyBwYXJzZUZyb250TWF0dGVyIH0gZnJvbSAnLi9Gcm9udE1hdHRlci50cyc7XG5pbXBvcnQgeyBzb3J0UmVmZXJlbmNlcyB9IGZyb20gJy4vUmVmZXJlbmNlLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUgZ2V0QmFja2xpbmtzRm9yRmlsZSBtZXRob2QgdGhhdCBwcm92aWRlcyBhIHNhZmUgb3ZlcmxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgc2FmZWx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBkaWN0aW9uYXJ5IG9mIGJhY2tsaW5rcy5cbiAgICovXG4gIHNhZmUocGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4+O1xufVxuXG4vKipcbiAqIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkgZm9yIGFsbCBmaWxlcy5cbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBbcGF0aCwgY2FjaGVdIG9mIE9iamVjdC5lbnRyaWVzKGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZSkpIHtcbiAgICBpZiAoIWNhY2hlLmhhc2gpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChhcHAubWV0YWRhdGFDYWNoZS5tZXRhZGF0YUNhY2hlW2NhY2hlLmhhc2hdKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlua3MgZnJvbSB0aGUgcHJvdmlkZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIGNhY2hlIC0gVGhlIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZmVyZW5jZSBjYWNoZXMgcmVwcmVzZW50aW5nIHRoZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbExpbmtzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSk6IFJlZmVyZW5jZVtdIHtcbiAgbGV0IGxpbmtzOiBSZWZlcmVuY2VbXSA9IFtdO1xuXG4gIGlmIChjYWNoZS5saW5rcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUubGlua3MpO1xuICB9XG5cbiAgaWYgKGNhY2hlLmVtYmVkcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUuZW1iZWRzKTtcbiAgfVxuXG4gIGlmIChjYWNoZS5mcm9udG1hdHRlckxpbmtzKSB7XG4gICAgbGlua3MucHVzaCguLi5jYWNoZS5mcm9udG1hdHRlckxpbmtzKTtcbiAgfVxuXG4gIHNvcnRSZWZlcmVuY2VzKGxpbmtzKTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgbGlua3MgPSBsaW5rcy5maWx0ZXIoKGxpbmssIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0xpbmsgPSBsaW5rc1tpbmRleCAtIDFdO1xuICAgIGlmICghcHJldmlvdXNMaW5rKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSAmJiBpc1JlZmVyZW5jZUNhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAhPT0gcHJldmlvdXNMaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShsaW5rKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLmtleSAhPT0gcHJldmlvdXNMaW5rLmtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmtzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgb3IgcGF0aC5cbiAqIE5PVEU6IFRoZSBmaWxlIG1heSBiZSBub24tZXhpc3RlbnQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgYmFja2xpbmtzIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSwgdHJ1ZSk7XG4gIHJldHVybiB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuKGFwcCwgZmlsZSwgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0QmFja2xpbmtzRm9yRmlsZShmaWxlKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBzYWZlbHkuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IGRpY3Rpb25hcnkgb2YgYmFja2xpbmtzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPEN1c3RvbUFycmF5RGljdDxSZWZlcmVuY2U+PiB7XG4gIGNvbnN0IHNhZmVPdmVybG9hZCA9IChhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlIGFzIFBhcnRpYWw8R2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyPikuc2FmZTtcbiAgaWYgKHNhZmVPdmVybG9hZCkge1xuICAgIHJldHVybiBzYWZlT3ZlcmxvYWQocGF0aE9yRmlsZSk7XG4gIH1cbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgbGV0IGJhY2tsaW5rczogQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4gPSBudWxsIGFzIHVua25vd24gYXMgQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT47XG4gIGF3YWl0IHJldHJ5V2l0aFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gICAgYXdhaXQgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5KGFwcCk7XG4gICAgYmFja2xpbmtzID0gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHAsIGZpbGUpO1xuICAgIGZvciAoY29uc3Qgbm90ZVBhdGggb2YgYmFja2xpbmtzLmtleXMoKSkge1xuICAgICAgY29uc3Qgbm90ZSA9IGdldEZpbGVPck51bGwoYXBwLCBub3RlUGF0aCk7XG4gICAgICBpZiAoIW5vdGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzYXZlTm90ZShhcHAsIG5vdGUpO1xuXG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LnJlYWQobm90ZSk7XG4gICAgICBjb25zdCBmcm9udE1hdHRlciA9IHBhcnNlRnJvbnRNYXR0ZXIoY29udGVudCk7XG4gICAgICBjb25zdCBsaW5rcyA9IGJhY2tsaW5rcy5nZXQobm90ZVBhdGgpO1xuICAgICAgaWYgKCFsaW5rcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xuICAgICAgICBsZXQgYWN0dWFsTGluazogc3RyaW5nO1xuICAgICAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSkge1xuICAgICAgICAgIGFjdHVhbExpbmsgPSBjb250ZW50LnNsaWNlKGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0LCBsaW5rLnBvc2l0aW9uLmVuZC5vZmZzZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUobGluaykpIHtcbiAgICAgICAgICBjb25zdCBsaW5rVmFsdWUgPSBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250TWF0dGVyLCBsaW5rLmtleSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBsaW5rVmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdHVhbExpbmsgPSBsaW5rVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdHVhbExpbmsgIT09IGxpbmsub3JpZ2luYWwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xuXG4gIHJldHVybiBiYWNrbGlua3M7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmFja2xpbmtzIG1hcCBmb3IgdGhlIHNwZWNpZmllZCBmaWxlcy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlcyAtIFRoZSBwYXRocyBvciBmaWxlcyB0byBnZXQgdGhlIGJhY2tsaW5rcyBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgbWFwIG9mIGJhY2tsaW5rcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJhY2tsaW5rc01hcChhcHA6IEFwcCwgcGF0aE9yRmlsZXM6IFBhdGhPckZpbGVbXSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8TWFwPHN0cmluZywgUmVmZXJlbmNlW10+PiB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZWZlcmVuY2VbXT4oKTtcbiAgZm9yIChjb25zdCBwYXRoT3JGaWxlIG9mIHBhdGhPckZpbGVzKSB7XG4gICAgY29uc3QgY3VzdG9tQXJyYXlEaWN0ID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwLCBwYXRoT3JGaWxlLCByZXRyeU9wdGlvbnMpO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBjdXN0b21BcnJheURpY3Qua2V5cygpKSB7XG4gICAgICBjb25zdCBtYXBMaW5rcyA9IG1hcC5nZXQocGF0aCkgPz8gW107XG4gICAgICBjb25zdCBwYXRoTGlua3MgPSBjdXN0b21BcnJheURpY3QuZ2V0KHBhdGgpID8/IFtdO1xuICAgICAgbWFwTGlua3MucHVzaCguLi5wYXRoTGlua3MpO1xuICAgICAgbWFwLnNldChwYXRoLCBtYXBMaW5rcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGVPclBhdGggLSBUaGUgZmlsZSBvciBwYXRoIHRvIHJldHJpZXZlIHRoZSBtZXRhZGF0YSBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucyBmb3IgdGhlIHJldHJpZXZhbCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUsIG9yIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlU2FmZShhcHA6IEFwcCwgZmlsZU9yUGF0aDogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q2FjaGVkTWV0YWRhdGEgfCBudWxsPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG4gIGxldCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcblxuICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGZpbGVPclBhdGgpO1xuXG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgY2FjaGUgPSBudWxsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBmaWxlKTtcblxuICAgIGNvbnN0IGZpbGVJbmZvID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUluZm8oZmlsZS5wYXRoKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuc3RhdChmaWxlLnBhdGgpO1xuXG4gICAgaWYgKCFmaWxlSW5mbykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXN0YXQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgc3RhdCBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGUuc3RhdC5tdGltZSA8IHN0YXQubXRpbWUpIHtcbiAgICAgIGFwcC52YXVsdC5vbkNoYW5nZSgnbW9kaWZpZWQnLCBmaWxlLnBhdGgsIHVuZGVmaW5lZCwgc3RhdCk7XG4gICAgICBjb25zb2xlLmRlYnVnKGBDYWNoZWQgdGltZXN0YW1wIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGUuc3RhdC5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBzeXN0ZW0gbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCAke25ldyBEYXRlKHN0YXQubXRpbWUpLnRvU3RyaW5nKCl9YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChmaWxlSW5mby5tdGltZSA8IHN0YXQubXRpbWUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgY2FjaGUgaW5mbyBmb3IgJHtmaWxlLnBhdGh9IGlzIGZyb20gJHtuZXcgRGF0ZShmaWxlSW5mby5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBtb2RpZmljYXRpb24gdGltZXN0YW1wICR7bmV3IERhdGUoc3RhdC5tdGltZSkudG9TdHJpbmcoKX1gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XG4gICAgICBpZiAoIWNhY2hlKSB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgY2FjaGUgZm9yICR7ZmlsZS5wYXRofSBpcyBtaXNzaW5nYCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xuXG4gIHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZyb250IG1hdHRlciBmcm9tIHRoZSBtZXRhZGF0YSBjYWNoZSBzYWZlbHkuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udE1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byByZXRyaWV2ZSB0aGUgZnJvbnQgbWF0dGVyIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tYmluZWQgZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RnJvbnRNYXR0ZXJTYWZlPEN1c3RvbUZyb250TWF0dGVyID0gdW5rbm93bj4oYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPENvbWJpbmVkRnJvbnRNYXR0ZXI8Q3VzdG9tRnJvbnRNYXR0ZXI+PiB7XG4gIGNvbnN0IGNhY2hlID0gYXdhaXQgZ2V0Q2FjaGVTYWZlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIHJldHVybiAoY2FjaGU/LmZyb250bWF0dGVyID8/IHt9KSBhcyBDb21iaW5lZEZyb250TWF0dGVyPEN1c3RvbUZyb250TWF0dGVyPjtcbn1cblxuLyoqKlxuICogUmVnaXN0ZXJzIGEgZmlsZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byByZWdpc3Rlci5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB1bnJlZ2lzdGVycyB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRmlsZShhcHA6IEFwcCwgZmlsZTogVEFic3RyYWN0RmlsZSk6ICgpID0+IHZvaWQge1xuICBpZiAoIWZpbGUuZGVsZXRlZCkge1xuICAgIHJldHVybiBub29wO1xuICB9XG5cbiAgY29uc3QgZGVsZXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBkZWxldGVkRmlsZTogVEFic3RyYWN0RmlsZSA9IGZpbGU7XG5cbiAgd2hpbGUgKGRlbGV0ZWRGaWxlLmRlbGV0ZWQpIHtcbiAgICBkZWxldGVkUGF0aHMucHVzaChkZWxldGVkRmlsZS5wYXRoKTtcbiAgICBhcHAudmF1bHQuZmlsZU1hcFtkZWxldGVkRmlsZS5wYXRoXSA9IGRlbGV0ZWRGaWxlO1xuICAgIGRlbGV0ZWRGaWxlID0gZGVsZXRlZEZpbGUucGFyZW50ID8/IGdldEZvbGRlcihhcHAsIHBhcmVudEZvbGRlclBhdGgoZGVsZXRlZEZpbGUucGF0aCksIHRydWUpO1xuICB9XG5cbiAgaWYgKGlzRmlsZShmaWxlKSkge1xuICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAuYWRkKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgfVxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGRlbGV0ZWRQYXRocykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1keW5hbWljLWRlbGV0ZVxuICAgICAgZGVsZXRlIGFwcC52YXVsdC5maWxlTWFwW3BhdGhdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoZmlsZSkpIHtcbiAgICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAucmVtb3ZlKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVGVtcG9yYXJpbHkgcmVnaXN0ZXJzIGEgZmlsZSBhbmQgcnVucyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byB0ZW1wb3JhcmlseSByZWdpc3Rlci5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBydW4uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBSZWdpc3RlckZpbGVBbmRSdW48VD4oYXBwOiBBcHAsIGZpbGU6IFRBYnN0cmFjdEZpbGUsIGZuOiAoKSA9PiBUKTogVCB7XG4gIGNvbnN0IHVucmVnaXN0ZXIgPSByZWdpc3RlckZpbGUoYXBwLCBmaWxlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGZpbmFsbHkge1xuICAgIHVucmVnaXN0ZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBzcGVjaWZpZWQgbm90ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgbm90ZSB0byBiZSBzYXZlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG5vdGUgaXMgc2F2ZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVOb3RlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwYXRoID0gZ2V0UGF0aChwYXRoT3JGaWxlKTtcblxuICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoJ21hcmtkb3duJykpIHtcbiAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICBhd2FpdCBsZWFmLnZpZXcuc2F2ZSgpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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YTtBQUN0RCxlQUFPO0FBQUEsTUFDVCxPQUFPO0FBQ0wsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLGlCQUFpQjtBQUVwQixTQUFPO0FBQ1Q7QUFVQSxlQUFzQixtQkFBZ0QsS0FBVSxZQUF5RTtBQUN2SixRQUFNLFFBQVEsTUFBTSxhQUFhLEtBQUssVUFBVTtBQUNoRCxTQUFRLE9BQU8sZUFBZSxDQUFDO0FBQ2pDO0FBU08sU0FBUyxhQUFhLEtBQVUsTUFBaUM7QUFDdEUsTUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBeUIsQ0FBQztBQUVoQyxNQUFJLGNBQTZCO0FBRWpDLFNBQU8sWUFBWSxTQUFTO0FBQzFCLGlCQUFhLEtBQUssWUFBWSxJQUFJO0FBQ2xDLFFBQUksTUFBTSxRQUFRLFlBQVksSUFBSSxJQUFJO0FBQ3RDLGtCQUFjLFlBQVksY0FBVSw2QkFBVSxTQUFLLHlDQUFpQixZQUFZLElBQUksR0FBRyxJQUFJO0FBQUEsRUFDN0Y7QUFFQSxVQUFJLDBCQUFPLElBQUksR0FBRztBQUNoQixRQUFJLGNBQWMsaUJBQWlCLElBQUksS0FBSyxLQUFLLFlBQVksR0FBRyxJQUFJO0FBQUEsRUFDdEU7QUFFQSxTQUFPLE1BQU07QUFDWCxlQUFXLFFBQVEsY0FBYztBQUUvQixhQUFPLElBQUksTUFBTSxRQUFRLElBQUk7QUFBQSxJQUMvQjtBQUVBLFlBQUksMEJBQU8sSUFBSSxHQUFHO0FBQ2hCLFVBQUksY0FBYyxpQkFBaUIsT0FBTyxLQUFLLEtBQUssWUFBWSxHQUFHLElBQUk7QUFBQSxJQUN6RTtBQUFBLEVBQ0Y7QUFDRjtBQVVPLFNBQVMsdUJBQTBCLEtBQVUsTUFBcUIsSUFBZ0I7QUFDdkYsUUFBTSxhQUFhLGFBQWEsS0FBSyxJQUFJO0FBRXpDLE1BQUk7QUFDRixXQUFPLEdBQUc7QUFBQSxFQUNaLFVBQUU7QUFDQSxlQUFXO0FBQUEsRUFDYjtBQUNGO0FBU0EsZUFBZSxTQUFTLEtBQVUsWUFBdUM7QUFDdkUsTUFBSSxLQUFDLGtDQUFlLFVBQVUsR0FBRztBQUMvQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFdBQU8sMkJBQVEsVUFBVTtBQUUvQixhQUFXLFFBQVEsSUFBSSxVQUFVLGdCQUFnQixVQUFVLEdBQUc7QUFDNUQsUUFBSSxLQUFLLGdCQUFnQixnQ0FBZ0IsS0FBSyxLQUFLLE1BQU0sU0FBUyxNQUFNO0FBQ3RFLFlBQU0sS0FBSyxLQUFLLEtBQUs7QUFBQSxJQUN2QjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
254
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTWV0YWRhdGFDYWNoZVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgbWV0YWRhdGEgY2FjaGUgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENhY2hlZE1ldGFkYXRhLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzJztcblxuaW1wb3J0IHsgTWFya2Rvd25WaWV3IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZSxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuXG5pbXBvcnQgeyByZXRyeVdpdGhUaW1lb3V0IH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldE5lc3RlZFByb3BlcnR5VmFsdWUgfSBmcm9tICcuLi9PYmplY3QudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRQYXRoLFxuICBpc0ZpbGUsXG4gIGlzTWFya2Rvd25GaWxlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgeyBwYXJzZUZyb250bWF0dGVyIH0gZnJvbSAnLi9Gcm9udG1hdHRlci50cyc7XG5pbXBvcnQgeyBzb3J0UmVmZXJlbmNlcyB9IGZyb20gJy4vUmVmZXJlbmNlLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUgZ2V0QmFja2xpbmtzRm9yRmlsZSBtZXRob2QgdGhhdCBwcm92aWRlcyBhIHNhZmUgb3ZlcmxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgc2FmZWx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBkaWN0aW9uYXJ5IG9mIGJhY2tsaW5rcy5cbiAgICovXG4gIHNhZmUocGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4+O1xufVxuXG4vKipcbiAqIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkgZm9yIGFsbCBmaWxlcy5cbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBbcGF0aCwgY2FjaGVdIG9mIE9iamVjdC5lbnRyaWVzKGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZSkpIHtcbiAgICBpZiAoIWNhY2hlLmhhc2gpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChhcHAubWV0YWRhdGFDYWNoZS5tZXRhZGF0YUNhY2hlW2NhY2hlLmhhc2hdKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlua3MgZnJvbSB0aGUgcHJvdmlkZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIGNhY2hlIC0gVGhlIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZmVyZW5jZSBjYWNoZXMgcmVwcmVzZW50aW5nIHRoZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbExpbmtzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSk6IFJlZmVyZW5jZVtdIHtcbiAgbGV0IGxpbmtzOiBSZWZlcmVuY2VbXSA9IFtdO1xuXG4gIGlmIChjYWNoZS5saW5rcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUubGlua3MpO1xuICB9XG5cbiAgaWYgKGNhY2hlLmVtYmVkcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUuZW1iZWRzKTtcbiAgfVxuXG4gIGlmIChjYWNoZS5mcm9udG1hdHRlckxpbmtzKSB7XG4gICAgbGlua3MucHVzaCguLi5jYWNoZS5mcm9udG1hdHRlckxpbmtzKTtcbiAgfVxuXG4gIHNvcnRSZWZlcmVuY2VzKGxpbmtzKTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgbGlua3MgPSBsaW5rcy5maWx0ZXIoKGxpbmssIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0xpbmsgPSBsaW5rc1tpbmRleCAtIDFdO1xuICAgIGlmICghcHJldmlvdXNMaW5rKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSAmJiBpc1JlZmVyZW5jZUNhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAhPT0gcHJldmlvdXNMaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShsaW5rKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLmtleSAhPT0gcHJldmlvdXNMaW5rLmtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmtzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgb3IgcGF0aC5cbiAqIE5PVEU6IFRoZSBmaWxlIG1heSBiZSBub24tZXhpc3RlbnQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgYmFja2xpbmtzIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSwgdHJ1ZSk7XG4gIHJldHVybiB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuKGFwcCwgZmlsZSwgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0QmFja2xpbmtzRm9yRmlsZShmaWxlKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBzYWZlbHkuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IGRpY3Rpb25hcnkgb2YgYmFja2xpbmtzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIHJldHJ5T3B0aW9uczogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0ge30pOiBQcm9taXNlPEN1c3RvbUFycmF5RGljdDxSZWZlcmVuY2U+PiB7XG4gIGNvbnN0IHNhZmVPdmVybG9hZCA9IChhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlIGFzIFBhcnRpYWw8R2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyPikuc2FmZTtcbiAgaWYgKHNhZmVPdmVybG9hZCkge1xuICAgIHJldHVybiBzYWZlT3ZlcmxvYWQocGF0aE9yRmlsZSk7XG4gIH1cbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNjAwMDAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbk9wdGlvbnM6IFBhcnRpYWw8UmV0cnlPcHRpb25zPiA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgbGV0IGJhY2tsaW5rczogQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4gPSBudWxsIGFzIHVua25vd24gYXMgQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT47XG4gIGF3YWl0IHJldHJ5V2l0aFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gICAgYXdhaXQgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5KGFwcCk7XG4gICAgYmFja2xpbmtzID0gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHAsIGZpbGUpO1xuICAgIGZvciAoY29uc3Qgbm90ZVBhdGggb2YgYmFja2xpbmtzLmtleXMoKSkge1xuICAgICAgY29uc3Qgbm90ZSA9IGdldEZpbGVPck51bGwoYXBwLCBub3RlUGF0aCk7XG4gICAgICBpZiAoIW5vdGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzYXZlTm90ZShhcHAsIG5vdGUpO1xuXG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgYXBwLnZhdWx0LnJlYWQobm90ZSk7XG4gICAgICBjb25zdCBmcm9udG1hdHRlciA9IHBhcnNlRnJvbnRtYXR0ZXIoY29udGVudCk7XG4gICAgICBjb25zdCBsaW5rcyA9IGJhY2tsaW5rcy5nZXQobm90ZVBhdGgpO1xuICAgICAgaWYgKCFsaW5rcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xuICAgICAgICBsZXQgYWN0dWFsTGluazogc3RyaW5nO1xuICAgICAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSkge1xuICAgICAgICAgIGFjdHVhbExpbmsgPSBjb250ZW50LnNsaWNlKGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0LCBsaW5rLnBvc2l0aW9uLmVuZC5vZmZzZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUobGluaykpIHtcbiAgICAgICAgICBjb25zdCBsaW5rVmFsdWUgPSBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250bWF0dGVyLCBsaW5rLmtleSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBsaW5rVmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdHVhbExpbmsgPSBsaW5rVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdHVhbExpbmsgIT09IGxpbmsub3JpZ2luYWwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xuXG4gIHJldHVybiBiYWNrbGlua3M7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmFja2xpbmtzIG1hcCBmb3IgdGhlIHNwZWNpZmllZCBmaWxlcy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlcyAtIFRoZSBwYXRocyBvciBmaWxlcyB0byBnZXQgdGhlIGJhY2tsaW5rcyBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgbWFwIG9mIGJhY2tsaW5rcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJhY2tsaW5rc01hcChhcHA6IEFwcCwgcGF0aE9yRmlsZXM6IFBhdGhPckZpbGVbXSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8TWFwPHN0cmluZywgUmVmZXJlbmNlW10+PiB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBSZWZlcmVuY2VbXT4oKTtcbiAgZm9yIChjb25zdCBwYXRoT3JGaWxlIG9mIHBhdGhPckZpbGVzKSB7XG4gICAgY29uc3QgY3VzdG9tQXJyYXlEaWN0ID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwLCBwYXRoT3JGaWxlLCByZXRyeU9wdGlvbnMpO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiBjdXN0b21BcnJheURpY3Qua2V5cygpKSB7XG4gICAgICBjb25zdCBtYXBMaW5rcyA9IG1hcC5nZXQocGF0aCkgPz8gW107XG4gICAgICBjb25zdCBwYXRoTGlua3MgPSBjdXN0b21BcnJheURpY3QuZ2V0KHBhdGgpID8/IFtdO1xuICAgICAgbWFwTGlua3MucHVzaCguLi5wYXRoTGlua3MpO1xuICAgICAgbWFwLnNldChwYXRoLCBtYXBMaW5rcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGVPclBhdGggLSBUaGUgZmlsZSBvciBwYXRoIHRvIHJldHJpZXZlIHRoZSBtZXRhZGF0YSBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucyBmb3IgdGhlIHJldHJpZXZhbCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUsIG9yIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlU2FmZShhcHA6IEFwcCwgZmlsZU9yUGF0aDogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7fSk6IFByb21pc2U8Q2FjaGVkTWV0YWRhdGEgfCBudWxsPiB7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUzogUGFydGlhbDxSZXRyeU9wdGlvbnM+ID0geyB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IDYwMDAwIH07XG4gIGNvbnN0IG92ZXJyaWRkZW5PcHRpb25zOiBQYXJ0aWFsPFJldHJ5T3B0aW9ucz4gPSB7IC4uLkRFRkFVTFRfUkVUUllfT1BUSU9OUywgLi4ucmV0cnlPcHRpb25zIH07XG4gIGxldCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcblxuICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGZpbGVPclBhdGgpO1xuXG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgY2FjaGUgPSBudWxsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBmaWxlKTtcblxuICAgIGNvbnN0IGZpbGVJbmZvID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUluZm8oZmlsZS5wYXRoKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuc3RhdChmaWxlLnBhdGgpO1xuXG4gICAgaWYgKCFmaWxlSW5mbykge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXN0YXQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgc3RhdCBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGZpbGUuc3RhdC5tdGltZSA8IHN0YXQubXRpbWUpIHtcbiAgICAgIGFwcC52YXVsdC5vbkNoYW5nZSgnbW9kaWZpZWQnLCBmaWxlLnBhdGgsIHVuZGVmaW5lZCwgc3RhdCk7XG4gICAgICBjb25zb2xlLmRlYnVnKGBDYWNoZWQgdGltZXN0YW1wIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGUuc3RhdC5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBzeXN0ZW0gbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCAke25ldyBEYXRlKHN0YXQubXRpbWUpLnRvU3RyaW5nKCl9YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChmaWxlSW5mby5tdGltZSA8IHN0YXQubXRpbWUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgY2FjaGUgaW5mbyBmb3IgJHtmaWxlLnBhdGh9IGlzIGZyb20gJHtuZXcgRGF0ZShmaWxlSW5mby5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBtb2RpZmljYXRpb24gdGltZXN0YW1wICR7bmV3IERhdGUoc3RhdC5tdGltZSkudG9TdHJpbmcoKX1gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XG4gICAgICBpZiAoIWNhY2hlKSB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoYEZpbGUgY2FjaGUgZm9yICR7ZmlsZS5wYXRofSBpcyBtaXNzaW5nYCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSwgb3ZlcnJpZGRlbk9wdGlvbnMpO1xuXG4gIHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZyb250IG1hdHRlciBmcm9tIHRoZSBtZXRhZGF0YSBjYWNoZSBzYWZlbHkuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udG1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byByZXRyaWV2ZSB0aGUgZnJvbnQgbWF0dGVyIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tYmluZWQgZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RnJvbnRtYXR0ZXJTYWZlPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4oYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+PiB7XG4gIGNvbnN0IGNhY2hlID0gYXdhaXQgZ2V0Q2FjaGVTYWZlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIHJldHVybiAoY2FjaGU/LmZyb250bWF0dGVyID8/IHt9KSBhcyBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPjtcbn1cblxuLyoqKlxuICogUmVnaXN0ZXJzIGEgZmlsZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byByZWdpc3Rlci5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB1bnJlZ2lzdGVycyB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRmlsZShhcHA6IEFwcCwgZmlsZTogVEFic3RyYWN0RmlsZSk6ICgpID0+IHZvaWQge1xuICBpZiAoIWZpbGUuZGVsZXRlZCkge1xuICAgIHJldHVybiBub29wO1xuICB9XG5cbiAgY29uc3QgZGVsZXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBkZWxldGVkRmlsZTogVEFic3RyYWN0RmlsZSA9IGZpbGU7XG5cbiAgd2hpbGUgKGRlbGV0ZWRGaWxlLmRlbGV0ZWQpIHtcbiAgICBkZWxldGVkUGF0aHMucHVzaChkZWxldGVkRmlsZS5wYXRoKTtcbiAgICBhcHAudmF1bHQuZmlsZU1hcFtkZWxldGVkRmlsZS5wYXRoXSA9IGRlbGV0ZWRGaWxlO1xuICAgIGRlbGV0ZWRGaWxlID0gZGVsZXRlZEZpbGUucGFyZW50ID8/IGdldEZvbGRlcihhcHAsIHBhcmVudEZvbGRlclBhdGgoZGVsZXRlZEZpbGUucGF0aCksIHRydWUpO1xuICB9XG5cbiAgaWYgKGlzRmlsZShmaWxlKSkge1xuICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAuYWRkKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgfVxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGRlbGV0ZWRQYXRocykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1keW5hbWljLWRlbGV0ZVxuICAgICAgZGVsZXRlIGFwcC52YXVsdC5maWxlTWFwW3BhdGhdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoZmlsZSkpIHtcbiAgICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAucmVtb3ZlKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVGVtcG9yYXJpbHkgcmVnaXN0ZXJzIGEgZmlsZSBhbmQgcnVucyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byB0ZW1wb3JhcmlseSByZWdpc3Rlci5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBydW4uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBSZWdpc3RlckZpbGVBbmRSdW48VD4oYXBwOiBBcHAsIGZpbGU6IFRBYnN0cmFjdEZpbGUsIGZuOiAoKSA9PiBUKTogVCB7XG4gIGNvbnN0IHVucmVnaXN0ZXIgPSByZWdpc3RlckZpbGUoYXBwLCBmaWxlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGZpbmFsbHkge1xuICAgIHVucmVnaXN0ZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBzcGVjaWZpZWQgbm90ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgbm90ZSB0byBiZSBzYXZlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG5vdGUgaXMgc2F2ZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVOb3RlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghaXNNYXJrZG93bkZpbGUocGF0aE9yRmlsZSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwYXRoID0gZ2V0UGF0aChwYXRoT3JGaWxlKTtcblxuICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoJ21hcmtkb3duJykpIHtcbiAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICBhd2FpdCBsZWFmLnZpZXcuc2F2ZSgpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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YTtBQUN0RCxlQUFPO0FBQUEsTUFDVCxPQUFPO0FBQ0wsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLGlCQUFpQjtBQUVwQixTQUFPO0FBQ1Q7QUFVQSxlQUFzQixtQkFBZ0QsS0FBVSxZQUF5RTtBQUN2SixRQUFNLFFBQVEsTUFBTSxhQUFhLEtBQUssVUFBVTtBQUNoRCxTQUFRLE9BQU8sZUFBZSxDQUFDO0FBQ2pDO0FBU08sU0FBUyxhQUFhLEtBQVUsTUFBaUM7QUFDdEUsTUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBeUIsQ0FBQztBQUVoQyxNQUFJLGNBQTZCO0FBRWpDLFNBQU8sWUFBWSxTQUFTO0FBQzFCLGlCQUFhLEtBQUssWUFBWSxJQUFJO0FBQ2xDLFFBQUksTUFBTSxRQUFRLFlBQVksSUFBSSxJQUFJO0FBQ3RDLGtCQUFjLFlBQVksY0FBVSw2QkFBVSxTQUFLLHlDQUFpQixZQUFZLElBQUksR0FBRyxJQUFJO0FBQUEsRUFDN0Y7QUFFQSxVQUFJLDBCQUFPLElBQUksR0FBRztBQUNoQixRQUFJLGNBQWMsaUJBQWlCLElBQUksS0FBSyxLQUFLLFlBQVksR0FBRyxJQUFJO0FBQUEsRUFDdEU7QUFFQSxTQUFPLE1BQU07QUFDWCxlQUFXLFFBQVEsY0FBYztBQUUvQixhQUFPLElBQUksTUFBTSxRQUFRLElBQUk7QUFBQSxJQUMvQjtBQUVBLFlBQUksMEJBQU8sSUFBSSxHQUFHO0FBQ2hCLFVBQUksY0FBYyxpQkFBaUIsT0FBTyxLQUFLLEtBQUssWUFBWSxHQUFHLElBQUk7QUFBQSxJQUN6RTtBQUFBLEVBQ0Y7QUFDRjtBQVVPLFNBQVMsdUJBQTBCLEtBQVUsTUFBcUIsSUFBZ0I7QUFDdkYsUUFBTSxhQUFhLGFBQWEsS0FBSyxJQUFJO0FBRXpDLE1BQUk7QUFDRixXQUFPLEdBQUc7QUFBQSxFQUNaLFVBQUU7QUFDQSxlQUFXO0FBQUEsRUFDYjtBQUNGO0FBU0EsZUFBZSxTQUFTLEtBQVUsWUFBdUM7QUFDdkUsTUFBSSxLQUFDLGtDQUFlLFVBQVUsR0FBRztBQUMvQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFdBQU8sMkJBQVEsVUFBVTtBQUUvQixhQUFXLFFBQVEsSUFBSSxVQUFVLGdCQUFnQixVQUFVLEdBQUc7QUFDNUQsUUFBSSxLQUFLLGdCQUFnQixnQ0FBZ0IsS0FBSyxLQUFLLE1BQU0sU0FBUyxNQUFNO0FBQ3RFLFlBQU0sS0FBSyxLQUFLLEtBQUs7QUFBQSxJQUN2QjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -6,7 +6,7 @@ import type { App, CachedMetadata, Reference, TAbstractFile } from 'obsidian';
6
6
  import type { CustomArrayDict } from 'obsidian-typings';
7
7
  import type { RetryOptions } from '../Async.ts';
8
8
  import type { PathOrFile } from './FileSystem.ts';
9
- import type { CombinedFrontMatter } from './FrontMatter.ts';
9
+ import type { CombinedFrontmatter } from './Frontmatter.ts';
10
10
  /**
11
11
  * Wrapper for the getBacklinksForFile method that provides a safe overload.
12
12
  */
@@ -71,12 +71,12 @@ export declare function getCacheSafe(app: App, fileOrPath: PathOrFile, retryOpti
71
71
  /**
72
72
  * Retrieves the front matter from the metadata cache safely.
73
73
  *
74
- * @typeParam CustomFrontMatter - The type of custom front matter.
74
+ * @typeParam CustomFrontmatter - The type of custom front matter.
75
75
  * @param app - The Obsidian app instance.
76
76
  * @param pathOrFile - The path or file to retrieve the front matter from.
77
77
  * @returns The combined front matter.
78
78
  */
79
- export declare function getFrontMatterSafe<CustomFrontMatter = unknown>(app: App, pathOrFile: PathOrFile): Promise<CombinedFrontMatter<CustomFrontMatter>>;
79
+ export declare function getFrontmatterSafe<CustomFrontmatter = unknown>(app: App, pathOrFile: PathOrFile): Promise<CombinedFrontmatter<CustomFrontmatter>>;
80
80
  /***
81
81
  * Registers a file in the Obsidian app.
82
82
  *
@@ -42,7 +42,7 @@ function referenceToFileChange(reference, newContent) {
42
42
  };
43
43
  } else if ((0, import_implementations.isFrontmatterLinkCache)(reference)) {
44
44
  return {
45
- frontMatterKey: reference.key,
45
+ frontmatterKey: reference.key,
46
46
  newContent,
47
47
  oldContent: reference.original
48
48
  };
@@ -65,4 +65,4 @@ function sortReferences(references) {
65
65
  referenceToFileChange,
66
66
  sortReferences
67
67
  });
68
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gUmVmZXJlbmNlXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcmVmZXJlbmNlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlZmVyZW5jZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29udGVudENoYW5nZSxcbiAgRmlsZUNoYW5nZSxcbiAgRnJvbnRtYXR0ZXJDaGFuZ2Vcbn0gZnJvbSAnLi9GaWxlQ2hhbmdlLnRzJztcblxuLyoqXG4qIENvbnZlcnRzIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSBjaGFuZ2UuXG4qXG4qIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNvbnZlcnQuXG4qIEBwYXJhbSBuZXdDb250ZW50IC0gVGhlIG5ldyBjb250ZW50IGZvciB0aGUgcmVmZXJlbmNlLlxuKiBAcmV0dXJucyBUaGUgZmlsZSBjaGFuZ2UuXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW5jZVRvRmlsZUNoYW5nZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgbmV3Q29udGVudDogc3RyaW5nKTogRmlsZUNoYW5nZSB7XG4gIGlmIChpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZW5kSW5kZXg6IHJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0LFxuICAgICAgbmV3Q29udGVudCxcbiAgICAgIG9sZENvbnRlbnQ6IHJlZmVyZW5jZS5vcmlnaW5hbCxcbiAgICAgIHN0YXJ0SW5kZXg6IHJlZmVyZW5jZS5wb3NpdGlvbi5zdGFydC5vZmZzZXRcbiAgICB9IGFzIENvbnRlbnRDaGFuZ2U7XG4gIH0gZWxzZSBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShyZWZlcmVuY2UpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb250TWF0dGVyS2V5OiByZWZlcmVuY2Uua2V5LFxuICAgICAgbmV3Q29udGVudCxcbiAgICAgIG9sZENvbnRlbnQ6IHJlZmVyZW5jZS5vcmlnaW5hbFxuICAgIH0gYXMgRnJvbnRtYXR0ZXJDaGFuZ2U7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluayB0eXBlJyk7XG59XG5cbi8qKlxuICogU29ydHMgcmVmZXJlbmNlcyBieSB0aGVpciB0eXBlIGFuZCBwb3NpdGlvbi5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlcyAtIFRoZSByZWZlcmVuY2VzIHRvIHNvcnQuXG4gKiBAcmV0dXJucyBUaGUgc29ydGVkIHJlZmVyZW5jZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UmVmZXJlbmNlcyhyZWZlcmVuY2VzOiBSZWZlcmVuY2VbXSk6IFJlZmVyZW5jZVtdIHtcbiAgcmV0dXJuIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChpc0Zyb250bWF0dGVyTGlua0NhY2hlKGEpICYmIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYikpIHtcbiAgICAgIHJldHVybiBhLmtleS5sb2NhbGVDb21wYXJlKGIua2V5KTtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShhKSAmJiBpc1JlZmVyZW5jZUNhY2hlKGIpKSB7XG4gICAgICByZXR1cm4gYS5wb3NpdGlvbi5zdGFydC5vZmZzZXQgLSBiLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZShhKSA/IDEgOiAtMTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSw2QkFHTztBQWVBLFNBQVMsc0JBQXNCLFdBQXNCLFlBQWdDO0FBQzFGLFVBQUkseUNBQWlCLFNBQVMsR0FBRztBQUMvQixXQUFPO0FBQUEsTUFDTCxVQUFVLFVBQVUsU0FBUyxJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUNBLFlBQVksVUFBVTtBQUFBLE1BQ3RCLFlBQVksVUFBVSxTQUFTLE1BQU07QUFBQSxJQUN2QztBQUFBLEVBQ0YsZUFBVywrQ0FBdUIsU0FBUyxHQUFHO0FBQzVDLFdBQU87QUFBQSxNQUNMLGdCQUFnQixVQUFVO0FBQUEsTUFDMUI7QUFBQSxNQUNBLFlBQVksVUFBVTtBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUVBLFFBQU0sSUFBSSxNQUFNLG1CQUFtQjtBQUNyQztBQVFPLFNBQVMsZUFBZSxZQUFzQztBQUNuRSxTQUFPLFdBQVcsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUMvQixZQUFJLCtDQUF1QixDQUFDLFNBQUssK0NBQXVCLENBQUMsR0FBRztBQUMxRCxhQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUUsR0FBRztBQUFBLElBQ2xDO0FBRUEsWUFBSSx5Q0FBaUIsQ0FBQyxTQUFLLHlDQUFpQixDQUFDLEdBQUc7QUFDOUMsYUFBTyxFQUFFLFNBQVMsTUFBTSxTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsSUFDcEQ7QUFFQSxlQUFPLCtDQUF1QixDQUFDLElBQUksSUFBSTtBQUFBLEVBQ3pDLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
68
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1JlZmVyZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gUmVmZXJlbmNlXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgcmVmZXJlbmNlcyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlZmVyZW5jZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQ29udGVudENoYW5nZSxcbiAgRmlsZUNoYW5nZSxcbiAgRnJvbnRtYXR0ZXJDaGFuZ2Vcbn0gZnJvbSAnLi9GaWxlQ2hhbmdlLnRzJztcblxuLyoqXG4qIENvbnZlcnRzIGEgcmVmZXJlbmNlIHRvIGEgZmlsZSBjaGFuZ2UuXG4qXG4qIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNvbnZlcnQuXG4qIEBwYXJhbSBuZXdDb250ZW50IC0gVGhlIG5ldyBjb250ZW50IGZvciB0aGUgcmVmZXJlbmNlLlxuKiBAcmV0dXJucyBUaGUgZmlsZSBjaGFuZ2UuXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZmVyZW5jZVRvRmlsZUNoYW5nZShyZWZlcmVuY2U6IFJlZmVyZW5jZSwgbmV3Q29udGVudDogc3RyaW5nKTogRmlsZUNoYW5nZSB7XG4gIGlmIChpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZW5kSW5kZXg6IHJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0LFxuICAgICAgbmV3Q29udGVudCxcbiAgICAgIG9sZENvbnRlbnQ6IHJlZmVyZW5jZS5vcmlnaW5hbCxcbiAgICAgIHN0YXJ0SW5kZXg6IHJlZmVyZW5jZS5wb3NpdGlvbi5zdGFydC5vZmZzZXRcbiAgICB9IGFzIENvbnRlbnRDaGFuZ2U7XG4gIH0gZWxzZSBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShyZWZlcmVuY2UpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb250bWF0dGVyS2V5OiByZWZlcmVuY2Uua2V5LFxuICAgICAgbmV3Q29udGVudCxcbiAgICAgIG9sZENvbnRlbnQ6IHJlZmVyZW5jZS5vcmlnaW5hbFxuICAgIH0gYXMgRnJvbnRtYXR0ZXJDaGFuZ2U7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluayB0eXBlJyk7XG59XG5cbi8qKlxuICogU29ydHMgcmVmZXJlbmNlcyBieSB0aGVpciB0eXBlIGFuZCBwb3NpdGlvbi5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlcyAtIFRoZSByZWZlcmVuY2VzIHRvIHNvcnQuXG4gKiBAcmV0dXJucyBUaGUgc29ydGVkIHJlZmVyZW5jZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0UmVmZXJlbmNlcyhyZWZlcmVuY2VzOiBSZWZlcmVuY2VbXSk6IFJlZmVyZW5jZVtdIHtcbiAgcmV0dXJuIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChpc0Zyb250bWF0dGVyTGlua0NhY2hlKGEpICYmIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUoYikpIHtcbiAgICAgIHJldHVybiBhLmtleS5sb2NhbGVDb21wYXJlKGIua2V5KTtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShhKSAmJiBpc1JlZmVyZW5jZUNhY2hlKGIpKSB7XG4gICAgICByZXR1cm4gYS5wb3NpdGlvbi5zdGFydC5vZmZzZXQgLSBiLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZShhKSA/IDEgOiAtMTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQSw2QkFHTztBQWVBLFNBQVMsc0JBQXNCLFdBQXNCLFlBQWdDO0FBQzFGLFVBQUkseUNBQWlCLFNBQVMsR0FBRztBQUMvQixXQUFPO0FBQUEsTUFDTCxVQUFVLFVBQVUsU0FBUyxJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUNBLFlBQVksVUFBVTtBQUFBLE1BQ3RCLFlBQVksVUFBVSxTQUFTLE1BQU07QUFBQSxJQUN2QztBQUFBLEVBQ0YsZUFBVywrQ0FBdUIsU0FBUyxHQUFHO0FBQzVDLFdBQU87QUFBQSxNQUNMLGdCQUFnQixVQUFVO0FBQUEsTUFDMUI7QUFBQSxNQUNBLFlBQVksVUFBVTtBQUFBLElBQ3hCO0FBQUEsRUFDRjtBQUVBLFFBQU0sSUFBSSxNQUFNLG1CQUFtQjtBQUNyQztBQVFPLFNBQVMsZUFBZSxZQUFzQztBQUNuRSxTQUFPLFdBQVcsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUMvQixZQUFJLCtDQUF1QixDQUFDLFNBQUssK0NBQXVCLENBQUMsR0FBRztBQUMxRCxhQUFPLEVBQUUsSUFBSSxjQUFjLEVBQUUsR0FBRztBQUFBLElBQ2xDO0FBRUEsWUFBSSx5Q0FBaUIsQ0FBQyxTQUFLLHlDQUFpQixDQUFDLEdBQUc7QUFDOUMsYUFBTyxFQUFFLFNBQVMsTUFBTSxTQUFTLEVBQUUsU0FBUyxNQUFNO0FBQUEsSUFDcEQ7QUFFQSxlQUFPLCtDQUF1QixDQUFDLElBQUksSUFBSTtBQUFBLEVBQ3pDLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -46,7 +46,7 @@ __export(obsidian_exports, {
46
46
  FileChange: () => FileChange,
47
47
  FileManager: () => FileManager,
48
48
  FileSystem: () => FileSystem,
49
- FrontMatter: () => FrontMatter,
49
+ Frontmatter: () => Frontmatter,
50
50
  Link: () => Link,
51
51
  Logger: () => Logger,
52
52
  Markdown: () => Markdown,
@@ -72,7 +72,7 @@ var DataviewLink = __toESM(__extractDefault(require('./DataviewLink.cjs')), 1);
72
72
  var FileChange = __toESM(__extractDefault(require('./FileChange.cjs')), 1);
73
73
  var FileManager = __toESM(__extractDefault(require('./FileManager.cjs')), 1);
74
74
  var FileSystem = __toESM(__extractDefault(require('./FileSystem.cjs')), 1);
75
- var FrontMatter = __toESM(__extractDefault(require('./FrontMatter.cjs')), 1);
75
+ var Frontmatter = __toESM(__extractDefault(require('./Frontmatter.cjs')), 1);
76
76
  var Link = __toESM(__extractDefault(require('./Link.cjs')), 1);
77
77
  var Logger = __toESM(__extractDefault(require('./Logger.cjs')), 1);
78
78
  var Markdown = __toESM(__extractDefault(require('./Markdown.cjs')), 1);
@@ -98,7 +98,7 @@ var Vault = __toESM(__extractDefault(require('./Vault.cjs')), 1);
98
98
  FileChange,
99
99
  FileManager,
100
100
  FileSystem,
101
- FrontMatter,
101
+ Frontmatter,
102
102
  Link,
103
103
  Logger,
104
104
  Markdown,
@@ -114,4 +114,4 @@ var Vault = __toESM(__extractDefault(require('./Vault.cjs')), 1);
114
114
  ResourceUrl,
115
115
  Vault
116
116
  });
117
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQXBwIGZyb20gJy4vQXBwLnRzJztcbmV4cG9ydCAqIGFzIEF0dGFjaG1lbnRQYXRoIGZyb20gJy4vQXR0YWNobWVudFBhdGgudHMnO1xuZXhwb3J0ICogYXMgQmFja2xpbmsgZnJvbSAnLi9CYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBDYWxsb3V0IGZyb20gJy4vQ2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBEYXRhdmlldyBmcm9tICcuL0RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzIERhdGF2aWV3TGluayBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5leHBvcnQgKiBhcyBGaWxlQ2hhbmdlIGZyb20gJy4vRmlsZUNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyBGaWxlTWFuYWdlciBmcm9tICcuL0ZpbGVNYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVTeXN0ZW0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzIEZyb250TWF0dGVyIGZyb20gJy4vRnJvbnRNYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgTGluayBmcm9tICcuL0xpbmsudHMnO1xuZXhwb3J0ICogYXMgTG9nZ2VyIGZyb20gJy4vTG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzIE1hcmtkb3duIGZyb20gJy4vTWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IgZnJvbSAnLi9NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyBNYXJrZG93blZpZXcgZnJvbSAnLi9NYXJrZG93blZpZXcudHMnO1xuZXhwb3J0ICogYXMgTWV0YWRhdGFDYWNoZSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuZXhwb3J0ICogYXMgTW9kYWwgZnJvbSAnLi9Nb2RhbC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBPYnNpZGlhblNldHRpbmdzIGZyb20gJy4vT2JzaWRpYW5TZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyBQbHVnaW4gZnJvbSAnLi9QbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgUXVldWUgZnJvbSAnLi9RdWV1ZS50cyc7XG5leHBvcnQgKiBhcyBSZWZlcmVuY2UgZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgUmVuYW1lRGVsZXRlSGFuZGxlciBmcm9tICcuL1JlbmFtZURlbGV0ZUhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgUmVzb3VyY2VVcmwgZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5leHBvcnQgKiBhcyBWYXVsdCBmcm9tICcuL1ZhdWx0LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLFVBQXFCO0FBQ3JCLHFCQUFnQztBQUNoQyxlQUEwQjtBQUMxQixjQUF5QjtBQUN6QixlQUEwQjtBQUMxQixtQkFBOEI7QUFDOUIsaUJBQTRCO0FBQzVCLGtCQUE2QjtBQUM3QixpQkFBNEI7QUFDNUIsa0JBQTZCO0FBQzdCLFdBQXNCO0FBQ3RCLGFBQXdCO0FBQ3hCLGVBQTBCO0FBQzFCLGlDQUE0QztBQUM1QyxtQkFBOEI7QUFDOUIsb0JBQStCO0FBQy9CLFlBQXVCO0FBQ3ZCLHVCQUFrQztBQUNsQyxhQUF3QjtBQUN4QixZQUF1QjtBQUN2QixnQkFBMkI7QUFDM0IsMEJBQXFDO0FBQ3JDLGtCQUE2QjtBQUM3QixZQUF1QjsiLAogICJuYW1lcyI6IFtdCn0K
117
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQXBwIGZyb20gJy4vQXBwLnRzJztcbmV4cG9ydCAqIGFzIEF0dGFjaG1lbnRQYXRoIGZyb20gJy4vQXR0YWNobWVudFBhdGgudHMnO1xuZXhwb3J0ICogYXMgQmFja2xpbmsgZnJvbSAnLi9CYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyBDYWxsb3V0IGZyb20gJy4vQ2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyBEYXRhdmlldyBmcm9tICcuL0RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzIERhdGF2aWV3TGluayBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5leHBvcnQgKiBhcyBGaWxlQ2hhbmdlIGZyb20gJy4vRmlsZUNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyBGaWxlTWFuYWdlciBmcm9tICcuL0ZpbGVNYW5hZ2VyLnRzJztcbmV4cG9ydCAqIGFzIEZpbGVTeXN0ZW0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzIEZyb250bWF0dGVyIGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgTGluayBmcm9tICcuL0xpbmsudHMnO1xuZXhwb3J0ICogYXMgTG9nZ2VyIGZyb20gJy4vTG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzIE1hcmtkb3duIGZyb20gJy4vTWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IgZnJvbSAnLi9NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3Nvci50cyc7XG5leHBvcnQgKiBhcyBNYXJrZG93blZpZXcgZnJvbSAnLi9NYXJrZG93blZpZXcudHMnO1xuZXhwb3J0ICogYXMgTWV0YWRhdGFDYWNoZSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuZXhwb3J0ICogYXMgTW9kYWwgZnJvbSAnLi9Nb2RhbC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBPYnNpZGlhblNldHRpbmdzIGZyb20gJy4vT2JzaWRpYW5TZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyBQbHVnaW4gZnJvbSAnLi9QbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgUXVldWUgZnJvbSAnLi9RdWV1ZS50cyc7XG5leHBvcnQgKiBhcyBSZWZlcmVuY2UgZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuZXhwb3J0ICogYXMgUmVuYW1lRGVsZXRlSGFuZGxlciBmcm9tICcuL1JlbmFtZURlbGV0ZUhhbmRsZXIudHMnO1xuZXhwb3J0ICogYXMgUmVzb3VyY2VVcmwgZnJvbSAnLi9SZXNvdXJjZVVybC50cyc7XG5leHBvcnQgKiBhcyBWYXVsdCBmcm9tICcuL1ZhdWx0LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLFVBQXFCO0FBQ3JCLHFCQUFnQztBQUNoQyxlQUEwQjtBQUMxQixjQUF5QjtBQUN6QixlQUEwQjtBQUMxQixtQkFBOEI7QUFDOUIsaUJBQTRCO0FBQzVCLGtCQUE2QjtBQUM3QixpQkFBNEI7QUFDNUIsa0JBQTZCO0FBQzdCLFdBQXNCO0FBQ3RCLGFBQXdCO0FBQ3hCLGVBQTBCO0FBQzFCLGlDQUE0QztBQUM1QyxtQkFBOEI7QUFDOUIsb0JBQStCO0FBQy9CLFlBQXVCO0FBQ3ZCLHVCQUFrQztBQUNsQyxhQUF3QjtBQUN4QixZQUF1QjtBQUN2QixnQkFBMkI7QUFDM0IsMEJBQXFDO0FBQ3JDLGtCQUE2QjtBQUM3QixZQUF1QjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -7,7 +7,7 @@ export * as DataviewLink from './DataviewLink.ts';
7
7
  export * as FileChange from './FileChange.ts';
8
8
  export * as FileManager from './FileManager.ts';
9
9
  export * as FileSystem from './FileSystem.ts';
10
- export * as FrontMatter from './FrontMatter.ts';
10
+ export * as Frontmatter from './Frontmatter.ts';
11
11
  export * as Link from './Link.ts';
12
12
  export * as Logger from './Logger.ts';
13
13
  export * as Markdown from './Markdown.ts';
package/dist/lib/url.cjs CHANGED
@@ -35,6 +35,9 @@ function isUrl(str) {
35
35
  if (!str.includes("://")) {
36
36
  return false;
37
37
  }
38
+ if (str.trim() !== str) {
39
+ return false;
40
+ }
38
41
  new URL(str);
39
42
  return true;
40
43
  } catch {
@@ -45,4 +48,4 @@ function isUrl(str) {
45
48
  0 && (module.exports = {
46
49
  isUrl
47
50
  });
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3VybC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gdXJsXG4gKiBDb250YWlucyBhIHV0aWxpdHkgZnVuY3Rpb24gZm9yIHZhbGlkYXRpbmcgVVJMcy5cbiAqL1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGdpdmVuIHN0cmluZyBpcyBhIHZhbGlkIFVSTFxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlIGFzIGEgVVJMLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBVUkwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNVcmwoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBpZiAoIXN0ci5pbmNsdWRlcygnOi8vJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbmV3IFVSTChzdHIpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXTyxTQUFTLE1BQU0sS0FBc0I7QUFDMUMsTUFBSTtBQUNGLFFBQUksQ0FBQyxJQUFJLFNBQVMsS0FBSyxHQUFHO0FBQ3hCLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxJQUFJLEdBQUc7QUFDWCxXQUFPO0FBQUEsRUFDVCxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
51
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3VybC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gdXJsXG4gKiBDb250YWlucyBhIHV0aWxpdHkgZnVuY3Rpb24gZm9yIHZhbGlkYXRpbmcgVVJMcy5cbiAqL1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGdpdmVuIHN0cmluZyBpcyBhIHZhbGlkIFVSTFxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlIGFzIGEgVVJMLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBVUkwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNVcmwoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBpZiAoIXN0ci5pbmNsdWRlcygnOi8vJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHN0ci50cmltKCkgIT09IHN0cikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBuZXcgVVJMKHN0cik7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdPLFNBQVMsTUFBTSxLQUFzQjtBQUMxQyxNQUFJO0FBQ0YsUUFBSSxDQUFDLElBQUksU0FBUyxLQUFLLEdBQUc7QUFDeEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksS0FBSyxNQUFNLEtBQUs7QUFDdEIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLElBQUksR0FBRztBQUNYLFdBQU87QUFBQSxFQUNULFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "obsidian-dev-utils",
3
- "version": "4.19.0",
3
+ "version": "4.21.0",
4
4
  "description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
5
5
  "main": "./dist/lib/index.cjs",
6
6
  "types": "./dist/lib/index.d.ts",