Linux unitednationsplay.com 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
nginx/1.20.1
Server IP : 188.130.139.92 & Your IP : 13.59.161.112
Domains :
Cant Read [ /etc/named.conf ]
User : web
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
www /
wb /
node_modules /
webpack /
lib /
util /
Delete
Unzip
Name
Size
Permission
Date
Action
hash
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
ArrayHelpers.js
1.45
KB
-rw-rw-r--
2022-08-30 11:49
ArrayQueue.js
2.15
KB
-rw-rw-r--
2022-08-30 11:49
AsyncQueue.js
9.41
KB
-rw-rw-r--
2022-08-30 11:49
Hash.js
925
B
-rw-rw-r--
2022-08-30 11:49
IterableHelpers.js
962
B
-rw-rw-r--
2022-08-30 11:49
LazyBucketSortedSet.js
5.6
KB
-rw-rw-r--
2022-08-30 11:49
LazySet.js
4.46
KB
-rw-rw-r--
2022-08-30 11:49
MapHelpers.js
472
B
-rw-rw-r--
2022-08-30 11:49
ParallelismFactorCalculator.js
1.49
KB
-rw-rw-r--
2022-08-30 11:49
Queue.js
1.02
KB
-rw-rw-r--
2022-08-30 11:49
Semaphore.js
1008
B
-rw-rw-r--
2022-08-30 11:49
SetHelpers.js
2.26
KB
-rw-rw-r--
2022-08-30 11:49
SortableSet.js
3.55
KB
-rw-rw-r--
2022-08-30 11:49
StackedCacheMap.js
2.23
KB
-rw-rw-r--
2022-08-30 11:49
StackedMap.js
3.37
KB
-rw-rw-r--
2022-08-30 11:49
StringXor.js
1.09
KB
-rw-rw-r--
2022-08-30 11:49
TupleQueue.js
1.29
KB
-rw-rw-r--
2022-08-30 11:49
TupleSet.js
2.84
KB
-rw-rw-r--
2022-08-30 11:49
URLAbsoluteSpecifier.js
2.49
KB
-rw-rw-r--
2022-08-30 11:49
WeakTupleMap.js
3.36
KB
-rw-rw-r--
2022-08-30 11:49
binarySearchBounds.js
1.86
KB
-rw-rw-r--
2022-08-30 11:49
cleverMerge.js
16.15
KB
-rw-rw-r--
2022-08-30 11:49
comparators.js
12.15
KB
-rw-rw-r--
2022-08-30 11:49
compileBooleanMatcher.js
5.68
KB
-rw-rw-r--
2022-08-30 11:49
create-schema-validation.js
711
B
-rw-rw-r--
2022-08-30 11:49
createHash.js
4.71
KB
-rw-rw-r--
2022-08-30 11:49
deprecation.js
6.3
KB
-rw-rw-r--
2022-08-30 11:49
deterministicGrouping.js
13.44
KB
-rw-rw-r--
2022-08-30 11:49
extractUrlAndGlobal.js
531
B
-rw-rw-r--
2022-08-30 11:49
findGraphRoots.js
5.97
KB
-rw-rw-r--
2022-08-30 11:49
fs.js
11.15
KB
-rw-rw-r--
2022-08-30 11:49
identifier.js
10.79
KB
-rw-rw-r--
2022-08-30 11:49
internalSerializables.js
10.4
KB
-rw-rw-r--
2022-08-30 11:49
makeSerializable.js
640
B
-rw-rw-r--
2022-08-30 11:49
memoize.js
604
B
-rw-rw-r--
2022-08-30 11:49
nonNumericOnlyHash.js
556
B
-rw-rw-r--
2022-08-30 11:49
numberHash.js
1.04
KB
-rw-rw-r--
2022-08-30 11:49
objectToMap.js
346
B
-rw-rw-r--
2022-08-30 11:49
processAsyncTree.js
1.45
KB
-rw-rw-r--
2022-08-30 11:49
propertyAccess.js
1.16
KB
-rw-rw-r--
2022-08-30 11:49
registerExternalSerializer.js
7.73
KB
-rw-rw-r--
2022-08-30 11:49
runtime.js
14.26
KB
-rw-rw-r--
2022-08-30 11:49
semver.js
15.36
KB
-rw-rw-r--
2022-08-30 11:49
serialization.js
3.92
KB
-rw-rw-r--
2022-08-30 11:49
smartGrouping.js
5.15
KB
-rw-rw-r--
2022-08-30 11:49
source.js
1.72
KB
-rw-rw-r--
2022-08-30 11:49
Save
Rename
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; /** * @typedef {Object} GroupOptions * @property {boolean=} groupChildren * @property {boolean=} force * @property {number=} targetGroupCount */ /** * @template T * @template R * @typedef {Object} GroupConfig * @property {function(T): string[]} getKeys * @property {function(string, (R | T)[], T[]): R} createGroup * @property {function(string, T[]): GroupOptions=} getOptions */ /** * @template T * @template R * @typedef {Object} ItemWithGroups * @property {T} item * @property {Set<Group<T, R>>} groups */ /** * @template T * @template R * @typedef {{ config: GroupConfig<T, R>, name: string, alreadyGrouped: boolean, items: Set<ItemWithGroups<T, R>> | undefined }} Group */ /** * @template T * @template R * @param {T[]} items the list of items * @param {GroupConfig<T, R>[]} groupConfigs configuration * @returns {(R | T)[]} grouped items */ const smartGrouping = (items, groupConfigs) => { /** @type {Set<ItemWithGroups<T, R>>} */ const itemsWithGroups = new Set(); /** @type {Map<string, Group<T, R>>} */ const allGroups = new Map(); for (const item of items) { /** @type {Set<Group<T, R>>} */ const groups = new Set(); for (let i = 0; i < groupConfigs.length; i++) { const groupConfig = groupConfigs[i]; const keys = groupConfig.getKeys(item); if (keys) { for (const name of keys) { const key = `${i}:${name}`; let group = allGroups.get(key); if (group === undefined) { allGroups.set( key, (group = { config: groupConfig, name, alreadyGrouped: false, items: undefined }) ); } groups.add(group); } } } itemsWithGroups.add({ item, groups }); } /** * @param {Set<ItemWithGroups<T, R>>} itemsWithGroups input items with groups * @returns {(T | R)[]} groups items */ const runGrouping = itemsWithGroups => { const totalSize = itemsWithGroups.size; for (const entry of itemsWithGroups) { for (const group of entry.groups) { if (group.alreadyGrouped) continue; const items = group.items; if (items === undefined) { group.items = new Set([entry]); } else { items.add(entry); } } } /** @type {Map<Group<T, R>, { items: Set<ItemWithGroups<T, R>>, options: GroupOptions | false | undefined, used: boolean }>} */ const groupMap = new Map(); for (const group of allGroups.values()) { if (group.items) { const items = group.items; group.items = undefined; groupMap.set(group, { items, options: undefined, used: false }); } } /** @type {(T | R)[]} */ const results = []; for (;;) { /** @type {Group<T, R>} */ let bestGroup = undefined; let bestGroupSize = -1; let bestGroupItems = undefined; let bestGroupOptions = undefined; for (const [group, state] of groupMap) { const { items, used } = state; let options = state.options; if (options === undefined) { const groupConfig = group.config; state.options = options = (groupConfig.getOptions && groupConfig.getOptions( group.name, Array.from(items, ({ item }) => item) )) || false; } const force = options && options.force; if (!force) { if (bestGroupOptions && bestGroupOptions.force) continue; if (used) continue; if (items.size <= 1 || totalSize - items.size <= 1) { continue; } } const targetGroupCount = (options && options.targetGroupCount) || 4; let sizeValue = force ? items.size : Math.min( items.size, (totalSize * 2) / targetGroupCount + itemsWithGroups.size - items.size ); if ( sizeValue > bestGroupSize || (force && (!bestGroupOptions || !bestGroupOptions.force)) ) { bestGroup = group; bestGroupSize = sizeValue; bestGroupItems = items; bestGroupOptions = options; } } if (bestGroup === undefined) { break; } const items = new Set(bestGroupItems); const options = bestGroupOptions; const groupChildren = !options || options.groupChildren !== false; for (const item of items) { itemsWithGroups.delete(item); // Remove all groups that items have from the map to not select them again for (const group of item.groups) { const state = groupMap.get(group); if (state !== undefined) { state.items.delete(item); if (state.items.size === 0) { groupMap.delete(group); } else { state.options = undefined; if (groupChildren) { state.used = true; } } } } } groupMap.delete(bestGroup); const key = bestGroup.name; const groupConfig = bestGroup.config; const allItems = Array.from(items, ({ item }) => item); bestGroup.alreadyGrouped = true; const children = groupChildren ? runGrouping(items) : allItems; bestGroup.alreadyGrouped = false; results.push(groupConfig.createGroup(key, children, allItems)); } for (const { item } of itemsWithGroups) { results.push(item); } return results; }; return runGrouping(itemsWithGroups); }; module.exports = smartGrouping;