| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 (function() { 2 "use strict"; 3 var wp; 4 (wp ||= {}).reduxRoutine = (() => { 5 var __create = Object.create; 6 var __defProp = Object.defineProperty; 7 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 8 var __getOwnPropNames = Object.getOwnPropertyNames; 9 var __getProtoOf = Object.getPrototypeOf; 10 var __hasOwnProp = Object.prototype.hasOwnProperty; 11 var __commonJS = (cb, mod) => function __require() { 12 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 13 }; 14 var __export = (target, all) => { 15 for (var name in all) 16 __defProp(target, name, { get: all[name], enumerable: true }); 17 }; 18 var __copyProps = (to, from, except, desc) => { 19 if (from && typeof from === "object" || typeof from === "function") { 20 for (let key of __getOwnPropNames(from)) 21 if (!__hasOwnProp.call(to, key) && key !== except) 22 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 23 } 24 return to; 25 }; 26 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 27 // If the importer is in node compatibility mode or this is not an ESM 28 // file that has been converted to a CommonJS file using a Babel- 29 // compatible transform (i.e. "__esModule" has not been set), then set 30 // "default" to the CommonJS "module.exports" for node compatibility. 31 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 32 mod 33 )); 34 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 35 36 // node_modules/rungen/dist/utils/keys.js 37 var require_keys = __commonJS({ 38 "node_modules/rungen/dist/utils/keys.js"(exports) { 39 "use strict"; 40 Object.defineProperty(exports, "__esModule", { 41 value: true 42 }); 43 var keys = { 44 all: /* @__PURE__ */ Symbol("all"), 45 error: /* @__PURE__ */ Symbol("error"), 46 fork: /* @__PURE__ */ Symbol("fork"), 47 join: /* @__PURE__ */ Symbol("join"), 48 race: /* @__PURE__ */ Symbol("race"), 49 call: /* @__PURE__ */ Symbol("call"), 50 cps: /* @__PURE__ */ Symbol("cps"), 51 subscribe: /* @__PURE__ */ Symbol("subscribe") 52 }; 53 exports.default = keys; 54 } 55 }); 56 57 // node_modules/rungen/dist/utils/helpers.js 58 var require_helpers = __commonJS({ 59 "node_modules/rungen/dist/utils/helpers.js"(exports) { 60 "use strict"; 61 Object.defineProperty(exports, "__esModule", { 62 value: true 63 }); 64 exports.createChannel = exports.subscribe = exports.cps = exports.apply = exports.call = exports.invoke = exports.delay = exports.race = exports.join = exports.fork = exports.error = exports.all = void 0; 65 var _keys = require_keys(); 66 var _keys2 = _interopRequireDefault(_keys); 67 function _interopRequireDefault(obj) { 68 return obj && obj.__esModule ? obj : { default: obj }; 69 } 70 var all = exports.all = function all2(value) { 71 return { 72 type: _keys2.default.all, 73 value 74 }; 75 }; 76 var error = exports.error = function error2(err) { 77 return { 78 type: _keys2.default.error, 79 error: err 80 }; 81 }; 82 var fork = exports.fork = function fork2(iterator) { 83 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 84 args[_key - 1] = arguments[_key]; 85 } 86 return { 87 type: _keys2.default.fork, 88 iterator, 89 args 90 }; 91 }; 92 var join = exports.join = function join2(task) { 93 return { 94 type: _keys2.default.join, 95 task 96 }; 97 }; 98 var race = exports.race = function race2(competitors) { 99 return { 100 type: _keys2.default.race, 101 competitors 102 }; 103 }; 104 var delay = exports.delay = function delay2(timeout) { 105 return new Promise(function(resolve) { 106 setTimeout(function() { 107 return resolve(true); 108 }, timeout); 109 }); 110 }; 111 var invoke = exports.invoke = function invoke2(func) { 112 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 113 args[_key2 - 1] = arguments[_key2]; 114 } 115 return { 116 type: _keys2.default.call, 117 func, 118 context: null, 119 args 120 }; 121 }; 122 var call = exports.call = function call2(func, context) { 123 for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { 124 args[_key3 - 2] = arguments[_key3]; 125 } 126 return { 127 type: _keys2.default.call, 128 func, 129 context, 130 args 131 }; 132 }; 133 var apply = exports.apply = function apply2(func, context, args) { 134 return { 135 type: _keys2.default.call, 136 func, 137 context, 138 args 139 }; 140 }; 141 var cps = exports.cps = function cps2(func) { 142 for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { 143 args[_key4 - 1] = arguments[_key4]; 144 } 145 return { 146 type: _keys2.default.cps, 147 func, 148 args 149 }; 150 }; 151 var subscribe = exports.subscribe = function subscribe2(channel) { 152 return { 153 type: _keys2.default.subscribe, 154 channel 155 }; 156 }; 157 var createChannel = exports.createChannel = function createChannel2(callback) { 158 var listeners = []; 159 var subscribe2 = function subscribe3(l) { 160 listeners.push(l); 161 return function() { 162 return listeners.splice(listeners.indexOf(l), 1); 163 }; 164 }; 165 var next = function next2(val) { 166 return listeners.forEach(function(l) { 167 return l(val); 168 }); 169 }; 170 callback(next); 171 return { 172 subscribe: subscribe2 173 }; 174 }; 175 } 176 }); 177 178 // node_modules/rungen/dist/utils/is.js 179 var require_is = __commonJS({ 180 "node_modules/rungen/dist/utils/is.js"(exports) { 181 "use strict"; 182 Object.defineProperty(exports, "__esModule", { 183 value: true 184 }); 185 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { 186 return typeof obj; 187 } : function(obj) { 188 return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; 189 }; 190 var _keys = require_keys(); 191 var _keys2 = _interopRequireDefault(_keys); 192 function _interopRequireDefault(obj) { 193 return obj && obj.__esModule ? obj : { default: obj }; 194 } 195 var is = { 196 obj: function obj(value) { 197 return (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" && !!value; 198 }, 199 all: function all(value) { 200 return is.obj(value) && value.type === _keys2.default.all; 201 }, 202 error: function error(value) { 203 return is.obj(value) && value.type === _keys2.default.error; 204 }, 205 array: Array.isArray, 206 func: function func(value) { 207 return typeof value === "function"; 208 }, 209 promise: function promise(value) { 210 return value && is.func(value.then); 211 }, 212 iterator: function iterator(value) { 213 return value && is.func(value.next) && is.func(value.throw); 214 }, 215 fork: function fork(value) { 216 return is.obj(value) && value.type === _keys2.default.fork; 217 }, 218 join: function join(value) { 219 return is.obj(value) && value.type === _keys2.default.join; 220 }, 221 race: function race(value) { 222 return is.obj(value) && value.type === _keys2.default.race; 223 }, 224 call: function call(value) { 225 return is.obj(value) && value.type === _keys2.default.call; 226 }, 227 cps: function cps(value) { 228 return is.obj(value) && value.type === _keys2.default.cps; 229 }, 230 subscribe: function subscribe(value) { 231 return is.obj(value) && value.type === _keys2.default.subscribe; 232 }, 233 channel: function channel(value) { 234 return is.obj(value) && is.func(value.subscribe); 235 } 236 }; 237 exports.default = is; 238 } 239 }); 240 241 // node_modules/rungen/dist/controls/builtin.js 242 var require_builtin = __commonJS({ 243 "node_modules/rungen/dist/controls/builtin.js"(exports) { 244 "use strict"; 245 Object.defineProperty(exports, "__esModule", { 246 value: true 247 }); 248 exports.iterator = exports.array = exports.object = exports.error = exports.any = void 0; 249 var _is = require_is(); 250 var _is2 = _interopRequireDefault(_is); 251 function _interopRequireDefault(obj) { 252 return obj && obj.__esModule ? obj : { default: obj }; 253 } 254 var any = exports.any = function any2(value, next, rungen, yieldNext) { 255 yieldNext(value); 256 return true; 257 }; 258 var error = exports.error = function error2(value, next, rungen, yieldNext, raiseNext) { 259 if (!_is2.default.error(value)) return false; 260 raiseNext(value.error); 261 return true; 262 }; 263 var object = exports.object = function object2(value, next, rungen, yieldNext, raiseNext) { 264 if (!_is2.default.all(value) || !_is2.default.obj(value.value)) return false; 265 var result = {}; 266 var keys = Object.keys(value.value); 267 var count = 0; 268 var hasError = false; 269 var gotResultSuccess = function gotResultSuccess2(key, ret) { 270 if (hasError) return; 271 result[key] = ret; 272 count++; 273 if (count === keys.length) { 274 yieldNext(result); 275 } 276 }; 277 var gotResultError = function gotResultError2(key, error2) { 278 if (hasError) return; 279 hasError = true; 280 raiseNext(error2); 281 }; 282 keys.map(function(key) { 283 rungen(value.value[key], function(ret) { 284 return gotResultSuccess(key, ret); 285 }, function(err) { 286 return gotResultError(key, err); 287 }); 288 }); 289 return true; 290 }; 291 var array = exports.array = function array2(value, next, rungen, yieldNext, raiseNext) { 292 if (!_is2.default.all(value) || !_is2.default.array(value.value)) return false; 293 var result = []; 294 var count = 0; 295 var hasError = false; 296 var gotResultSuccess = function gotResultSuccess2(key, ret) { 297 if (hasError) return; 298 result[key] = ret; 299 count++; 300 if (count === value.value.length) { 301 yieldNext(result); 302 } 303 }; 304 var gotResultError = function gotResultError2(key, error2) { 305 if (hasError) return; 306 hasError = true; 307 raiseNext(error2); 308 }; 309 value.value.map(function(v, key) { 310 rungen(v, function(ret) { 311 return gotResultSuccess(key, ret); 312 }, function(err) { 313 return gotResultError(key, err); 314 }); 315 }); 316 return true; 317 }; 318 var iterator = exports.iterator = function iterator2(value, next, rungen, yieldNext, raiseNext) { 319 if (!_is2.default.iterator(value)) return false; 320 rungen(value, next, raiseNext); 321 return true; 322 }; 323 exports.default = [error, iterator, array, object, any]; 324 } 325 }); 326 327 // node_modules/rungen/dist/create.js 328 var require_create = __commonJS({ 329 "node_modules/rungen/dist/create.js"(exports) { 330 "use strict"; 331 Object.defineProperty(exports, "__esModule", { 332 value: true 333 }); 334 var _builtin = require_builtin(); 335 var _builtin2 = _interopRequireDefault(_builtin); 336 var _is = require_is(); 337 var _is2 = _interopRequireDefault(_is); 338 function _interopRequireDefault(obj) { 339 return obj && obj.__esModule ? obj : { default: obj }; 340 } 341 function _toConsumableArray(arr) { 342 if (Array.isArray(arr)) { 343 for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { 344 arr2[i] = arr[i]; 345 } 346 return arr2; 347 } else { 348 return Array.from(arr); 349 } 350 } 351 var create2 = function create3() { 352 var userControls = arguments.length <= 0 || arguments[0] === void 0 ? [] : arguments[0]; 353 var controls = [].concat(_toConsumableArray(userControls), _toConsumableArray(_builtin2.default)); 354 var runtime = function runtime2(input) { 355 var success = arguments.length <= 1 || arguments[1] === void 0 ? function() { 356 } : arguments[1]; 357 var error = arguments.length <= 2 || arguments[2] === void 0 ? function() { 358 } : arguments[2]; 359 var iterate = function iterate2(gen) { 360 var yieldValue = function yieldValue2(isError) { 361 return function(ret) { 362 try { 363 var _ref = isError ? gen.throw(ret) : gen.next(ret); 364 var value = _ref.value; 365 var done = _ref.done; 366 if (done) return success(value); 367 next(value); 368 } catch (e) { 369 return error(e); 370 } 371 }; 372 }; 373 var next = function next2(ret) { 374 controls.some(function(control) { 375 return control(ret, next2, runtime2, yieldValue(false), yieldValue(true)); 376 }); 377 }; 378 yieldValue(false)(); 379 }; 380 var iterator = _is2.default.iterator(input) ? input : regeneratorRuntime.mark(function _callee() { 381 return regeneratorRuntime.wrap(function _callee$(_context) { 382 while (1) { 383 switch (_context.prev = _context.next) { 384 case 0: 385 _context.next = 2; 386 return input; 387 case 2: 388 return _context.abrupt("return", _context.sent); 389 case 3: 390 case "end": 391 return _context.stop(); 392 } 393 } 394 }, _callee, this); 395 })(); 396 iterate(iterator, success, error); 397 }; 398 return runtime; 399 }; 400 exports.default = create2; 401 } 402 }); 403 404 // node_modules/rungen/dist/utils/dispatcher.js 405 var require_dispatcher = __commonJS({ 406 "node_modules/rungen/dist/utils/dispatcher.js"(exports) { 407 "use strict"; 408 Object.defineProperty(exports, "__esModule", { 409 value: true 410 }); 411 var createDispatcher = function createDispatcher2() { 412 var listeners = []; 413 return { 414 subscribe: function subscribe(listener) { 415 listeners.push(listener); 416 return function() { 417 listeners = listeners.filter(function(l) { 418 return l !== listener; 419 }); 420 }; 421 }, 422 dispatch: function dispatch(action) { 423 listeners.slice().forEach(function(listener) { 424 return listener(action); 425 }); 426 } 427 }; 428 }; 429 exports.default = createDispatcher; 430 } 431 }); 432 433 // node_modules/rungen/dist/controls/async.js 434 var require_async = __commonJS({ 435 "node_modules/rungen/dist/controls/async.js"(exports) { 436 "use strict"; 437 Object.defineProperty(exports, "__esModule", { 438 value: true 439 }); 440 exports.race = exports.join = exports.fork = exports.promise = void 0; 441 var _is = require_is(); 442 var _is2 = _interopRequireDefault(_is); 443 var _helpers = require_helpers(); 444 var _dispatcher = require_dispatcher(); 445 var _dispatcher2 = _interopRequireDefault(_dispatcher); 446 function _interopRequireDefault(obj) { 447 return obj && obj.__esModule ? obj : { default: obj }; 448 } 449 var promise = exports.promise = function promise2(value, next, rungen, yieldNext, raiseNext) { 450 if (!_is2.default.promise(value)) return false; 451 value.then(next, raiseNext); 452 return true; 453 }; 454 var forkedTasks = /* @__PURE__ */ new Map(); 455 var fork = exports.fork = function fork2(value, next, rungen) { 456 if (!_is2.default.fork(value)) return false; 457 var task = /* @__PURE__ */ Symbol("fork"); 458 var dispatcher = (0, _dispatcher2.default)(); 459 forkedTasks.set(task, dispatcher); 460 rungen(value.iterator.apply(null, value.args), function(result) { 461 return dispatcher.dispatch(result); 462 }, function(err) { 463 return dispatcher.dispatch((0, _helpers.error)(err)); 464 }); 465 var unsubscribe = dispatcher.subscribe(function() { 466 unsubscribe(); 467 forkedTasks.delete(task); 468 }); 469 next(task); 470 return true; 471 }; 472 var join = exports.join = function join2(value, next, rungen, yieldNext, raiseNext) { 473 if (!_is2.default.join(value)) return false; 474 var dispatcher = forkedTasks.get(value.task); 475 if (!dispatcher) { 476 raiseNext("join error : task not found"); 477 } else { 478 (function() { 479 var unsubscribe = dispatcher.subscribe(function(result) { 480 unsubscribe(); 481 next(result); 482 }); 483 })(); 484 } 485 return true; 486 }; 487 var race = exports.race = function race2(value, next, rungen, yieldNext, raiseNext) { 488 if (!_is2.default.race(value)) return false; 489 var finished = false; 490 var success = function success2(result, k, v) { 491 if (finished) return; 492 finished = true; 493 result[k] = v; 494 next(result); 495 }; 496 var fail = function fail2(err) { 497 if (finished) return; 498 raiseNext(err); 499 }; 500 if (_is2.default.array(value.competitors)) { 501 (function() { 502 var result = value.competitors.map(function() { 503 return false; 504 }); 505 value.competitors.forEach(function(competitor, index) { 506 rungen(competitor, function(output) { 507 return success(result, index, output); 508 }, fail); 509 }); 510 })(); 511 } else { 512 (function() { 513 var result = Object.keys(value.competitors).reduce(function(p, c) { 514 p[c] = false; 515 return p; 516 }, {}); 517 Object.keys(value.competitors).forEach(function(index) { 518 rungen(value.competitors[index], function(output) { 519 return success(result, index, output); 520 }, fail); 521 }); 522 })(); 523 } 524 return true; 525 }; 526 var subscribe = function subscribe2(value, next) { 527 if (!_is2.default.subscribe(value)) return false; 528 if (!_is2.default.channel(value.channel)) { 529 throw new Error('the first argument of "subscribe" must be a valid channel'); 530 } 531 var unsubscribe = value.channel.subscribe(function(ret) { 532 unsubscribe && unsubscribe(); 533 next(ret); 534 }); 535 return true; 536 }; 537 exports.default = [promise, fork, join, race, subscribe]; 538 } 539 }); 540 541 // node_modules/rungen/dist/controls/wrap.js 542 var require_wrap = __commonJS({ 543 "node_modules/rungen/dist/controls/wrap.js"(exports) { 544 "use strict"; 545 Object.defineProperty(exports, "__esModule", { 546 value: true 547 }); 548 exports.cps = exports.call = void 0; 549 var _is = require_is(); 550 var _is2 = _interopRequireDefault(_is); 551 function _interopRequireDefault(obj) { 552 return obj && obj.__esModule ? obj : { default: obj }; 553 } 554 function _toConsumableArray(arr) { 555 if (Array.isArray(arr)) { 556 for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { 557 arr2[i] = arr[i]; 558 } 559 return arr2; 560 } else { 561 return Array.from(arr); 562 } 563 } 564 var call = exports.call = function call2(value, next, rungen, yieldNext, raiseNext) { 565 if (!_is2.default.call(value)) return false; 566 try { 567 next(value.func.apply(value.context, value.args)); 568 } catch (err) { 569 raiseNext(err); 570 } 571 return true; 572 }; 573 var cps = exports.cps = function cps2(value, next, rungen, yieldNext, raiseNext) { 574 var _value$func; 575 if (!_is2.default.cps(value)) return false; 576 (_value$func = value.func).call.apply(_value$func, [null].concat(_toConsumableArray(value.args), [function(err, result) { 577 if (err) raiseNext(err); 578 else next(result); 579 }])); 580 return true; 581 }; 582 exports.default = [call, cps]; 583 } 584 }); 585 586 // node_modules/rungen/dist/index.js 587 var require_dist = __commonJS({ 588 "node_modules/rungen/dist/index.js"(exports) { 589 "use strict"; 590 Object.defineProperty(exports, "__esModule", { 591 value: true 592 }); 593 exports.wrapControls = exports.asyncControls = exports.create = void 0; 594 var _helpers = require_helpers(); 595 Object.keys(_helpers).forEach(function(key) { 596 if (key === "default") return; 597 Object.defineProperty(exports, key, { 598 enumerable: true, 599 get: function get() { 600 return _helpers[key]; 601 } 602 }); 603 }); 604 var _create = require_create(); 605 var _create2 = _interopRequireDefault(_create); 606 var _async = require_async(); 607 var _async2 = _interopRequireDefault(_async); 608 var _wrap = require_wrap(); 609 var _wrap2 = _interopRequireDefault(_wrap); 610 function _interopRequireDefault(obj) { 611 return obj && obj.__esModule ? obj : { default: obj }; 612 } 613 exports.create = _create2.default; 614 exports.asyncControls = _async2.default; 615 exports.wrapControls = _wrap2.default; 616 } 617 }); 618 619 // packages/redux-routine/build-module/index.mjs 620 var index_exports = {}; 621 __export(index_exports, { 622 default: () => createMiddleware 623 }); 624 625 // packages/redux-routine/build-module/is-generator.mjs 626 function isGenerator(object) { 627 return !!object && typeof object[Symbol.iterator] === "function" && typeof object.next === "function"; 628 } 629 630 // packages/redux-routine/build-module/runtime.mjs 631 var import_rungen = __toESM(require_dist(), 1); 632 633 // node_modules/is-promise/index.mjs 634 function isPromise(obj) { 635 return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function"; 636 } 637 638 // node_modules/is-plain-object/dist/is-plain-object.mjs 639 function isObject(o) { 640 return Object.prototype.toString.call(o) === "[object Object]"; 641 } 642 function isPlainObject(o) { 643 var ctor, prot; 644 if (isObject(o) === false) return false; 645 ctor = o.constructor; 646 if (ctor === void 0) return true; 647 prot = ctor.prototype; 648 if (isObject(prot) === false) return false; 649 if (prot.hasOwnProperty("isPrototypeOf") === false) { 650 return false; 651 } 652 return true; 653 } 654 655 // packages/redux-routine/build-module/is-action.mjs 656 function isAction(object) { 657 return isPlainObject(object) && typeof object.type === "string"; 658 } 659 function isActionOfType(object, expectedType) { 660 return isAction(object) && object.type === expectedType; 661 } 662 663 // packages/redux-routine/build-module/runtime.mjs 664 function createRuntime(controls = {}, dispatch) { 665 const rungenControls = Object.entries(controls).map( 666 ([actionType, control]) => (value, next, iterate, yieldNext, yieldError) => { 667 if (!isActionOfType(value, actionType)) { 668 return false; 669 } 670 const routine = control(value); 671 if (isPromise(routine)) { 672 routine.then(yieldNext, yieldError); 673 } else { 674 yieldNext(routine); 675 } 676 return true; 677 } 678 ); 679 const unhandledActionControl = (value, next) => { 680 if (!isAction(value)) { 681 return false; 682 } 683 dispatch(value); 684 next(); 685 return true; 686 }; 687 rungenControls.push(unhandledActionControl); 688 const rungenRuntime = (0, import_rungen.create)(rungenControls); 689 return (action) => new Promise( 690 (resolve, reject) => rungenRuntime( 691 action, 692 (result) => { 693 if (isAction(result)) { 694 dispatch(result); 695 } 696 resolve(result); 697 }, 698 reject 699 ) 700 ); 701 } 702 703 // packages/redux-routine/build-module/index.mjs 704 function createMiddleware(controls = {}) { 705 return (store) => { 706 const runtime = createRuntime(controls, store.dispatch); 707 return (next) => (action) => { 708 if (!isGenerator(action)) { 709 return next(action); 710 } 711 return runtime(action); 712 }; 713 }; 714 } 715 return __toCommonJS(index_exports); 716 })(); 717 /*! Bundled license information: 718 719 is-plain-object/dist/is-plain-object.mjs: 720 (*! 721 * is-plain-object <https://github.com/jonschlinkert/is-plain-object> 722 * 723 * Copyright (c) 2014-2017, Jon Schlinkert. 724 * Released under the MIT License. 725 *) 726 */ 727 if (typeof wp.reduxRoutine === 'object' && wp.reduxRoutine.default) { wp.reduxRoutine = wp.reduxRoutine.default; } 728 (window.wp ||= {}).reduxRoutine = wp.reduxRoutine; 729 })();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sat Aug 8 08:20:21 2026 | Cross-referenced by PHPXref |