effect 3.2.9 → 3.3.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/Redacted/package.json +6 -0
- package/dist/cjs/Config.js +9 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Either.js +2 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Iterable.js +15 -2
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/Layer.js +11 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/Option.js +7 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Pool.js +26 -0
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/Predicate.js +51 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Redacted.js +65 -0
- package/dist/cjs/Redacted.js.map +1 -0
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Secret.js +7 -0
- package/dist/cjs/Secret.js.map +1 -1
- package/dist/cjs/Stream.js +32 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Tuple.js +15 -1
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/config.js +8 -1
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/layer.js +14 -2
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/pool.js +206 -235
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/redacted.js +87 -0
- package/dist/cjs/internal/redacted.js.map +1 -0
- package/dist/cjs/internal/secret.js +40 -23
- package/dist/cjs/internal/secret.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +2 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stream.js +15 -7
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Config.d.ts +9 -0
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +7 -0
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +20 -0
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +31 -0
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +57 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Redacted.d.ts +68 -0
- package/dist/dts/Redacted.d.ts.map +1 -0
- package/dist/dts/STM.d.ts +4 -1
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Secret.d.ts +14 -1
- package/dist/dts/Secret.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +61 -4
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Tuple.d.ts +51 -0
- package/dist/dts/Tuple.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +46 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +6 -5
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +5 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/layer.d.ts +15 -1
- package/dist/dts/internal/layer.d.ts.map +1 -1
- package/dist/dts/internal/redacted.d.ts +2 -0
- package/dist/dts/internal/redacted.d.ts.map +1 -0
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/stream.d.ts +1 -0
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Config.js +8 -0
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Either.js +2 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Iterable.js +12 -0
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/Layer.js +10 -0
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/Option.js +7 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Pool.js +26 -0
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/Predicate.js +50 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Redacted.js +33 -0
- package/dist/esm/Redacted.js.map +1 -0
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Secret.js +7 -0
- package/dist/esm/Secret.js.map +1 -1
- package/dist/esm/Stream.js +31 -0
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Tuple.js +51 -0
- package/dist/esm/Tuple.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/config.js +6 -0
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/layer.js +12 -0
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/pool.js +205 -235
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/redacted.js +52 -0
- package/dist/esm/internal/redacted.js.map +1 -0
- package/dist/esm/internal/secret.js +39 -22
- package/dist/esm/internal/secret.js.map +1 -1
- package/dist/esm/internal/stm/stm.js +2 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stream.js +13 -4
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +9 -1
- package/src/Config.ts +10 -0
- package/src/Either.ts +4 -1
- package/src/Iterable.ts +13 -0
- package/src/Layer.ts +22 -0
- package/src/Option.ts +7 -1
- package/src/Pool.ts +39 -6
- package/src/Predicate.ts +59 -0
- package/src/Redacted.ts +79 -0
- package/src/STM.ts +7 -2
- package/src/Secret.ts +14 -1
- package/src/Stream.ts +67 -7
- package/src/Tuple.ts +53 -0
- package/src/Types.ts +48 -0
- package/src/Utils.ts +9 -6
- package/src/index.ts +6 -0
- package/src/internal/config.ts +11 -0
- package/src/internal/layer.ts +63 -0
- package/src/internal/pool.ts +320 -447
- package/src/internal/redacted.ts +69 -0
- package/src/internal/secret.ts +39 -28
- package/src/internal/stm/stm.ts +4 -1
- package/src/internal/stream.ts +111 -50
- package/src/internal/version.ts +1 -1
|
@@ -3,20 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.makeWithTTL = exports.make = exports.isPool = exports.invalidate = exports.get = exports.PoolTypeId = void 0;
|
|
6
|
+
exports.makeWithTTL = exports.makeWith = exports.make = exports.isPool = exports.invalidate = exports.get = exports.PoolTypeId = void 0;
|
|
7
7
|
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Context.js"));
|
|
8
8
|
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Duration.js"));
|
|
9
|
-
var Equal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Equal.js"));
|
|
10
9
|
var _Function = /*#__PURE__*/require("../Function.js");
|
|
11
|
-
var
|
|
12
|
-
var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../HashSet.js"));
|
|
10
|
+
var Iterable = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Iterable.js"));
|
|
13
11
|
var _Pipeable = /*#__PURE__*/require("../Pipeable.js");
|
|
14
12
|
var _Predicate = /*#__PURE__*/require("../Predicate.js");
|
|
15
|
-
var
|
|
13
|
+
var coreEffect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./core-effect.js"));
|
|
16
14
|
var core = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./core.js"));
|
|
15
|
+
var defaultServices = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./defaultServices.js"));
|
|
16
|
+
var circular = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./effect/circular.js"));
|
|
17
17
|
var fiberRuntime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./fiberRuntime.js"));
|
|
18
|
-
var
|
|
19
|
-
var ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./ref.js"));
|
|
18
|
+
var internalQueue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./queue.js"));
|
|
20
19
|
function _getRequireWildcardCache(e) {
|
|
21
20
|
if ("function" != typeof WeakMap) return null;
|
|
22
21
|
var r = new WeakMap(),
|
|
@@ -43,254 +42,226 @@ function _interopRequireWildcard(e, r) {
|
|
|
43
42
|
return n.default = e, t && t.set(e, n), n;
|
|
44
43
|
}
|
|
45
44
|
/** @internal */
|
|
46
|
-
const
|
|
47
|
-
/** @internal */
|
|
48
|
-
const PoolTypeId = exports.PoolTypeId = /*#__PURE__*/Symbol.for(PoolSymbolKey);
|
|
45
|
+
const PoolTypeId = exports.PoolTypeId = /*#__PURE__*/Symbol.for("effect/Pool");
|
|
49
46
|
const poolVariance = {
|
|
50
47
|
/* c8 ignore next */
|
|
51
48
|
_E: _ => _,
|
|
52
49
|
/* c8 ignore next */
|
|
53
50
|
_A: _ => _
|
|
54
51
|
};
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return core.flatMap(getExcess, excess => excess <= 0 ? core.zipRight(state[0].sleep(this.timeToLive), this.run(state, getExcess, shrink)) : (0, _Function.pipe)(core.zipWith(ref.get(state[1]), state[0].currentTimeMillis, (start, end) => end - start), core.flatMap(duration => {
|
|
88
|
-
if (duration >= Duration.toMillis(this.timeToLive)) {
|
|
89
|
-
return core.zipRight(shrink, this.run(state, getExcess, shrink));
|
|
90
|
-
} else {
|
|
91
|
-
return core.zipRight(state[0].sleep(this.timeToLive), this.run(state, getExcess, shrink));
|
|
92
|
-
}
|
|
93
|
-
})));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
52
|
+
/** @internal */
|
|
53
|
+
const isPool = u => (0, _Predicate.hasProperty)(u, PoolTypeId);
|
|
54
|
+
/** @internal */
|
|
55
|
+
exports.isPool = isPool;
|
|
56
|
+
const makeWith = options => core.uninterruptibleMask(restore => core.flatMap(core.context(), context => {
|
|
57
|
+
const scope = Context.get(context, fiberRuntime.scopeTag);
|
|
58
|
+
const acquire = core.mapInputContext(options.acquire, input => Context.merge(context, input));
|
|
59
|
+
const pool = new PoolImpl(acquire, options.concurrency ?? 1, options.min, options.max, options.strategy, Math.min(Math.max(options.targetUtilization ?? 1, 0.1), 1));
|
|
60
|
+
const initialize = core.tap(fiberRuntime.forkDaemon(restore(pool.resize)), fiber => scope.addFinalizer(() => core.interruptFiber(fiber)));
|
|
61
|
+
const runStrategy = core.tap(fiberRuntime.forkDaemon(restore(options.strategy.run(pool))), fiber => scope.addFinalizer(() => core.interruptFiber(fiber)));
|
|
62
|
+
return core.succeed(pool).pipe(core.zipLeft(scope.addFinalizer(() => pool.shutdown)), core.zipLeft(initialize), core.zipLeft(runStrategy));
|
|
63
|
+
}));
|
|
64
|
+
/** @internal */
|
|
65
|
+
exports.makeWith = makeWith;
|
|
66
|
+
const make = options => makeWith({
|
|
67
|
+
...options,
|
|
68
|
+
min: options.size,
|
|
69
|
+
max: options.size,
|
|
70
|
+
strategy: strategyNoop()
|
|
71
|
+
});
|
|
72
|
+
/** @internal */
|
|
73
|
+
exports.make = make;
|
|
74
|
+
const makeWithTTL = options => core.flatMap(options.timeToLiveStrategy === "creation" ? strategyCreationTTL(options.timeToLive) : strategyUsageTTL(options.timeToLive), strategy => makeWith({
|
|
75
|
+
...options,
|
|
76
|
+
strategy
|
|
77
|
+
}));
|
|
78
|
+
/** @internal */
|
|
79
|
+
exports.makeWithTTL = makeWithTTL;
|
|
80
|
+
const get = self => self.get;
|
|
81
|
+
/** @internal */
|
|
82
|
+
exports.get = get;
|
|
83
|
+
const invalidate = exports.invalidate = /*#__PURE__*/(0, _Function.dual)(2, (self, item) => self.invalidate(item));
|
|
96
84
|
class PoolImpl {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this.
|
|
112
|
-
this.
|
|
113
|
-
this.
|
|
114
|
-
this.
|
|
85
|
+
acquire;
|
|
86
|
+
concurrency;
|
|
87
|
+
minSize;
|
|
88
|
+
maxSize;
|
|
89
|
+
strategy;
|
|
90
|
+
targetUtilization;
|
|
91
|
+
[PoolTypeId];
|
|
92
|
+
isShuttingDown = false;
|
|
93
|
+
semaphore;
|
|
94
|
+
items = new Set();
|
|
95
|
+
available = new Set();
|
|
96
|
+
invalidated = new Set();
|
|
97
|
+
waiters = 0;
|
|
98
|
+
constructor(acquire, concurrency, minSize, maxSize, strategy, targetUtilization) {
|
|
99
|
+
this.acquire = acquire;
|
|
100
|
+
this.concurrency = concurrency;
|
|
101
|
+
this.minSize = minSize;
|
|
102
|
+
this.maxSize = maxSize;
|
|
103
|
+
this.strategy = strategy;
|
|
104
|
+
this.targetUtilization = targetUtilization;
|
|
105
|
+
this[PoolTypeId] = poolVariance;
|
|
106
|
+
this.semaphore = circular.unsafeMakeSemaphore(concurrency * maxSize);
|
|
115
107
|
}
|
|
116
|
-
|
|
117
|
-
|
|
108
|
+
allocate = core.acquireUseRelease(fiberRuntime.scopeMake(), scope => this.acquire.pipe(fiberRuntime.scopeExtend(scope), core.exit, core.flatMap(exit => {
|
|
109
|
+
const item = {
|
|
110
|
+
exit,
|
|
111
|
+
finalizer: core.catchAllCause(scope.close(exit), reportUnhandledError),
|
|
112
|
+
refCount: 0
|
|
113
|
+
};
|
|
114
|
+
this.items.add(item);
|
|
115
|
+
this.available.add(item);
|
|
116
|
+
return core.as(exit._tag === "Success" ? this.strategy.onAcquire(item) : core.zipRight(item.finalizer, this.strategy.onAcquire(item)), item);
|
|
117
|
+
})), (scope, exit) => exit._tag === "Failure" ? scope.close(exit) : core.void);
|
|
118
|
+
get currentUsage() {
|
|
119
|
+
let count = this.waiters;
|
|
120
|
+
for (const item of this.items) {
|
|
121
|
+
count += item.refCount;
|
|
122
|
+
}
|
|
123
|
+
return count;
|
|
118
124
|
}
|
|
119
|
-
|
|
120
|
-
|
|
125
|
+
get targetSize() {
|
|
126
|
+
if (this.isShuttingDown) return 0;
|
|
127
|
+
const utilization = this.currentUsage / this.targetUtilization;
|
|
128
|
+
const target = Math.ceil(utilization / this.concurrency);
|
|
129
|
+
return Math.min(Math.max(this.minSize, target), this.maxSize);
|
|
121
130
|
}
|
|
122
|
-
|
|
123
|
-
return
|
|
131
|
+
get activeSize() {
|
|
132
|
+
return this.items.size - this.invalidated.size;
|
|
124
133
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
134
|
+
resizeLoop = core.suspend(() => {
|
|
135
|
+
if (this.activeSize >= this.targetSize) {
|
|
136
|
+
return core.void;
|
|
137
|
+
}
|
|
138
|
+
return core.zipRight(this.allocate, this.resizeLoop);
|
|
139
|
+
});
|
|
140
|
+
resizeSemaphore = circular.unsafeMakeSemaphore(1);
|
|
141
|
+
resize = this.resizeSemaphore.withPermits(1)(this.resizeLoop);
|
|
142
|
+
getPoolItem = core.uninterruptibleMask(restore => restore(this.semaphore.take(1)).pipe(core.zipRight(fiberRuntime.scopeTag), core.flatMap(scope => core.suspend(() => {
|
|
143
|
+
this.waiters++;
|
|
144
|
+
if (this.isShuttingDown) {
|
|
145
|
+
return core.interrupt;
|
|
146
|
+
} else if (this.targetSize > this.activeSize) {
|
|
147
|
+
return core.zipRight(restore(this.resize), core.sync(() => Iterable.unsafeHead(this.available)));
|
|
148
|
+
}
|
|
149
|
+
return core.succeed(Iterable.unsafeHead(this.available));
|
|
150
|
+
}).pipe(fiberRuntime.ensuring(core.sync(() => this.waiters--)), core.tap(item => {
|
|
151
|
+
if (item.exit._tag === "Failure") {
|
|
152
|
+
this.items.delete(item);
|
|
153
|
+
this.invalidated.delete(item);
|
|
154
|
+
this.available.delete(item);
|
|
155
|
+
return this.semaphore.release(1);
|
|
156
|
+
}
|
|
157
|
+
item.refCount++;
|
|
158
|
+
this.available.delete(item);
|
|
159
|
+
if (item.refCount < this.concurrency) {
|
|
160
|
+
this.available.add(item);
|
|
161
|
+
}
|
|
162
|
+
return scope.addFinalizer(() => core.zipRight(core.suspend(() => {
|
|
163
|
+
item.refCount--;
|
|
164
|
+
if (this.invalidated.has(item)) {
|
|
165
|
+
return this.invalidatePoolItem(item);
|
|
140
166
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
return [allocateUinterruptible(this), {
|
|
153
|
-
...state,
|
|
154
|
-
free: state.free + 1
|
|
155
|
-
}];
|
|
156
|
-
}
|
|
157
|
-
return [core.void, {
|
|
158
|
-
...state,
|
|
159
|
-
size: state.size - 1
|
|
160
|
-
}];
|
|
161
|
-
}))),
|
|
162
|
-
onSuccess: item => core.flatMap(ref.get(this.invalidated), set => {
|
|
163
|
-
if ((0, _Function.pipe)(set, HashSet.has(item))) {
|
|
164
|
-
return finalizeInvalid(this, attempted);
|
|
167
|
+
this.available.add(item);
|
|
168
|
+
return core.void;
|
|
169
|
+
}), this.semaphore.release(1)));
|
|
170
|
+
}), core.onInterrupt(() => this.semaphore.release(1))))));
|
|
171
|
+
get = core.flatMap(core.suspend(() => this.isShuttingDown ? core.interrupt : this.getPoolItem), _ => _.exit);
|
|
172
|
+
invalidate(item) {
|
|
173
|
+
return core.suspend(() => {
|
|
174
|
+
if (this.isShuttingDown) return core.void;
|
|
175
|
+
for (const poolItem of this.items) {
|
|
176
|
+
if (poolItem.exit._tag === "Success" && poolItem.exit.value === item) {
|
|
177
|
+
return core.uninterruptible(this.invalidatePoolItem(poolItem));
|
|
165
178
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
free: state.free + 1
|
|
169
|
-
})), core.zipRight(queue.offer(this.items, attempted)), core.zipRight(this.track(attempted.result)), core.zipRight(core.whenEffect(getAndShutdown(this), ref.get(this.isShuttingDown))));
|
|
170
|
-
})
|
|
179
|
+
}
|
|
180
|
+
return core.void;
|
|
171
181
|
});
|
|
172
|
-
return (0, _Function.pipe)(core.uninterruptibleMask(restore => core.tap(acquire(restore), a => fiberRuntime.addFinalizer(_exit => release(a)))), fiberRuntime.withEarlyRelease, fiberRuntime.disconnect, core.flatMap(([release, attempted]) => (0, _Function.pipe)(effect.when(release, () => isFailure(attempted)), core.zipRight(toEffect(attempted)))));
|
|
173
182
|
}
|
|
174
|
-
|
|
175
|
-
return
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (state.size <= self.min) {
|
|
189
|
-
return [allocateUinterruptible(self), {
|
|
190
|
-
...state,
|
|
191
|
-
free: state.free + 1
|
|
192
|
-
}];
|
|
183
|
+
invalidatePoolItem(poolItem) {
|
|
184
|
+
return core.suspend(() => {
|
|
185
|
+
if (!this.items.has(poolItem)) {
|
|
186
|
+
return core.void;
|
|
187
|
+
} else if (poolItem.refCount === 0) {
|
|
188
|
+
this.items.delete(poolItem);
|
|
189
|
+
this.available.delete(poolItem);
|
|
190
|
+
this.invalidated.delete(poolItem);
|
|
191
|
+
return core.zipRight(poolItem.finalizer, this.resize);
|
|
192
|
+
}
|
|
193
|
+
this.invalidated.add(poolItem);
|
|
194
|
+
this.available.delete(poolItem);
|
|
195
|
+
return core.void;
|
|
196
|
+
});
|
|
193
197
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}))
|
|
211
|
-
})
|
|
212
|
-
...state,
|
|
213
|
-
free: state.free - 1
|
|
214
|
-
}];
|
|
198
|
+
get shutdown() {
|
|
199
|
+
return core.suspend(() => {
|
|
200
|
+
if (this.isShuttingDown) return core.void;
|
|
201
|
+
this.isShuttingDown = true;
|
|
202
|
+
const size = this.items.size;
|
|
203
|
+
const semaphore = circular.unsafeMakeSemaphore(size);
|
|
204
|
+
return core.forEachSequentialDiscard(this.items, item => {
|
|
205
|
+
if (item.refCount > 0) {
|
|
206
|
+
item.finalizer = core.zipLeft(item.finalizer, semaphore.release(1));
|
|
207
|
+
this.invalidated.add(item);
|
|
208
|
+
return semaphore.take(1);
|
|
209
|
+
}
|
|
210
|
+
this.items.delete(item);
|
|
211
|
+
this.available.delete(item);
|
|
212
|
+
this.invalidated.delete(item);
|
|
213
|
+
return item.finalizer;
|
|
214
|
+
}).pipe(core.zipRight(this.semaphore.releaseAll), core.zipRight(semaphore.take(size)));
|
|
215
|
+
});
|
|
215
216
|
}
|
|
216
|
-
|
|
217
|
-
return
|
|
217
|
+
pipe() {
|
|
218
|
+
return (0, _Pipeable.pipeArguments)(this, arguments);
|
|
218
219
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
}
|
|
221
|
+
const strategyNoop = () => ({
|
|
222
|
+
run: _ => core.void,
|
|
223
|
+
onAcquire: _ => core.void
|
|
224
|
+
});
|
|
225
|
+
const strategyCreationTTL = ttl => defaultServices.clockWith(clock => core.map(internalQueue.unbounded(), queue => {
|
|
226
|
+
const ttlMillis = Duration.toMillis(ttl);
|
|
227
|
+
const creationTimes = new WeakMap();
|
|
228
|
+
return (0, _Function.identity)({
|
|
229
|
+
run: pool => {
|
|
230
|
+
const process = item => core.suspend(() => {
|
|
231
|
+
if (!pool.items.has(item) || pool.invalidated.has(item)) {
|
|
232
|
+
return core.void;
|
|
233
|
+
}
|
|
234
|
+
const now = clock.unsafeCurrentTimeMillis();
|
|
235
|
+
const created = creationTimes.get(item);
|
|
236
|
+
const remaining = ttlMillis - (now - created);
|
|
237
|
+
return remaining > 0 ? coreEffect.delay(process(item), remaining) : pool.invalidatePoolItem(item);
|
|
238
|
+
});
|
|
239
|
+
return queue.take.pipe(core.tap(process), coreEffect.forever);
|
|
240
|
+
},
|
|
241
|
+
onAcquire: item => core.suspend(() => {
|
|
242
|
+
creationTimes.set(item, clock.unsafeCurrentTimeMillis());
|
|
243
|
+
return queue.offer(item);
|
|
244
|
+
})
|
|
245
|
+
});
|
|
223
246
|
}));
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
})
|
|
236
|
-
discard: true
|
|
247
|
+
const strategyUsageTTL = ttl => core.map(internalQueue.unbounded(), queue => {
|
|
248
|
+
return (0, _Function.identity)({
|
|
249
|
+
run: pool => {
|
|
250
|
+
const process = core.suspend(() => {
|
|
251
|
+
const excess = pool.activeSize - pool.targetSize;
|
|
252
|
+
if (excess <= 0) return core.void;
|
|
253
|
+
return queue.take.pipe(core.tap(item => pool.invalidatePoolItem(item)), core.zipRight(process));
|
|
254
|
+
});
|
|
255
|
+
return process.pipe(coreEffect.delay(ttl), coreEffect.forever);
|
|
256
|
+
},
|
|
257
|
+
onAcquire: item => queue.offer(item)
|
|
258
|
+
});
|
|
237
259
|
});
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if (state.size > self.min && state.free > 0) {
|
|
243
|
-
return [(0, _Function.pipe)(queue.take(self.items), core.flatMap(attempted => (0, _Function.pipe)(forEach(attempted, a => ref.update(self.invalidated, HashSet.remove(a))), core.zipRight(attempted.finalizer), core.zipRight(ref.update(self.state, state => ({
|
|
244
|
-
...state,
|
|
245
|
-
size: state.size - 1
|
|
246
|
-
})))))), {
|
|
247
|
-
...state,
|
|
248
|
-
free: state.free - 1
|
|
249
|
-
}];
|
|
260
|
+
const reportUnhandledError = cause => core.withFiberRuntime(fiber => {
|
|
261
|
+
const unhandledLogLevel = fiber.getFiberRef(core.currentUnhandledErrorLogLevel);
|
|
262
|
+
if (unhandledLogLevel._tag === "Some") {
|
|
263
|
+
fiber.log("Unhandled error in pool finalizer", cause, unhandledLogLevel);
|
|
250
264
|
}
|
|
251
|
-
return
|
|
252
|
-
})));
|
|
253
|
-
const shutdown = self => core.flatten(ref.modify(self.isShuttingDown, down => down ? [queue.awaitShutdown(self.items), true] : [core.zipRight(getAndShutdown(self), queue.awaitShutdown(self.items)), true]));
|
|
254
|
-
const isFailure = self => core.exitIsFailure(self.result);
|
|
255
|
-
const forEach = (self, f) => core.exitMatch(self.result, {
|
|
256
|
-
onFailure: () => core.void,
|
|
257
|
-
onSuccess: f
|
|
265
|
+
return core.void;
|
|
258
266
|
});
|
|
259
|
-
const toEffect = self => self.result;
|
|
260
|
-
/**
|
|
261
|
-
* A more powerful variant of `make` that allows specifying a `Strategy` that
|
|
262
|
-
* describes how a pool whose excess items are not being used will be shrunk
|
|
263
|
-
* down to the minimum size.
|
|
264
|
-
*/
|
|
265
|
-
const makeWith = options => core.uninterruptibleMask(restore => (0, _Function.pipe)(fiberRuntime.all([core.context(), ref.make(false), ref.make({
|
|
266
|
-
size: 0,
|
|
267
|
-
free: 0
|
|
268
|
-
}), queue.bounded(options.max), ref.make(HashSet.empty()), options.strategy.initial()]), core.flatMap(([context, down, state, items, inv, initial]) => {
|
|
269
|
-
const pool = new PoolImpl(core.mapInputContext(options.acquire, old => Context.merge(old)(context)), options.min, options.max, down, state, items, inv, exit => options.strategy.track(initial, exit));
|
|
270
|
-
return (0, _Function.pipe)(fiberRuntime.forkDaemon(restore(initialize(pool))), core.flatMap(fiber => core.flatMap(fiberRuntime.forkDaemon(restore(options.strategy.run(initial, excess(pool), shrink(pool)))), shrink => fiberRuntime.addFinalizer(() => (0, _Function.pipe)(shutdown(pool), core.zipRight(core.interruptFiber(fiber)), core.zipRight(core.interruptFiber(shrink)))))), core.as(pool));
|
|
271
|
-
})));
|
|
272
|
-
/** @internal */
|
|
273
|
-
const isPool = u => (0, _Predicate.hasProperty)(u, PoolTypeId);
|
|
274
|
-
/** @internal */
|
|
275
|
-
exports.isPool = isPool;
|
|
276
|
-
const make = options => makeWith({
|
|
277
|
-
acquire: options.acquire,
|
|
278
|
-
min: options.size,
|
|
279
|
-
max: options.size,
|
|
280
|
-
strategy: new NoneStrategy()
|
|
281
|
-
});
|
|
282
|
-
/** @internal */
|
|
283
|
-
exports.make = make;
|
|
284
|
-
const makeWithTTL = options => makeWith({
|
|
285
|
-
acquire: options.acquire,
|
|
286
|
-
min: options.min,
|
|
287
|
-
max: options.max,
|
|
288
|
-
strategy: new TimeToLiveStrategy(Duration.decode(options.timeToLive))
|
|
289
|
-
});
|
|
290
|
-
/** @internal */
|
|
291
|
-
exports.makeWithTTL = makeWithTTL;
|
|
292
|
-
const get = self => self.get;
|
|
293
|
-
/** @internal */
|
|
294
|
-
exports.get = get;
|
|
295
|
-
const invalidate = exports.invalidate = /*#__PURE__*/(0, _Function.dual)(2, (self, value) => self.invalidate(value));
|
|
296
267
|
//# sourceMappingURL=pool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","names":["Context","_interopRequireWildcard","require","Duration","Equal","_Function","Hash","HashSet","_Pipeable","_Predicate","effect","core","fiberRuntime","queue","ref","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PoolSymbolKey","PoolTypeId","exports","Symbol","for","poolVariance","_E","_","_A","NoneStrategy","initial","void","track","run","TimeToLiveStrategy","timeToLive","constructor","flatMap","clock","currentTimeMillis","now","map","make","state","asVoid","getExcess","shrink","excess","zipRight","sleep","pipe","zipWith","start","end","duration","toMillis","PoolImpl","creator","min","max","isShuttingDown","items","invalidated","symbol","hash","combine","number","cached","that","isPool","equals","pipeArguments","arguments","acquire","restore","down","interrupt","flatten","modify","free","size","take","attempted","exitMatch","result","onFailure","succeed","onSuccess","item","finalizeInvalid","allocate","release","finalizer","allocateUinterruptible","update","offer","whenEffect","getAndShutdown","uninterruptibleMask","tap","addFinalizer","_exit","withEarlyRelease","disconnect","when","isFailure","toEffect","invalidate","add","self","scopeMake","scope","exit","scopeExtend","scopeClose","exitSucceed","as","Math","forEach","remove","matchCauseEffect","shutdown","initialize","replicateEffect","discard","uninterruptible","awaitShutdown","exitIsFailure","f","makeWith","options","all","context","bounded","empty","strategy","inv","pool","mapInputContext","old","merge","forkDaemon","fiber","interruptFiber","hasProperty","makeWithTTL","decode","dual","value"],"sources":["../../../src/internal/pool.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,OAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,QAAA,gBAAAF,uBAAA,eAAAC,OAAA;AAEA,IAAAE,KAAA,gBAAAH,uBAAA,eAAAC,OAAA;AAEA,IAAAG,SAAA,gBAAAH,OAAA;AACA,IAAAI,IAAA,gBAAAL,uBAAA,eAAAC,OAAA;AACA,IAAAK,OAAA,gBAAAN,uBAAA,eAAAC,OAAA;AACA,IAAAM,SAAA,gBAAAN,OAAA;AAEA,IAAAO,UAAA,gBAAAP,OAAA;AAIA,IAAAQ,MAAA,gBAAAT,uBAAA,eAAAC,OAAA;AACA,IAAAS,IAAA,gBAAAV,uBAAA,eAAAC,OAAA;AACA,IAAAU,YAAA,gBAAAX,uBAAA,eAAAC,OAAA;AACA,IAAAW,KAAA,gBAAAZ,uBAAA,eAAAC,OAAA;AACA,IAAAY,GAAA,gBAAAb,uBAAA,eAAAC,OAAA;AAA+B,SAAAa,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAf,wBAAAe,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAE/B;AACA,MAAMW,aAAa,GAAG,aAAa;AAEnC;AACO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAoBE,MAAM,CAACC,GAAG,CACnDJ,aAAa,CACK;AAEpB,MAAMK,YAAY,GAAG;EACnB;EACAC,EAAE,EAAGC,CAAQ,IAAKA,CAAC;EACnB;EACAC,EAAE,EAAGD,CAAM,IAAKA;CACjB;AAoCD;;;;;AAKA,MAAME,YAAY;EAChBC,OAAOA,CAAA;IACL,OAAOlC,IAAI,CAACmC,IAAI;EAClB;EACAC,KAAKA,CAAA;IACH,OAAOpC,IAAI,CAACmC,IAAI;EAClB;EACAE,GAAGA,CAAA;IACD,OAAOrC,IAAI,CAACmC,IAAI;EAClB;;AAGF;;;;AAIA,MAAMG,kBAAkB;EACDC,UAAA;EAArBC,YAAqBD,UAA6B;IAA7B,KAAAA,UAAU,GAAVA,UAAU;EAAsB;EACrDL,OAAOA,CAAA;IACL,OAAOlC,IAAI,CAACyC,OAAO,CAAC1C,MAAM,CAAC2C,KAAK,EAAGA,KAAK,IACtC1C,IAAI,CAACyC,OAAO,CAACC,KAAK,CAACC,iBAAiB,EAAGC,GAAG,IACxC5C,IAAI,CAAC6C,GAAG,CACN1C,GAAG,CAAC2C,IAAI,CAACF,GAAG,CAAC,EACZzC,GAAG,IAAK,CAACuC,KAAK,EAAEvC,GAAG,CAAU,CAC/B,CAAC,CAAC;EACT;EACAiC,KAAKA,CAACW,KAA8C;IAClD,OAAO/C,IAAI,CAACgD,MAAM,CAAChD,IAAI,CAACyC,OAAO,CAC7BM,KAAK,CAAC,CAAC,CAAC,CAACJ,iBAAiB,EACzBC,GAAG,IAAKzC,GAAG,CAACoB,GAAG,CAACwB,KAAK,CAAC,CAAC,CAAC,EAAEH,GAAG,CAAC,CAChC,CAAC;EACJ;EACAP,GAAGA,CACDU,KAA8C,EAC9CE,SAAgC,EAChCC,MAA2B;IAE3B,OAAOlD,IAAI,CAACyC,OAAO,CAACQ,SAAS,EAAGE,MAAM,IACpCA,MAAM,IAAI,CAAC,GACPnD,IAAI,CAACoD,QAAQ,CACbL,KAAK,CAAC,CAAC,CAAC,CAACM,KAAK,CAAC,IAAI,CAACd,UAAU,CAAC,EAC/B,IAAI,CAACF,GAAG,CAACU,KAAK,EAAEE,SAAS,EAAEC,MAAM,CAAC,CACnC,GACC,IAAAxD,SAAA,CAAA4D,IAAI,EACJtD,IAAI,CAACuD,OAAO,CACVpD,GAAG,CAACS,GAAG,CAACmC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjBA,KAAK,CAAC,CAAC,CAAC,CAACJ,iBAAiB,EAC1B,CAACa,KAAK,EAAEC,GAAG,KAAKA,GAAG,GAAGD,KAAK,CAC5B,EACDxD,IAAI,CAACyC,OAAO,CAAEiB,QAAQ,IAAI;MACxB,IAAIA,QAAQ,IAAIlE,QAAQ,CAACmE,QAAQ,CAAC,IAAI,CAACpB,UAAU,CAAC,EAAE;QAClD,OAAOvC,IAAI,CAACoD,QAAQ,CAACF,MAAM,EAAE,IAAI,CAACb,GAAG,CAACU,KAAK,EAAEE,SAAS,EAAEC,MAAM,CAAC,CAAC;MAClE,CAAC,MAAM;QACL,OAAOlD,IAAI,CAACoD,QAAQ,CAACL,KAAK,CAAC,CAAC,CAAC,CAACM,KAAK,CAAC,IAAI,CAACd,UAAU,CAAC,EAAE,IAAI,CAACF,GAAG,CAACU,KAAK,EAAEE,SAAS,EAAEC,MAAM,CAAC,CAAC;MAC3F;IACF,CAAC,CAAC,CACH,CAAC;EACR;;AAGF,MAAMU,QAAQ;EAGDC,OAAA;EACAC,GAAA;EACAC,GAAA;EACAC,cAAA;EACAjB,KAAA;EACAkB,KAAA;EACAC,WAAA;EACA9B,KAAA;EATF,CAACX,UAAU,IAAII,YAAY;EACpCW,YACWqB,OAAyC,EACzCC,GAAW,EACXC,GAAW,EACXC,cAAgC,EAChCjB,KAAyB,EACzBkB,KAAmC,EACnCC,WAAwC,EACxC9B,KAAwD;IAPxD,KAAAyB,OAAO,GAAPA,OAAO;IACP,KAAAC,GAAG,GAAHA,GAAG;IACH,KAAAC,GAAG,GAAHA,GAAG;IACH,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAjB,KAAK,GAALA,KAAK;IACL,KAAAkB,KAAK,GAALA,KAAK;IACL,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAA9B,KAAK,GAALA,KAAK;EACb;EAEH,CAACzC,IAAI,CAACwE,MAAM,IAAC;IACX,OAAO,IAAAzE,SAAA,CAAA4D,IAAI,EACT3D,IAAI,CAACyE,IAAI,CAAC,IAAI,CAACP,OAAO,CAAC,EACvBlE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAAC2E,MAAM,CAAC,IAAI,CAACR,GAAG,CAAC,CAAC,EACnCnE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAAC2E,MAAM,CAAC,IAAI,CAACP,GAAG,CAAC,CAAC,EACnCpE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAACyE,IAAI,CAAC,IAAI,CAACJ,cAAc,CAAC,CAAC,EAC5CrE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAACyE,IAAI,CAAC,IAAI,CAACrB,KAAK,CAAC,CAAC,EACnCpD,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAACyE,IAAI,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC,EACnCtE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAACyE,IAAI,CAAC,IAAI,CAACF,WAAW,CAAC,CAAC,EACzCvE,IAAI,CAAC0E,OAAO,CAAC1E,IAAI,CAACyE,IAAI,CAAC,IAAI,CAAChC,KAAK,CAAC,CAAC,EACnCzC,IAAI,CAAC4E,MAAM,CAAC,IAAI,CAAC,CAClB;EACH;EAEA,CAAC9E,KAAK,CAAC0E,MAAM,EAAEK,IAAa;IAC1B,OAAOC,MAAM,CAACD,IAAI,CAAC,IACjB/E,KAAK,CAACiF,MAAM,CAAC,IAAI,CAACb,OAAO,EAAGW,IAAuB,CAACX,OAAO,CAAC,IAC5D,IAAI,CAACC,GAAG,KAAMU,IAAuB,CAACV,GAAG,IACzC,IAAI,CAACC,GAAG,KAAMS,IAAuB,CAACT,GAAG,IACzCtE,KAAK,CAACiF,MAAM,CAAC,IAAI,CAACV,cAAc,EAAGQ,IAAuB,CAACR,cAAc,CAAC,IAC1EvE,KAAK,CAACiF,MAAM,CAAC,IAAI,CAAC3B,KAAK,EAAGyB,IAAuB,CAACzB,KAAK,CAAC,IACxDtD,KAAK,CAACiF,MAAM,CAAC,IAAI,CAACT,KAAK,EAAGO,IAAuB,CAACP,KAAK,CAAC,IACxDxE,KAAK,CAACiF,MAAM,CAAC,IAAI,CAACR,WAAW,EAAGM,IAAuB,CAACN,WAAW,CAAC,IACpEzE,KAAK,CAACiF,MAAM,CAAC,IAAI,CAACtC,KAAK,EAAGoC,IAAuB,CAACpC,KAAK,CAAC;EAC5D;EAEAkB,IAAIA,CAAA;IACF,OAAO,IAAAzD,SAAA,CAAA8E,aAAa,EAAC,IAAI,EAAEC,SAAS,CAAC;EACvC;EAEA,IAAIhE,GAAGA,CAAA;IACL,MAAMiE,OAAO,GACXC,OAAqF,IAErF9E,IAAI,CAACyC,OAAO,CAACtC,GAAG,CAACS,GAAG,CAAC,IAAI,CAACoD,cAAc,CAAC,EAAGe,IAAI,IAC9CA,IAAI,GACA/E,IAAI,CAACgF,SAAS,GACdhF,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC,IAAI,CAACnC,KAAK,EAAGA,KAAK,IAAI;MAC9C,IAAIA,KAAK,CAACoC,IAAI,GAAG,CAAC,IAAIpC,KAAK,CAACqC,IAAI,IAAI,IAAI,CAACrB,GAAG,EAAE;QAC5C,OAAO,CACL/D,IAAI,CAACyC,OAAO,CACVvC,KAAK,CAACmF,IAAI,CAAC,IAAI,CAACpB,KAAK,CAAC,EACrBqB,SAAS,IACRtF,IAAI,CAACuF,SAAS,CAACD,SAAS,CAACE,MAAM,EAAE;UAC/BC,SAAS,EAAEA,CAAA,KAAMzF,IAAI,CAAC0F,OAAO,CAACJ,SAAS,CAAC;UACxCK,SAAS,EAAGC,IAAI,IACd5F,IAAI,CAACyC,OAAO,CACVtC,GAAG,CAACS,GAAG,CAAC,IAAI,CAACsD,WAAW,CAAC,EACxB3C,GAAG,IAAI;YACN,IAAI,IAAA7B,SAAA,CAAA4D,IAAI,EAAC/B,GAAG,EAAE3B,OAAO,CAACe,GAAG,CAACiF,IAAI,CAAC,CAAC,EAAE;cAChC,OAAO5F,IAAI,CAACoD,QAAQ,CAACyC,eAAe,CAAC,IAAI,EAAEP,SAAS,CAAC,EAAET,OAAO,CAACC,OAAO,CAAC,CAAC;YAC1E;YACA,OAAO9E,IAAI,CAAC0F,OAAO,CAACJ,SAAS,CAAC;UAChC,CAAC;SAEN,CAAC,CACL,EACD;UAAE,GAAGvC,KAAK;UAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;QAAC,CAAE,CAC1B;MACZ;MACA,IAAIpC,KAAK,CAACqC,IAAI,IAAI,CAAC,EAAE;QACnB,OAAO,CACLpF,IAAI,CAACoD,QAAQ,CAAC0C,QAAQ,CAAC,IAAI,EAAEhB,OAAO,CAAC,EAAED,OAAO,CAACC,OAAO,CAAC,CAAC,EACxD;UAAEM,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG,CAAC;UAAED,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;QAAC,CAAE,CACtC;MACZ;MACA,OAAO,CAACnF,IAAI,CAACgF,SAAS,EAAEjC,KAAK,CAAU;IACzC,CAAC,CAAC,CAAC,CAAC;IAEV,MAAMgD,OAAO,GAAIT,SAA0B,IACzCtF,IAAI,CAACuF,SAAS,CAACD,SAAS,CAACE,MAAM,EAAE;MAC/BC,SAAS,EAAEA,CAAA,KACTzF,IAAI,CAACoD,QAAQ,CACXkC,SAAS,CAACU,SAAS,EACnBhG,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC,IAAI,CAACnC,KAAK,EAAGA,KAAK,IAAI;QAC5C,IAAIA,KAAK,CAACqC,IAAI,IAAI,IAAI,CAACtB,GAAG,EAAE;UAC1B,OAAO,CAACmC,sBAAsB,CAAC,IAAI,CAAC,EAAE;YAAE,GAAGlD,KAAK;YAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;UAAC,CAAE,CAAU;QACpF;QACA,OAAO,CAACnF,IAAI,CAACmC,IAAI,EAAE;UAAE,GAAGY,KAAK;UAAEqC,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG;QAAC,CAAE,CAAU;MACjE,CAAC,CAAC,CAAC,CACJ;MACHO,SAAS,EAAGC,IAAI,IACd5F,IAAI,CAACyC,OAAO,CAACtC,GAAG,CAACS,GAAG,CAAC,IAAI,CAACsD,WAAW,CAAC,EAAG3C,GAAG,IAAI;QAC9C,IAAI,IAAA7B,SAAA,CAAA4D,IAAI,EAAC/B,GAAG,EAAE3B,OAAO,CAACe,GAAG,CAACiF,IAAI,CAAC,CAAC,EAAE;UAChC,OAAOC,eAAe,CAAC,IAAI,EAAEP,SAAS,CAAC;QACzC;QACA,OAAO,IAAA5F,SAAA,CAAA4D,IAAI,EACTnD,GAAG,CAAC+F,MAAM,CAAC,IAAI,CAACnD,KAAK,EAAGA,KAAK,KAAM;UAAE,GAAGA,KAAK;UAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;QAAC,CAAE,CAAC,CAAC,EACvEnF,IAAI,CAACoD,QAAQ,CAAClD,KAAK,CAACiG,KAAK,CAAC,IAAI,CAAClC,KAAK,EAAEqB,SAAS,CAAC,CAAC,EACjDtF,IAAI,CAACoD,QAAQ,CAAC,IAAI,CAAChB,KAAK,CAACkD,SAAS,CAACE,MAAM,CAAC,CAAC,EAC3CxF,IAAI,CAACoD,QAAQ,CAACpD,IAAI,CAACoG,UAAU,CAACC,cAAc,CAAC,IAAI,CAAC,EAAElG,GAAG,CAACS,GAAG,CAAC,IAAI,CAACoD,cAAc,CAAC,CAAC,CAAC,CACnF;MACH,CAAC;KACJ,CAAC;IAEJ,OAAO,IAAAtE,SAAA,CAAA4D,IAAI,EACTtD,IAAI,CAACsG,mBAAmB,CAAExB,OAAO,IAC/B9E,IAAI,CAACuG,GAAG,CAAC1B,OAAO,CAACC,OAAO,CAAC,EAAG/D,CAAC,IAAKd,YAAY,CAACuG,YAAY,CAAEC,KAAK,IAAKV,OAAO,CAAChF,CAAC,CAAC,CAAC,CAAC,CACpF,EACDd,YAAY,CAACyG,gBAAgB,EAC7BzG,YAAY,CAAC0G,UAAU,EACvB3G,IAAI,CAACyC,OAAO,CAAC,CAAC,CAACsD,OAAO,EAAET,SAAS,CAAC,KAChC,IAAA5F,SAAA,CAAA4D,IAAI,EACFvD,MAAM,CAAC6G,IAAI,CAACb,OAAO,EAAE,MAAMc,SAAS,CAACvB,SAAS,CAAC,CAAC,EAChDtF,IAAI,CAACoD,QAAQ,CAAC0D,QAAQ,CAACxB,SAAS,CAAC,CAAC,CACnC,CACF,CACF;EACH;EAEAyB,UAAUA,CAACnB,IAAO;IAChB,OAAOzF,GAAG,CAAC+F,MAAM,CAAC,IAAI,CAAChC,WAAW,EAAEtE,OAAO,CAACoH,GAAG,CAACpB,IAAI,CAAC,CAAC;EACxD;;AAGF,MAAME,QAAQ,GAAGA,CACfmB,IAAoB,EACpBnC,OAAqF,KAErF9E,IAAI,CAACyC,OAAO,CAACxC,YAAY,CAACiH,SAAS,EAAE,EAAGC,KAAK,IAC3CnH,IAAI,CAACyC,OAAO,CACVzC,IAAI,CAACoH,IAAI,CAACtC,OAAO,CAAC7E,YAAY,CAACoH,WAAW,CAACJ,IAAI,CAACpD,OAAO,EAAEsD,KAAK,CAAC,CAAC,CAAC,EAChEC,IAAI,IACHpH,IAAI,CAACyC,OAAO,CACVzC,IAAI,CAAC0F,OAAO,CAAkB;EAC5BF,MAAM,EAAE4B,IAAuB;EAC/BpB,SAAS,EAAEhG,IAAI,CAACsH,UAAU,CAACH,KAAK,EAAEnH,IAAI,CAACuH,WAAW,CAAC,KAAK,CAAC,CAAC;CAC3D,CAAC,EACDjC,SAAS,IACR,IAAA5F,SAAA,CAAA4D,IAAI,EACFpD,KAAK,CAACiG,KAAK,CAACc,IAAI,CAAChD,KAAK,EAAEqB,SAAS,CAAC,EAClCtF,IAAI,CAACoD,QAAQ,CAAC6D,IAAI,CAAC7E,KAAK,CAACkD,SAAS,CAACE,MAAM,CAAC,CAAC,EAC3CxF,IAAI,CAACoD,QAAQ,CAACpD,IAAI,CAACoG,UAAU,CAACC,cAAc,CAACY,IAAI,CAAC,EAAE9G,GAAG,CAACS,GAAG,CAACqG,IAAI,CAACjD,cAAc,CAAC,CAAC,CAAC,EAClFhE,IAAI,CAACwH,EAAE,CAAClC,SAAS,CAAC,CACnB,CACJ,CACJ,CAAC;AAEN,MAAMW,sBAAsB,GAC1BgB,IAAoB,IACOjH,IAAI,CAACsG,mBAAmB,CAAExB,OAAO,IAAKgB,QAAQ,CAACmB,IAAI,EAAEnC,OAAO,CAAC,CAAC;AAE3F;;;AAGA,MAAM3B,MAAM,GAAU8D,IAAoB,IACxCjH,IAAI,CAAC6C,GAAG,CAAC1C,GAAG,CAACS,GAAG,CAACqG,IAAI,CAAClE,KAAK,CAAC,EAAGA,KAAK,IAAKA,KAAK,CAACqC,IAAI,GAAGqC,IAAI,CAAC3D,GAAG,CAACmD,IAAI,CAACnD,GAAG,EAAEf,KAAK,CAACoC,IAAI,CAAC,CAAC;AAEvF,MAAMU,eAAe,GAAGA,CACtBoB,IAAoB,EACpB3B,SAA0B,KAE1B,IAAA5F,SAAA,CAAA4D,IAAI,EACFoE,OAAO,CAACpC,SAAS,EAAGvE,CAAC,IAAKZ,GAAG,CAAC+F,MAAM,CAACe,IAAI,CAAC/C,WAAW,EAAEtE,OAAO,CAAC+H,MAAM,CAAC5G,CAAC,CAAC,CAAC,CAAC,EAC1Ef,IAAI,CAACoD,QAAQ,CAACkC,SAAS,CAACU,SAAS,CAAC,EAClChG,IAAI,CAACoD,QAAQ,CACXpD,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC+B,IAAI,CAAClE,KAAK,EAAGA,KAAK,IAAI;EAC5C,IAAIA,KAAK,CAACqC,IAAI,IAAI6B,IAAI,CAACnD,GAAG,EAAE;IAC1B,OAAO,CAACmC,sBAAsB,CAACgB,IAAI,CAAC,EAAE;MAAE,GAAGlE,KAAK;MAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;IAAC,CAAE,CAAU;EACpF;EACA,OAAO,CAACnF,IAAI,CAACmC,IAAI,EAAE;IAAE,GAAGY,KAAK;IAAEqC,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG;EAAC,CAAE,CAAU;AACjE,CAAC,CAAC,CAAC,CACJ,CACF;AAEH;;;;AAIA,MAAMiB,cAAc,GAAUY,IAAoB,IAChDjH,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC+B,IAAI,CAAClE,KAAK,EAAGA,KAAK,IAAI;EAC5C,IAAIA,KAAK,CAACoC,IAAI,GAAG,CAAC,EAAE;IAClB,OAAO,CACLnF,IAAI,CAAC4H,gBAAgB,CAAC1H,KAAK,CAACmF,IAAI,CAAC4B,IAAI,CAAChD,KAAK,CAAC,EAAE;MAC5CwB,SAAS,EAAEA,CAAA,KAAMzF,IAAI,CAACmC,IAAI;MAC1BwD,SAAS,EAAGL,SAAS,IACnB,IAAA5F,SAAA,CAAA4D,IAAI,EACFoE,OAAO,CAACpC,SAAS,EAAGvE,CAAC,IAAKZ,GAAG,CAAC+F,MAAM,CAACe,IAAI,CAAC/C,WAAW,EAAEtE,OAAO,CAAC+H,MAAM,CAAC5G,CAAC,CAAC,CAAC,CAAC,EAC1Ef,IAAI,CAACoD,QAAQ,CAACkC,SAAS,CAACU,SAAS,CAAC,EAClChG,IAAI,CAACoD,QAAQ,CAACjD,GAAG,CAAC+F,MAAM,CAACe,IAAI,CAAClE,KAAK,EAAGA,KAAK,KAAM;QAAE,GAAGA,KAAK;QAAEqC,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG;MAAC,CAAE,CAAC,CAAC,CAAC,EACtFpF,IAAI,CAACyC,OAAO,CAAC,MAAM4D,cAAc,CAACY,IAAI,CAAC,CAAC;KAE7C,CAAC,EACF;MAAE,GAAGlE,KAAK;MAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;IAAC,CAAE,CAC1B;EACZ;EACA,IAAIpC,KAAK,CAACqC,IAAI,GAAG,CAAC,EAAE;IAClB,OAAO,CAACpF,IAAI,CAACmC,IAAI,EAAEY,KAAK,CAAU;EACpC;EACA,OAAO,CAAC7C,KAAK,CAAC2H,QAAQ,CAACZ,IAAI,CAAChD,KAAK,CAAC,EAAE;IAAE,GAAGlB,KAAK;IAAEqC,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG;EAAC,CAAE,CAAU;AAClF,CAAC,CAAC,CAAC;AAEL;;;AAGA,MAAM0C,UAAU,GAAUb,IAAoB,IAC5ChH,YAAY,CAAC8H,eAAe,CAC1B/H,IAAI,CAACsG,mBAAmB,CAAExB,OAAO,IAC/B9E,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC+B,IAAI,CAAClE,KAAK,EAAGA,KAAK,IAAI;EAC5C,IAAIA,KAAK,CAACqC,IAAI,GAAG6B,IAAI,CAACnD,GAAG,IAAIf,KAAK,CAACqC,IAAI,IAAI,CAAC,EAAE;IAC5C,OAAO,CACLU,QAAQ,CAACmB,IAAI,EAAEnC,OAAO,CAAC,EACvB;MAAEM,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG,CAAC;MAAED,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;IAAC,CAAE,CACtC;EACZ;EACA,OAAO,CAACnF,IAAI,CAACmC,IAAI,EAAEY,KAAK,CAAU;AACpC,CAAC,CAAC,CAAC,CACJ,EACDkE,IAAI,CAACnD,GAAG,EACR;EAAEkE,OAAO,EAAE;AAAI,CAAE,CAClB;AAEH;;;AAGA,MAAM9E,MAAM,GAAU+D,IAAoB,IACxCjH,IAAI,CAACiI,eAAe,CAClBjI,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC+B,IAAI,CAAClE,KAAK,EAAGA,KAAK,IAAI;EAC5C,IAAIA,KAAK,CAACqC,IAAI,GAAG6B,IAAI,CAACnD,GAAG,IAAIf,KAAK,CAACoC,IAAI,GAAG,CAAC,EAAE;IAC3C,OAAO,CACL,IAAAzF,SAAA,CAAA4D,IAAI,EACFpD,KAAK,CAACmF,IAAI,CAAC4B,IAAI,CAAChD,KAAK,CAAC,EACtBjE,IAAI,CAACyC,OAAO,CAAE6C,SAAS,IACrB,IAAA5F,SAAA,CAAA4D,IAAI,EACFoE,OAAO,CAACpC,SAAS,EAAGvE,CAAC,IAAKZ,GAAG,CAAC+F,MAAM,CAACe,IAAI,CAAC/C,WAAW,EAAEtE,OAAO,CAAC+H,MAAM,CAAC5G,CAAC,CAAC,CAAC,CAAC,EAC1Ef,IAAI,CAACoD,QAAQ,CAACkC,SAAS,CAACU,SAAS,CAAC,EAClChG,IAAI,CAACoD,QAAQ,CAACjD,GAAG,CAAC+F,MAAM,CAACe,IAAI,CAAClE,KAAK,EAAGA,KAAK,KAAM;MAAE,GAAGA,KAAK;MAAEqC,IAAI,EAAErC,KAAK,CAACqC,IAAI,GAAG;IAAC,CAAE,CAAC,CAAC,CAAC,CACvF,CACF,CACF,EACD;MAAE,GAAGrC,KAAK;MAAEoC,IAAI,EAAEpC,KAAK,CAACoC,IAAI,GAAG;IAAC,CAAE,CAC1B;EACZ;EACA,OAAO,CAACnF,IAAI,CAACmC,IAAI,EAAEY,KAAK,CAAU;AACpC,CAAC,CAAC,CAAC,CACJ;AAEH,MAAM8E,QAAQ,GAAUZ,IAAoB,IAC1CjH,IAAI,CAACiF,OAAO,CAAC9E,GAAG,CAAC+E,MAAM,CAAC+B,IAAI,CAACjD,cAAc,EAAGe,IAAI,IAChDA,IAAI,GACA,CAAC7E,KAAK,CAACgI,aAAa,CAACjB,IAAI,CAAChD,KAAK,CAAC,EAAE,IAAI,CAAU,GAChD,CAACjE,IAAI,CAACoD,QAAQ,CAACiD,cAAc,CAACY,IAAI,CAAC,EAAE/G,KAAK,CAACgI,aAAa,CAACjB,IAAI,CAAChD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAEtF,MAAM4C,SAAS,GAAUI,IAAqB,IAAcjH,IAAI,CAACmI,aAAa,CAAClB,IAAI,CAACzB,MAAM,CAAC;AAE3F,MAAMkC,OAAO,GAAGA,CACdT,IAAqB,EACrBmB,CAA0C,KAE1CpI,IAAI,CAACuF,SAAS,CAAC0B,IAAI,CAACzB,MAAM,EAAE;EAC1BC,SAAS,EAAEA,CAAA,KAAMzF,IAAI,CAACmC,IAAI;EAC1BwD,SAAS,EAAEyC;CACZ,CAAC;AAEJ,MAAMtB,QAAQ,GAAUG,IAAqB,IAA0BA,IAAI,CAACzB,MAAM;AAElF;;;;;AAKA,MAAM6C,QAAQ,GACZC,OAKC,IAEDtI,IAAI,CAACsG,mBAAmB,CAAExB,OAAO,IAC/B,IAAApF,SAAA,CAAA4D,IAAI,EACFrD,YAAY,CAACsI,GAAG,CAAC,CACfvI,IAAI,CAACwI,OAAO,EAAK,EACjBrI,GAAG,CAAC2C,IAAI,CAAC,KAAK,CAAC,EACf3C,GAAG,CAAC2C,IAAI,CAAY;EAAEsC,IAAI,EAAE,CAAC;EAAED,IAAI,EAAE;AAAC,CAAE,CAAC,EACzCjF,KAAK,CAACuI,OAAO,CAAkBH,OAAO,CAACvE,GAAG,CAAC,EAC3C5D,GAAG,CAAC2C,IAAI,CAAClD,OAAO,CAAC8I,KAAK,EAAK,CAAC,EAC5BJ,OAAO,CAACK,QAAQ,CAACzG,OAAO,EAAE,CAC3B,CAAC,EACFlC,IAAI,CAACyC,OAAO,CAAC,CAAC,CAAC+F,OAAO,EAAEzD,IAAI,EAAEhC,KAAK,EAAEkB,KAAK,EAAE2E,GAAG,EAAE1G,OAAO,CAAC,KAAI;EAC3D,MAAM2G,IAAI,GAAG,IAAIjF,QAAQ,CACvB5D,IAAI,CAAC8I,eAAe,CAACR,OAAO,CAACzD,OAAO,EAAGkE,GAAG,IAAK1J,OAAO,CAAC2J,KAAK,CAACD,GAAG,CAAC,CAACP,OAAO,CAAC,CAAC,EAC3EF,OAAO,CAACxE,GAAG,EACXwE,OAAO,CAACvE,GAAG,EACXgB,IAAI,EACJhC,KAAK,EACLkB,KAAK,EACL2E,GAAG,EACFxB,IAAI,IAAKkB,OAAO,CAACK,QAAQ,CAACvG,KAAK,CAACF,OAAO,EAAEkF,IAAI,CAAC,CAChD;EACD,OAAO,IAAA1H,SAAA,CAAA4D,IAAI,EACTrD,YAAY,CAACgJ,UAAU,CAACnE,OAAO,CAACgD,UAAU,CAACe,IAAI,CAAC,CAAC,CAAC,EAClD7I,IAAI,CAACyC,OAAO,CAAEyG,KAAK,IACjBlJ,IAAI,CAACyC,OAAO,CACVxC,YAAY,CAACgJ,UAAU,CAACnE,OAAO,CAACwD,OAAO,CAACK,QAAQ,CAACtG,GAAG,CAACH,OAAO,EAAEiB,MAAM,CAAC0F,IAAI,CAAC,EAAE3F,MAAM,CAAC2F,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1F3F,MAAM,IACLjD,YAAY,CAACuG,YAAY,CAAC,MACxB,IAAA9G,SAAA,CAAA4D,IAAI,EACFuE,QAAQ,CAACgB,IAAI,CAAC,EACd7I,IAAI,CAACoD,QAAQ,CAACpD,IAAI,CAACmJ,cAAc,CAACD,KAAK,CAAC,CAAC,EACzClJ,IAAI,CAACoD,QAAQ,CAACpD,IAAI,CAACmJ,cAAc,CAACjG,MAAM,CAAC,CAAC,CAC3C,CACF,CACJ,CACF,EACDlD,IAAI,CAACwH,EAAE,CAAkBqB,IAAI,CAAC,CAC/B;AACH,CAAC,CAAC,CACH,CACF;AAEH;AACO,MAAMpE,MAAM,GAAItD,CAAU,IAAuC,IAAArB,UAAA,CAAAsJ,WAAW,EAACjI,CAAC,EAAEM,UAAU,CAAC;AAElG;AAAAC,OAAA,CAAA+C,MAAA,GAAAA,MAAA;AACO,MAAM3B,IAAI,GACfwF,OAGC,IAEDD,QAAQ,CAAC;EACPxD,OAAO,EAAEyD,OAAO,CAACzD,OAAO;EACxBf,GAAG,EAAEwE,OAAO,CAAClD,IAAI;EACjBrB,GAAG,EAAEuE,OAAO,CAAClD,IAAI;EACjBuD,QAAQ,EAAE,IAAI1G,YAAY;CAC3B,CAAC;AAEJ;AAAAP,OAAA,CAAAoB,IAAA,GAAAA,IAAA;AACO,MAAMuG,WAAW,GACtBf,OAKC,IAEDD,QAAQ,CAAC;EACPxD,OAAO,EAAEyD,OAAO,CAACzD,OAAO;EACxBf,GAAG,EAAEwE,OAAO,CAACxE,GAAG;EAChBC,GAAG,EAAEuE,OAAO,CAACvE,GAAG;EAChB4E,QAAQ,EAAE,IAAIrG,kBAAkB,CAAC9C,QAAQ,CAAC8J,MAAM,CAAChB,OAAO,CAAC/F,UAAU,CAAC;CACrE,CAAC;AAEJ;AAAAb,OAAA,CAAA2H,WAAA,GAAAA,WAAA;AACO,MAAMzI,GAAG,GAAUqG,IAAqB,IAAuCA,IAAI,CAACrG,GAAG;AAE9F;AAAAc,OAAA,CAAAd,GAAA,GAAAA,GAAA;AACO,MAAMmG,UAAU,GAAArF,OAAA,CAAAqF,UAAA,gBAAG,IAAArH,SAAA,CAAA6J,IAAI,EAG5B,CAAC,EAAE,CAACtC,IAAI,EAAEuC,KAAK,KAAKvC,IAAI,CAACF,UAAU,CAACyC,KAAK,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"pool.js","names":["Context","_interopRequireWildcard","require","Duration","_Function","Iterable","_Pipeable","_Predicate","coreEffect","core","defaultServices","circular","fiberRuntime","internalQueue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PoolTypeId","exports","Symbol","for","poolVariance","_E","_","_A","isPool","hasProperty","makeWith","options","uninterruptibleMask","restore","flatMap","context","scope","scopeTag","acquire","mapInputContext","input","merge","pool","PoolImpl","concurrency","min","max","strategy","Math","targetUtilization","initialize","tap","forkDaemon","resize","fiber","addFinalizer","interruptFiber","runStrategy","run","succeed","pipe","zipLeft","shutdown","make","size","strategyNoop","makeWithTTL","timeToLiveStrategy","strategyCreationTTL","timeToLive","strategyUsageTTL","self","invalidate","dual","item","minSize","maxSize","isShuttingDown","semaphore","items","Set","available","invalidated","waiters","constructor","unsafeMakeSemaphore","allocate","acquireUseRelease","scopeMake","scopeExtend","exit","finalizer","catchAllCause","close","reportUnhandledError","refCount","add","as","_tag","onAcquire","zipRight","void","currentUsage","count","targetSize","utilization","target","ceil","activeSize","resizeLoop","suspend","resizeSemaphore","withPermits","getPoolItem","take","interrupt","sync","unsafeHead","ensuring","delete","release","invalidatePoolItem","onInterrupt","poolItem","value","uninterruptible","forEachSequentialDiscard","releaseAll","pipeArguments","arguments","ttl","clockWith","clock","map","unbounded","queue","ttlMillis","toMillis","creationTimes","identity","process","now","unsafeCurrentTimeMillis","created","remaining","delay","forever","offer","excess","cause","withFiberRuntime","unhandledLogLevel","getFiberRef","currentUnhandledErrorLogLevel","log"],"sources":["../../../src/internal/pool.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,OAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,QAAA,gBAAAF,uBAAA,eAAAC,OAAA;AAGA,IAAAE,SAAA,gBAAAF,OAAA;AACA,IAAAG,QAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AACA,IAAAI,SAAA,gBAAAJ,OAAA;AAEA,IAAAK,UAAA,gBAAAL,OAAA;AAEA,IAAAM,UAAA,gBAAAP,uBAAA,eAAAC,OAAA;AACA,IAAAO,IAAA,gBAAAR,uBAAA,eAAAC,OAAA;AACA,IAAAQ,eAAA,gBAAAT,uBAAA,eAAAC,OAAA;AACA,IAAAS,QAAA,gBAAAV,uBAAA,eAAAC,OAAA;AACA,IAAAU,YAAA,gBAAAX,uBAAA,eAAAC,OAAA;AACA,IAAAW,aAAA,gBAAAZ,uBAAA,eAAAC,OAAA;AAA2C,SAAAY,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAd,wBAAAc,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAE3C;AACO,MAAMW,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAgBE,MAAM,CAACC,GAAG,CAAC,aAAa,CAAgB;AAE/E,MAAMC,YAAY,GAAG;EACnB;EACAC,EAAE,EAAGC,CAAQ,IAAKA,CAAC;EACnB;EACAC,EAAE,EAAGD,CAAM,IAAKA;CACjB;AAED;AACO,MAAME,MAAM,GAAIb,CAAU,IAAkC,IAAAtB,UAAA,CAAAoC,WAAW,EAACd,CAAC,EAAEK,UAAU,CAAC;AAE7F;AAAAC,OAAA,CAAAO,MAAA,GAAAA,MAAA;AACO,MAAME,QAAQ,GAAaC,OAOjC,IACCpC,IAAI,CAACqC,mBAAmB,CAAEC,OAAO,IAC/BtC,IAAI,CAACuC,OAAO,CAACvC,IAAI,CAACwC,OAAO,EAAa,EAAGA,OAAO,IAAI;EAClD,MAAMC,KAAK,GAAGlD,OAAO,CAACsB,GAAG,CAAC2B,OAAO,EAAErC,YAAY,CAACuC,QAAQ,CAAC;EACzD,MAAMC,OAAO,GAAG3C,IAAI,CAAC4C,eAAe,CAClCR,OAAO,CAACO,OAAO,EACdE,KAAK,IAAKtD,OAAO,CAACuD,KAAK,CAACN,OAAO,EAAEK,KAAK,CAAC,CAKzC;EACD,MAAME,IAAI,GAAG,IAAIC,QAAQ,CACvBL,OAAO,EACPP,OAAO,CAACa,WAAW,IAAI,CAAC,EACxBb,OAAO,CAACc,GAAG,EACXd,OAAO,CAACe,GAAG,EACXf,OAAO,CAACgB,QAAQ,EAChBC,IAAI,CAACH,GAAG,CAACG,IAAI,CAACF,GAAG,CAACf,OAAO,CAACkB,iBAAiB,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAC3D;EACD,MAAMC,UAAU,GAAGvD,IAAI,CAACwD,GAAG,CAACrD,YAAY,CAACsD,UAAU,CAACnB,OAAO,CAACS,IAAI,CAACW,MAAM,CAAC,CAAC,EAAGC,KAAK,IAC/ElB,KAAK,CAACmB,YAAY,CAAC,MAAM5D,IAAI,CAAC6D,cAAc,CAACF,KAAK,CAAC,CAAC,CAAC;EACvD,MAAMG,WAAW,GAAG9D,IAAI,CAACwD,GAAG,CAACrD,YAAY,CAACsD,UAAU,CAACnB,OAAO,CAACF,OAAO,CAACgB,QAAQ,CAACW,GAAG,CAAChB,IAAI,CAAC,CAAC,CAAC,EAAGY,KAAK,IAC/FlB,KAAK,CAACmB,YAAY,CAAC,MACjB5D,IAAI,CAAC6D,cAAc,CAACF,KAAK,CAAC,CAC3B,CAAC;EACJ,OAAO3D,IAAI,CAACgE,OAAO,CAACjB,IAAI,CAAC,CAACkB,IAAI,CAC5BjE,IAAI,CAACkE,OAAO,CAACzB,KAAK,CAACmB,YAAY,CAAC,MAC9Bb,IAAI,CAACoB,QAAQ,CACd,CAAC,EACFnE,IAAI,CAACkE,OAAO,CAACX,UAAU,CAAC,EACxBvD,IAAI,CAACkE,OAAO,CAACJ,WAAW,CAAC,CAC1B;AACH,CAAC,CAAC,CACH;AAEH;AAAApC,OAAA,CAAAS,QAAA,GAAAA,QAAA;AACO,MAAMiC,IAAI,GAAahC,OAK7B,IACCD,QAAQ,CAAC;EAAE,GAAGC,OAAO;EAAEc,GAAG,EAAEd,OAAO,CAACiC,IAAI;EAAElB,GAAG,EAAEf,OAAO,CAACiC,IAAI;EAAEjB,QAAQ,EAAEkB,YAAY;AAAE,CAAE,CAAC;AAE1F;AAAA5C,OAAA,CAAA0C,IAAA,GAAAA,IAAA;AACO,MAAMG,WAAW,GAAanC,OAQpC,IACCpC,IAAI,CAACuC,OAAO,CACVH,OAAO,CAACoC,kBAAkB,KAAK,UAAU,GACvCC,mBAAmB,CAAOrC,OAAO,CAACsC,UAAU,CAAC,GAC7CC,gBAAgB,CAAOvC,OAAO,CAACsC,UAAU,CAAC,EAC3CtB,QAAQ,IAAKjB,QAAQ,CAAC;EAAE,GAAGC,OAAO;EAAEgB;AAAQ,CAAE,CAAC,CACjD;AAEH;AAAA1B,OAAA,CAAA6C,WAAA,GAAAA,WAAA;AACO,MAAM1D,GAAG,GAAU+D,IAAgB,IAA0BA,IAAI,CAAC/D,GAAG;AAE5E;AAAAa,OAAA,CAAAb,GAAA,GAAAA,GAAA;AACO,MAAMgE,UAAU,GAAAnD,OAAA,CAAAmD,UAAA,gBAGnB,IAAAlF,SAAA,CAAAmF,IAAI,EAAC,CAAC,EAAE,CAAOF,IAAgB,EAAEG,IAAO,KAAmBH,IAAI,CAACC,UAAU,CAACE,IAAI,CAAC,CAAC;AAarF,MAAM/B,QAAQ;EAWDL,OAAA;EACAM,WAAA;EACA+B,OAAA;EACAC,OAAA;EACA7B,QAAA;EACAE,iBAAA;EAfF,CAAC7B,UAAU;EAEpByD,cAAc,GAAG,KAAK;EACbC,SAAS;EACTC,KAAK,GAAG,IAAIC,GAAG,EAAkB;EACjCC,SAAS,GAAG,IAAID,GAAG,EAAkB;EACrCE,WAAW,GAAG,IAAIF,GAAG,EAAkB;EAChDG,OAAO,GAAG,CAAC;EAEXC,YACW9C,OAA4B,EAC5BM,WAAmB,EACnB+B,OAAe,EACfC,OAAe,EACf7B,QAAwB,EACxBE,iBAAyB;IALzB,KAAAX,OAAO,GAAPA,OAAO;IACP,KAAAM,WAAW,GAAXA,WAAW;IACX,KAAA+B,OAAO,GAAPA,OAAO;IACP,KAAAC,OAAO,GAAPA,OAAO;IACP,KAAA7B,QAAQ,GAARA,QAAQ;IACR,KAAAE,iBAAiB,GAAjBA,iBAAiB;IAE1B,IAAI,CAAC7B,UAAU,CAAC,GAAGI,YAAY;IAC/B,IAAI,CAACsD,SAAS,GAAGjF,QAAQ,CAACwF,mBAAmB,CAACzC,WAAW,GAAGgC,OAAO,CAAC;EACtE;EAESU,QAAQ,GAA2B3F,IAAI,CAAC4F,iBAAiB,CAChEzF,YAAY,CAAC0F,SAAS,EAAE,EACvBpD,KAAK,IACJ,IAAI,CAACE,OAAO,CAACsB,IAAI,CACf9D,YAAY,CAAC2F,WAAW,CAACrD,KAAK,CAAC,EAC/BzC,IAAI,CAAC+F,IAAI,EACT/F,IAAI,CAACuC,OAAO,CAAEwD,IAAI,IAAI;IACpB,MAAMhB,IAAI,GAAmB;MAC3BgB,IAAI;MACJC,SAAS,EAAEhG,IAAI,CAACiG,aAAa,CAACxD,KAAK,CAACyD,KAAK,CAACH,IAAI,CAAC,EAAEI,oBAAoB,CAAC;MACtEC,QAAQ,EAAE;KACX;IACD,IAAI,CAAChB,KAAK,CAACiB,GAAG,CAACtB,IAAI,CAAC;IACpB,IAAI,CAACO,SAAS,CAACe,GAAG,CAACtB,IAAI,CAAC;IACxB,OAAO/E,IAAI,CAACsG,EAAE,CACZP,IAAI,CAACQ,IAAI,KAAK,SAAS,GACnB,IAAI,CAACnD,QAAQ,CAACoD,SAAS,CAACzB,IAAI,CAAC,GAC7B/E,IAAI,CAACyG,QAAQ,CAAC1B,IAAI,CAACiB,SAAS,EAAE,IAAI,CAAC5C,QAAQ,CAACoD,SAAS,CAACzB,IAAI,CAAC,CAAC,EAChEA,IAAI,CACL;EACH,CAAC,CAAC,CACH,EACH,CAACtC,KAAK,EAAEsD,IAAI,KAAKA,IAAI,CAACQ,IAAI,KAAK,SAAS,GAAG9D,KAAK,CAACyD,KAAK,CAACH,IAAI,CAAC,GAAG/F,IAAI,CAAC0G,IAAI,CACzE;EAED,IAAIC,YAAYA,CAAA;IACd,IAAIC,KAAK,GAAG,IAAI,CAACpB,OAAO;IACxB,KAAK,MAAMT,IAAI,IAAI,IAAI,CAACK,KAAK,EAAE;MAC7BwB,KAAK,IAAI7B,IAAI,CAACqB,QAAQ;IACxB;IACA,OAAOQ,KAAK;EACd;EAEA,IAAIC,UAAUA,CAAA;IACZ,IAAI,IAAI,CAAC3B,cAAc,EAAE,OAAO,CAAC;IACjC,MAAM4B,WAAW,GAAG,IAAI,CAACH,YAAY,GAAG,IAAI,CAACrD,iBAAiB;IAC9D,MAAMyD,MAAM,GAAG1D,IAAI,CAAC2D,IAAI,CAACF,WAAW,GAAG,IAAI,CAAC7D,WAAW,CAAC;IACxD,OAAOI,IAAI,CAACH,GAAG,CAACG,IAAI,CAACF,GAAG,CAAC,IAAI,CAAC6B,OAAO,EAAE+B,MAAM,CAAC,EAAE,IAAI,CAAC9B,OAAO,CAAC;EAC/D;EAEA,IAAIgC,UAAUA,CAAA;IACZ,OAAO,IAAI,CAAC7B,KAAK,CAACf,IAAI,GAAG,IAAI,CAACkB,WAAW,CAAClB,IAAI;EAChD;EAES6C,UAAU,GAAiBlH,IAAI,CAACmH,OAAO,CAAC,MAAK;IACpD,IAAI,IAAI,CAACF,UAAU,IAAI,IAAI,CAACJ,UAAU,EAAE;MACtC,OAAO7G,IAAI,CAAC0G,IAAI;IAClB;IACA,OAAO1G,IAAI,CAACyG,QAAQ,CAAC,IAAI,CAACd,QAAQ,EAAE,IAAI,CAACuB,UAAU,CAAC;EACtD,CAAC,CAAC;EACOE,eAAe,GAAGlH,QAAQ,CAACwF,mBAAmB,CAAC,CAAC,CAAC;EACjDhC,MAAM,GAAG,IAAI,CAAC0D,eAAe,CAACC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAACH,UAAU,CAAC;EAE7DI,WAAW,GAAyCtH,IAAI,CAACqC,mBAAmB,CAAEC,OAAO,IAC5FA,OAAO,CAAC,IAAI,CAAC6C,SAAS,CAACoC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACtD,IAAI,CAClCjE,IAAI,CAACyG,QAAQ,CAACtG,YAAY,CAACuC,QAAQ,CAAC,EACpC1C,IAAI,CAACuC,OAAO,CAAEE,KAAK,IACjBzC,IAAI,CAACmH,OAAO,CAAC,MAAK;IAChB,IAAI,CAAC3B,OAAO,EAAE;IACd,IAAI,IAAI,CAACN,cAAc,EAAE;MACvB,OAAOlF,IAAI,CAACwH,SAAS;IACvB,CAAC,MAAM,IAAI,IAAI,CAACX,UAAU,GAAG,IAAI,CAACI,UAAU,EAAE;MAC5C,OAAOjH,IAAI,CAACyG,QAAQ,CAClBnE,OAAO,CAAC,IAAI,CAACoB,MAAM,CAAC,EACpB1D,IAAI,CAACyH,IAAI,CAAC,MAAM7H,QAAQ,CAAC8H,UAAU,CAAC,IAAI,CAACpC,SAAS,CAAC,CAAC,CACrD;IACH;IACA,OAAOtF,IAAI,CAACgE,OAAO,CAACpE,QAAQ,CAAC8H,UAAU,CAAC,IAAI,CAACpC,SAAS,CAAC,CAAC;EAC1D,CAAC,CAAC,CAACrB,IAAI,CACL9D,YAAY,CAACwH,QAAQ,CAAC3H,IAAI,CAACyH,IAAI,CAAC,MAAM,IAAI,CAACjC,OAAO,EAAE,CAAC,CAAC,EACtDxF,IAAI,CAACwD,GAAG,CAAEuB,IAAI,IAAI;IAChB,IAAIA,IAAI,CAACgB,IAAI,CAACQ,IAAI,KAAK,SAAS,EAAE;MAChC,IAAI,CAACnB,KAAK,CAACwC,MAAM,CAAC7C,IAAI,CAAC;MACvB,IAAI,CAACQ,WAAW,CAACqC,MAAM,CAAC7C,IAAI,CAAC;MAC7B,IAAI,CAACO,SAAS,CAACsC,MAAM,CAAC7C,IAAI,CAAC;MAC3B,OAAO,IAAI,CAACI,SAAS,CAAC0C,OAAO,CAAC,CAAC,CAAC;IAClC;IACA9C,IAAI,CAACqB,QAAQ,EAAE;IACf,IAAI,CAACd,SAAS,CAACsC,MAAM,CAAC7C,IAAI,CAAC;IAC3B,IAAIA,IAAI,CAACqB,QAAQ,GAAG,IAAI,CAACnD,WAAW,EAAE;MACpC,IAAI,CAACqC,SAAS,CAACe,GAAG,CAACtB,IAAI,CAAC;IAC1B;IACA,OAAOtC,KAAK,CAACmB,YAAY,CAAC,MACxB5D,IAAI,CAACyG,QAAQ,CACXzG,IAAI,CAACmH,OAAO,CAAC,MAAK;MAChBpC,IAAI,CAACqB,QAAQ,EAAE;MACf,IAAI,IAAI,CAACb,WAAW,CAAC3E,GAAG,CAACmE,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC+C,kBAAkB,CAAC/C,IAAI,CAAC;MACtC;MACA,IAAI,CAACO,SAAS,CAACe,GAAG,CAACtB,IAAI,CAAC;MACxB,OAAO/E,IAAI,CAAC0G,IAAI;IAClB,CAAC,CAAC,EACF,IAAI,CAACvB,SAAS,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAC1B,CACF;EACH,CAAC,CAAC,EACF7H,IAAI,CAAC+H,WAAW,CAAC,MAAM,IAAI,CAAC5C,SAAS,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAAC,CAClD,CACF,CACF,CACF;EAEQhH,GAAG,GAAwBb,IAAI,CAACuC,OAAO,CAC9CvC,IAAI,CAACmH,OAAO,CAAC,MAAM,IAAI,CAACjC,cAAc,GAAGlF,IAAI,CAACwH,SAAS,GAAG,IAAI,CAACF,WAAW,CAAC,EAC1EvF,CAAC,IAAKA,CAAC,CAACgE,IAAI,CACd;EAEDlB,UAAUA,CAACE,IAAO;IAChB,OAAO/E,IAAI,CAACmH,OAAO,CAAC,MAAK;MACvB,IAAI,IAAI,CAACjC,cAAc,EAAE,OAAOlF,IAAI,CAAC0G,IAAI;MACzC,KAAK,MAAMsB,QAAQ,IAAI,IAAI,CAAC5C,KAAK,EAAE;QACjC,IAAI4C,QAAQ,CAACjC,IAAI,CAACQ,IAAI,KAAK,SAAS,IAAIyB,QAAQ,CAACjC,IAAI,CAACkC,KAAK,KAAKlD,IAAI,EAAE;UACpE,OAAO/E,IAAI,CAACkI,eAAe,CAAC,IAAI,CAACJ,kBAAkB,CAACE,QAAQ,CAAC,CAAC;QAChE;MACF;MACA,OAAOhI,IAAI,CAAC0G,IAAI;IAClB,CAAC,CAAC;EACJ;EAEAoB,kBAAkBA,CAACE,QAAwB;IACzC,OAAOhI,IAAI,CAACmH,OAAO,CAAC,MAAK;MACvB,IAAI,CAAC,IAAI,CAAC/B,KAAK,CAACxE,GAAG,CAACoH,QAAQ,CAAC,EAAE;QAC7B,OAAOhI,IAAI,CAAC0G,IAAI;MAClB,CAAC,MAAM,IAAIsB,QAAQ,CAAC5B,QAAQ,KAAK,CAAC,EAAE;QAClC,IAAI,CAAChB,KAAK,CAACwC,MAAM,CAACI,QAAQ,CAAC;QAC3B,IAAI,CAAC1C,SAAS,CAACsC,MAAM,CAACI,QAAQ,CAAC;QAC/B,IAAI,CAACzC,WAAW,CAACqC,MAAM,CAACI,QAAQ,CAAC;QACjC,OAAOhI,IAAI,CAACyG,QAAQ,CAACuB,QAAQ,CAAChC,SAAS,EAAE,IAAI,CAACtC,MAAM,CAAC;MACvD;MACA,IAAI,CAAC6B,WAAW,CAACc,GAAG,CAAC2B,QAAQ,CAAC;MAC9B,IAAI,CAAC1C,SAAS,CAACsC,MAAM,CAACI,QAAQ,CAAC;MAC/B,OAAOhI,IAAI,CAAC0G,IAAI;IAClB,CAAC,CAAC;EACJ;EAEA,IAAIvC,QAAQA,CAAA;IACV,OAAOnE,IAAI,CAACmH,OAAO,CAAC,MAAK;MACvB,IAAI,IAAI,CAACjC,cAAc,EAAE,OAAOlF,IAAI,CAAC0G,IAAI;MACzC,IAAI,CAACxB,cAAc,GAAG,IAAI;MAC1B,MAAMb,IAAI,GAAG,IAAI,CAACe,KAAK,CAACf,IAAI;MAC5B,MAAMc,SAAS,GAAGjF,QAAQ,CAACwF,mBAAmB,CAACrB,IAAI,CAAC;MACpD,OAAOrE,IAAI,CAACmI,wBAAwB,CAAC,IAAI,CAAC/C,KAAK,EAAGL,IAAI,IAAI;QACxD,IAAIA,IAAI,CAACqB,QAAQ,GAAG,CAAC,EAAE;UACrBrB,IAAI,CAACiB,SAAS,GAAGhG,IAAI,CAACkE,OAAO,CAACa,IAAI,CAACiB,SAAS,EAAEb,SAAS,CAAC0C,OAAO,CAAC,CAAC,CAAC,CAAC;UACnE,IAAI,CAACtC,WAAW,CAACc,GAAG,CAACtB,IAAI,CAAC;UAC1B,OAAOI,SAAS,CAACoC,IAAI,CAAC,CAAC,CAAC;QAC1B;QACA,IAAI,CAACnC,KAAK,CAACwC,MAAM,CAAC7C,IAAI,CAAC;QACvB,IAAI,CAACO,SAAS,CAACsC,MAAM,CAAC7C,IAAI,CAAC;QAC3B,IAAI,CAACQ,WAAW,CAACqC,MAAM,CAAC7C,IAAI,CAAC;QAC7B,OAAOA,IAAI,CAACiB,SAAS;MACvB,CAAC,CAAC,CAAC/B,IAAI,CACLjE,IAAI,CAACyG,QAAQ,CAAC,IAAI,CAACtB,SAAS,CAACiD,UAAU,CAAC,EACxCpI,IAAI,CAACyG,QAAQ,CAACtB,SAAS,CAACoC,IAAI,CAAClD,IAAI,CAAC,CAAC,CACpC;IACH,CAAC,CAAC;EACJ;EAEAJ,IAAIA,CAAA;IACF,OAAO,IAAApE,SAAA,CAAAwI,aAAa,EAAC,IAAI,EAAEC,SAAS,CAAC;EACvC;;AAGF,MAAMhE,YAAY,GAAGA,CAAA,MAA6B;EAChDP,GAAG,EAAGhC,CAAC,IAAK/B,IAAI,CAAC0G,IAAI;EACrBF,SAAS,EAAGzE,CAAC,IAAK/B,IAAI,CAAC0G;CACxB,CAAC;AAEF,MAAMjC,mBAAmB,GAAU8D,GAA2B,IAC5DtI,eAAe,CAACuI,SAAS,CAAEC,KAAK,IAC9BzI,IAAI,CAAC0I,GAAG,CAACtI,aAAa,CAACuI,SAAS,EAAkB,EAAGC,KAAK,IAAI;EAC5D,MAAMC,SAAS,GAAGnJ,QAAQ,CAACoJ,QAAQ,CAACP,GAAG,CAAC;EACxC,MAAMQ,aAAa,GAAG,IAAIxI,OAAO,EAA0B;EAC3D,OAAO,IAAAZ,SAAA,CAAAqJ,QAAQ,EAAiB;IAC9BjF,GAAG,EAAGhB,IAAI,IAAI;MACZ,MAAMkG,OAAO,GAAIlE,IAAoB,IACnC/E,IAAI,CAACmH,OAAO,CAAC,MAAK;QAChB,IAAI,CAACpE,IAAI,CAACqC,KAAK,CAACxE,GAAG,CAACmE,IAAI,CAAC,IAAIhC,IAAI,CAACwC,WAAW,CAAC3E,GAAG,CAACmE,IAAI,CAAC,EAAE;UACvD,OAAO/E,IAAI,CAAC0G,IAAI;QAClB;QACA,MAAMwC,GAAG,GAAGT,KAAK,CAACU,uBAAuB,EAAE;QAC3C,MAAMC,OAAO,GAAGL,aAAa,CAAClI,GAAG,CAACkE,IAAI,CAAE;QACxC,MAAMsE,SAAS,GAAGR,SAAS,IAAIK,GAAG,GAAGE,OAAO,CAAC;QAC7C,OAAOC,SAAS,GAAG,CAAC,GAChBtJ,UAAU,CAACuJ,KAAK,CAACL,OAAO,CAAClE,IAAI,CAAC,EAAEsE,SAAS,CAAC,GAC1CtG,IAAI,CAAC+E,kBAAkB,CAAC/C,IAAI,CAAC;MACnC,CAAC,CAAC;MACJ,OAAO6D,KAAK,CAACrB,IAAI,CAACtD,IAAI,CACpBjE,IAAI,CAACwD,GAAG,CAACyF,OAAO,CAAC,EACjBlJ,UAAU,CAACwJ,OAAO,CACnB;IACH,CAAC;IACD/C,SAAS,EAAGzB,IAAI,IACd/E,IAAI,CAACmH,OAAO,CAAC,MAAK;MAChB4B,aAAa,CAACvH,GAAG,CAACuD,IAAI,EAAE0D,KAAK,CAACU,uBAAuB,EAAE,CAAC;MACxD,OAAOP,KAAK,CAACY,KAAK,CAACzE,IAAI,CAAC;IAC1B,CAAC;GACJ,CAAC;AACJ,CAAC,CAAC,CACH;AAEH,MAAMJ,gBAAgB,GAAU4D,GAA2B,IACzDvI,IAAI,CAAC0I,GAAG,CAACtI,aAAa,CAACuI,SAAS,EAAkB,EAAGC,KAAK,IAAI;EAC5D,OAAO,IAAAjJ,SAAA,CAAAqJ,QAAQ,EAAiB;IAC9BjF,GAAG,EAAGhB,IAAI,IAAI;MACZ,MAAMkG,OAAO,GAAiBjJ,IAAI,CAACmH,OAAO,CAAC,MAAK;QAC9C,MAAMsC,MAAM,GAAG1G,IAAI,CAACkE,UAAU,GAAGlE,IAAI,CAAC8D,UAAU;QAChD,IAAI4C,MAAM,IAAI,CAAC,EAAE,OAAOzJ,IAAI,CAAC0G,IAAI;QACjC,OAAOkC,KAAK,CAACrB,IAAI,CAACtD,IAAI,CACpBjE,IAAI,CAACwD,GAAG,CAAEuB,IAAI,IAAKhC,IAAI,CAAC+E,kBAAkB,CAAC/C,IAAI,CAAC,CAAC,EACjD/E,IAAI,CAACyG,QAAQ,CAACwC,OAAO,CAAC,CACvB;MACH,CAAC,CAAC;MACF,OAAOA,OAAO,CAAChF,IAAI,CACjBlE,UAAU,CAACuJ,KAAK,CAACf,GAAG,CAAC,EACrBxI,UAAU,CAACwJ,OAAO,CACnB;IACH,CAAC;IACD/C,SAAS,EAAGzB,IAAI,IAAK6D,KAAK,CAACY,KAAK,CAACzE,IAAI;GACtC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAMoB,oBAAoB,GAAOuD,KAAe,IAC9C1J,IAAI,CAAC2J,gBAAgB,CAAQhG,KAAK,IAAI;EACpC,MAAMiG,iBAAiB,GAAGjG,KAAK,CAACkG,WAAW,CAAC7J,IAAI,CAAC8J,6BAA6B,CAAC;EAC/E,IAAIF,iBAAiB,CAACrD,IAAI,KAAK,MAAM,EAAE;IACrC5C,KAAK,CAACoG,GAAG,CAAC,mCAAmC,EAAEL,KAAK,EAAEE,iBAAiB,CAAC;EAC1E;EACA,OAAO5J,IAAI,CAAC0G,IAAI;AAClB,CAAC,CAAC","ignoreList":[]}
|