Duffer Derek

Current Path : /var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/next/dist/build/
Upload File :
Current File : /var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/next/dist/build/route-discovery.js.map

{"version":3,"sources":["../../src/build/route-discovery.ts"],"sourcesContent":["import { join } from 'path'\nimport { createValidFileMatcher } from '../server/lib/find-page-file'\nimport { recursiveReadDir } from '../lib/recursive-readdir'\nimport {\n  APP_DIR_ALIAS,\n  PAGES_DIR_ALIAS,\n  ROOT_DIR_ALIAS,\n} from '../lib/constants'\nimport { normalizePathSep } from '../shared/lib/page-path/normalize-path-sep'\nimport { normalizeAppPath } from '../shared/lib/router/utils/app-paths'\nimport { ensureLeadingSlash } from '../shared/lib/page-path/ensure-leading-slash'\nimport { PAGE_TYPES } from '../lib/page-types'\nimport {\n  extractSlotsFromRoutes,\n  combineSlots,\n  type SlotInfo,\n  type RouteInfo,\n} from './file-classifier'\nimport {\n  normalizeMetadataRoute,\n  normalizeMetadataPageToRoute,\n} from '../lib/metadata/get-metadata-route'\nimport { isMetadataRouteFile } from '../lib/metadata/is-metadata-route'\nimport { getPageStaticInfo } from './analysis/get-page-static-info'\nimport {\n  UNDERSCORE_NOT_FOUND_ROUTE,\n  UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY,\n} from '../shared/lib/entry-constants'\nimport { isReservedPage } from './utils'\nimport type { PageExtensions } from './page-extensions-type'\nimport type { MappedPages } from './build-context'\n\nconst PRIVATE_PAGES_PREFIX_REGEX = /^private-next-pages\\//\nconst PRIVATE_APP_PREFIX_REGEX = /^private-next-app-dir\\//\nconst SKIP_ROUTES = new Set([\n  UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY,\n])\n\nfunction removeSuffix(value: string, suffix: string): string {\n  return value.endsWith(suffix) ? value.slice(0, -suffix.length) : value\n}\n\n/** Normalize a route for the app router */\nfunction normalizeAppRoute(pageName: string): string {\n  return normalizeAppPath(normalizePathSep(pageName))\n}\n\n/** Normalize a layout route (strip /layout suffix) */\nfunction normalizeLayoutRoute(pageName: string): string {\n  return ensureLeadingSlash(\n    removeSuffix(normalizeAppPath(normalizePathSep(pageName)), '/layout')\n  )\n}\n\n/**\n * For a given page path removes the provided extensions.\n */\nexport function getPageFromPath(\n  pagePath: string,\n  pageExtensions: PageExtensions\n) {\n  let page = normalizePathSep(pagePath)\n  // Try longer extensions first so compound extensions like 'page.js'\n  // match before shorter ones like 'js'\n  const sorted = [...pageExtensions].sort((a, b) => b.length - a.length)\n  for (const extension of sorted) {\n    const next = removeSuffix(page, `.${extension}`)\n    if (next !== page) {\n      page = next\n      break\n    }\n  }\n\n  page = removeSuffix(page, '/index')\n\n  return page === '' ? '/' : page\n}\n\n/**\n * Collect app pages, layouts, and default files from the app directory\n */\nexport async function collectAppFiles(\n  appDir: string,\n  validFileMatcher: ReturnType<typeof createValidFileMatcher>\n): Promise<{\n  appPaths: string[]\n  layoutPaths: string[]\n  defaultPaths: string[]\n}> {\n  const allAppFiles = await recursiveReadDir(appDir, {\n    pathnameFilter: (absolutePath) =>\n      validFileMatcher.isAppRouterPage(absolutePath) ||\n      validFileMatcher.isRootNotFound(absolutePath) ||\n      validFileMatcher.isAppLayoutPage(absolutePath) ||\n      validFileMatcher.isAppDefaultPage(absolutePath),\n    ignorePartFilter: (part) => part.startsWith('_'),\n  })\n\n  const appPaths = allAppFiles.filter(\n    (absolutePath) =>\n      validFileMatcher.isAppRouterPage(absolutePath) ||\n      validFileMatcher.isRootNotFound(absolutePath)\n  )\n  const layoutPaths = allAppFiles.filter((absolutePath) =>\n    validFileMatcher.isAppLayoutPage(absolutePath)\n  )\n  const defaultPaths = allAppFiles.filter((absolutePath) =>\n    validFileMatcher.isAppDefaultPage(absolutePath)\n  )\n\n  return { appPaths, layoutPaths, defaultPaths }\n}\n\n/**\n * Collect pages from the pages directory\n */\nexport async function collectPagesFiles(\n  pagesDir: string,\n  validFileMatcher: ReturnType<typeof createValidFileMatcher>\n): Promise<string[]> {\n  return await recursiveReadDir(pagesDir, {\n    pathnameFilter: validFileMatcher.isPageFile,\n  })\n}\n\n/**\n * Create a relative file path from a mapped page path\n */\nexport function createRelativeFilePath(\n  baseDir: string,\n  filePath: string,\n  prefix: 'pages' | 'app',\n  isSrcDir: boolean\n): string {\n  const privatePrefixRegex =\n    prefix === 'pages' ? PRIVATE_PAGES_PREFIX_REGEX : PRIVATE_APP_PREFIX_REGEX\n  const srcPrefix = isSrcDir ? 'src/' : ''\n  return join(\n    baseDir,\n    filePath.replace(privatePrefixRegex, `${srcPrefix}${prefix}/`)\n  )\n}\n\n/**\n * Process pages routes from mapped pages\n */\nexport function processPageRoutes(\n  mappedPages: { [page: string]: string },\n  baseDir: string,\n  isSrcDir: boolean\n): {\n  pageRoutes: RouteInfo[]\n  pageApiRoutes: RouteInfo[]\n} {\n  const pageRoutes: RouteInfo[] = []\n  const pageApiRoutes: RouteInfo[] = []\n\n  for (const [route, filePath] of Object.entries(mappedPages)) {\n    const relativeFilePath = createRelativeFilePath(\n      baseDir,\n      filePath,\n      'pages',\n      isSrcDir\n    )\n\n    if (route.startsWith('/api/')) {\n      pageApiRoutes.push({\n        route: normalizePathSep(route),\n        filePath: relativeFilePath,\n      })\n    } else {\n      if (isReservedPage(route)) continue\n\n      pageRoutes.push({\n        route: normalizePathSep(route),\n        filePath: relativeFilePath,\n      })\n    }\n  }\n\n  return { pageRoutes, pageApiRoutes }\n}\n\n/**\n * Process app routes from mapped app pages\n */\nexport function processAppRoutes(\n  mappedAppPages: { [page: string]: string },\n  validFileMatcher: ReturnType<typeof createValidFileMatcher>,\n  baseDir: string,\n  isSrcDir: boolean\n): {\n  appRoutes: RouteInfo[]\n  appRouteHandlers: RouteInfo[]\n} {\n  const appRoutes: RouteInfo[] = []\n  const appRouteHandlers: RouteInfo[] = []\n\n  for (const [page, filePath] of Object.entries(mappedAppPages)) {\n    if (\n      page === UNDERSCORE_NOT_FOUND_ROUTE_ENTRY ||\n      page === UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY\n    ) {\n      continue\n    }\n\n    const relativeFilePath = createRelativeFilePath(\n      baseDir,\n      filePath,\n      'app',\n      isSrcDir\n    )\n    const route = normalizeAppRoute(page)\n\n    if (validFileMatcher.isAppRouterRoute(filePath)) {\n      appRouteHandlers.push({ route, filePath: relativeFilePath })\n    } else {\n      appRoutes.push({ route, filePath: relativeFilePath })\n    }\n  }\n\n  return { appRoutes, appRouteHandlers }\n}\n\n/**\n * Process layout routes from mapped app layouts\n */\nexport function processLayoutRoutes(\n  mappedAppLayouts: { [page: string]: string },\n  baseDir: string,\n  isSrcDir: boolean\n): RouteInfo[] {\n  return Object.entries(mappedAppLayouts).map(([route, filePath]) => ({\n    route: normalizeLayoutRoute(route),\n    filePath: createRelativeFilePath(baseDir, filePath, 'app', isSrcDir),\n  }))\n}\n\n/**\n * Creates a mapping of route to page file path for a given list of page paths.\n */\nexport async function createPagesMapping({\n  isDev,\n  pageExtensions,\n  pagePaths,\n  pagesType,\n  pagesDir,\n  appDir,\n  appDirOnly,\n}: {\n  isDev: boolean\n  pageExtensions: PageExtensions\n  pagePaths: string[]\n  pagesType: PAGE_TYPES\n  pagesDir: string | undefined\n  appDir: string | undefined\n  appDirOnly: boolean\n}): Promise<MappedPages> {\n  const isAppRoute = pagesType === 'app'\n\n  const promises = pagePaths.map<Promise<[string, string] | undefined>>(\n    async (pagePath) => {\n      if (pagePath.endsWith('.d.ts') && pageExtensions.includes('ts')) {\n        return\n      }\n\n      let pageKey = getPageFromPath(pagePath, pageExtensions)\n      if (isAppRoute) {\n        // Turbopack encodes '_' as '%5F' in app paths; normalize to underscores.\n        pageKey = pageKey.replace(/%5F/g, '_')\n        if (pageKey === UNDERSCORE_NOT_FOUND_ROUTE) {\n          pageKey = UNDERSCORE_NOT_FOUND_ROUTE_ENTRY\n        }\n        if (pageKey === UNDERSCORE_GLOBAL_ERROR_ROUTE) {\n          pageKey = UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY\n        }\n      }\n\n      const normalizedPath = normalizePathSep(\n        join(\n          pagesType === PAGE_TYPES.PAGES\n            ? PAGES_DIR_ALIAS\n            : pagesType === PAGE_TYPES.APP\n              ? APP_DIR_ALIAS\n              : ROOT_DIR_ALIAS,\n          pagePath\n        )\n      )\n\n      let route =\n        pagesType === PAGE_TYPES.APP ? normalizeMetadataRoute(pageKey) : pageKey\n\n      if (\n        pagesType === PAGE_TYPES.APP &&\n        isMetadataRouteFile(pagePath, pageExtensions, true)\n      ) {\n        const filePath = join(appDir!, pagePath)\n        const staticInfo = await getPageStaticInfo({\n          nextConfig: {},\n          pageFilePath: filePath,\n          isDev,\n          page: pageKey,\n          pageType: pagesType,\n        })\n\n        route = normalizeMetadataPageToRoute(\n          route,\n          !!(staticInfo.generateImageMetadata || staticInfo.generateSitemaps)\n        )\n      }\n\n      return [route, normalizedPath]\n    }\n  )\n\n  const pages: MappedPages = Object.fromEntries(\n    (await Promise.all(promises)).filter((entry) => entry != null)\n  )\n\n  switch (pagesType) {\n    case PAGE_TYPES.ROOT: {\n      return pages\n    }\n    case PAGE_TYPES.APP: {\n      const hasAppPages = Object.keys(pages).length > 0\n      const hasAppGlobalError = !isDev && appDirOnly\n      return {\n        ...(hasAppPages && {\n          [UNDERSCORE_NOT_FOUND_ROUTE_ENTRY]: require.resolve(\n            'next/dist/client/components/builtin/global-not-found'\n          ),\n        }),\n        ...(hasAppGlobalError && {\n          [UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY]: require.resolve(\n            'next/dist/client/components/builtin/app-error'\n          ),\n        }),\n        ...pages,\n      }\n    }\n    case PAGE_TYPES.PAGES: {\n      if (isDev) {\n        delete pages['/_app']\n        delete pages['/_error']\n        delete pages['/_document']\n      }\n\n      const root = isDev && pagesDir ? PAGES_DIR_ALIAS : 'next/dist/pages'\n\n      if (Object.keys(pages).length === 0 && !appDirOnly) {\n        appDirOnly = true\n      }\n\n      return {\n        ...((isDev || !appDirOnly) && {\n          '/_app': `${root}/_app`,\n          '/_error': `${root}/_error`,\n          '/_document': `${root}/_document`,\n          ...pages,\n        }),\n      }\n    }\n    default: {\n      return {}\n    }\n  }\n}\n\nexport interface RouteDiscoveryOptions {\n  appDir?: string\n  pagesDir?: string\n  pageExtensions: string[]\n  isDev: boolean\n  baseDir: string\n  /** Whether the app/pages directories are under a /src directory. */\n  isSrcDir?: boolean\n  /** Override app-dir-only mode (e.g. from --experimental-app-only CLI flag) */\n  appDirOnly?: boolean\n  validFileMatcher?: ReturnType<typeof createValidFileMatcher>\n  debugBuildPaths?: { app: string[]; pages: string[] }\n}\n\nexport interface RouteDiscoveryResult {\n  appRoutes: RouteInfo[]\n  appRouteHandlers: RouteInfo[]\n  layoutRoutes: RouteInfo[]\n  slots: SlotInfo[]\n  pageRoutes: RouteInfo[]\n  pageApiRoutes: RouteInfo[]\n  mappedAppPages?: MappedPages\n  mappedAppLayouts?: MappedPages\n  mappedPages?: MappedPages\n  /** Raw page file paths (post-filtering), useful for telemetry */\n  pagesPaths: string[]\n  /** Resolved app-dir-only state (may have been updated during discovery) */\n  appDirOnly: boolean\n}\n\n/**\n * High-level API: Collect, map, and process all routes in one call\n */\nexport async function discoverRoutes(\n  options: RouteDiscoveryOptions\n): Promise<RouteDiscoveryResult> {\n  const {\n    appDir,\n    pagesDir,\n    pageExtensions,\n    isDev,\n    baseDir,\n    isSrcDir,\n    debugBuildPaths,\n  } = options\n\n  const validFileMatcher =\n    options.validFileMatcher || createValidFileMatcher(pageExtensions, appDir)\n\n  let appDirOnly = options.appDirOnly ?? (!!appDir && !pagesDir)\n\n  // Helper to reduce createPagesMapping boilerplate\n  const mapPaths = (pagePaths: string[], pagesType: PAGE_TYPES) =>\n    createPagesMapping({\n      pagePaths,\n      isDev,\n      pagesType,\n      pageExtensions,\n      pagesDir,\n      appDir,\n      appDirOnly,\n    })\n\n  // Helper to apply debugBuildPaths filtering\n  const applyDebugFilter = (\n    paths: string[],\n    debugPaths: string[]\n  ): string[] => {\n    if (debugPaths.length > 0) {\n      const debugPathsSet = new Set(debugPaths)\n      return paths.filter((p) => debugPathsSet.has(p))\n    }\n    // Empty array means build none\n    return []\n  }\n\n  let pageRoutes: RouteInfo[] = []\n  let pageApiRoutes: RouteInfo[] = []\n  let mappedPages: MappedPages | undefined\n  let pagesPaths: string[] = []\n\n  if (pagesDir && !appDirOnly) {\n    if (process.env.NEXT_PRIVATE_PAGE_PATHS) {\n      pagesPaths = JSON.parse(process.env.NEXT_PRIVATE_PAGE_PATHS)\n    } else {\n      pagesPaths = await collectPagesFiles(pagesDir, validFileMatcher)\n\n      if (debugBuildPaths) {\n        pagesPaths = applyDebugFilter(pagesPaths, debugBuildPaths.pages)\n      }\n    }\n\n    mappedPages = await mapPaths(pagesPaths, PAGE_TYPES.PAGES)\n\n    // Update appDirOnly if no user page routes were found, so the\n    // subsequent app mapping can emit the global error entry.\n    if (Object.keys(mappedPages).length === 0) {\n      appDirOnly = true\n    }\n\n    ;({ pageRoutes, pageApiRoutes } = processPageRoutes(\n      mappedPages,\n      baseDir,\n      !!isSrcDir\n    ))\n  }\n\n  let appRoutes: RouteInfo[] = []\n  let appRouteHandlers: RouteInfo[] = []\n  let layoutRoutes: RouteInfo[] = []\n  let slots: SlotInfo[] = []\n  let mappedAppPages: MappedPages | undefined\n  let mappedAppLayouts: MappedPages | undefined\n\n  if (appDir) {\n    let appPaths: string[]\n    let layoutPaths: string[]\n    let defaultPaths: string[]\n\n    if (process.env.NEXT_PRIVATE_APP_PATHS) {\n      // Used for testing — override collected app paths\n      appPaths = JSON.parse(process.env.NEXT_PRIVATE_APP_PATHS)\n      layoutPaths = []\n      defaultPaths = []\n    } else {\n      const result = await collectAppFiles(appDir, validFileMatcher)\n      appPaths = result.appPaths\n      layoutPaths = result.layoutPaths\n      defaultPaths = result.defaultPaths\n\n      if (debugBuildPaths) {\n        appPaths = applyDebugFilter(appPaths, debugBuildPaths.app)\n      }\n    }\n\n    // Map all app file types in parallel\n    let mappedDefaultFiles: MappedPages\n    ;[mappedAppPages, mappedAppLayouts, mappedDefaultFiles] = await Promise.all(\n      [\n        mapPaths(appPaths, PAGE_TYPES.APP),\n        mapPaths(layoutPaths, PAGE_TYPES.APP),\n        mapPaths(defaultPaths, PAGE_TYPES.APP),\n      ]\n    )\n\n    // Extract slots from pages and default files\n    slots = combineSlots(\n      extractSlotsFromRoutes(mappedAppPages, SKIP_ROUTES),\n      extractSlotsFromRoutes(mappedDefaultFiles)\n    )\n\n    // Process routes\n    ;({ appRoutes, appRouteHandlers } = processAppRoutes(\n      mappedAppPages,\n      validFileMatcher,\n      baseDir,\n      !!isSrcDir\n    ))\n    layoutRoutes = processLayoutRoutes(mappedAppLayouts, baseDir, !!isSrcDir)\n  }\n\n  return {\n    appRoutes,\n    appRouteHandlers,\n    layoutRoutes,\n    slots,\n    pageRoutes,\n    pageApiRoutes,\n    mappedAppPages,\n    mappedAppLayouts,\n    mappedPages,\n    pagesPaths,\n    appDirOnly,\n  }\n}\n"],"names":["collectAppFiles","collectPagesFiles","createPagesMapping","createRelativeFilePath","discoverRoutes","getPageFromPath","processAppRoutes","processLayoutRoutes","processPageRoutes","PRIVATE_PAGES_PREFIX_REGEX","PRIVATE_APP_PREFIX_REGEX","SKIP_ROUTES","Set","UNDERSCORE_NOT_FOUND_ROUTE_ENTRY","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","removeSuffix","value","suffix","endsWith","slice","length","normalizeAppRoute","pageName","normalizeAppPath","normalizePathSep","normalizeLayoutRoute","ensureLeadingSlash","pagePath","pageExtensions","page","sorted","sort","a","b","extension","next","appDir","validFileMatcher","allAppFiles","recursiveReadDir","pathnameFilter","absolutePath","isAppRouterPage","isRootNotFound","isAppLayoutPage","isAppDefaultPage","ignorePartFilter","part","startsWith","appPaths","filter","layoutPaths","defaultPaths","pagesDir","isPageFile","baseDir","filePath","prefix","isSrcDir","privatePrefixRegex","srcPrefix","join","replace","mappedPages","pageRoutes","pageApiRoutes","route","Object","entries","relativeFilePath","push","isReservedPage","mappedAppPages","appRoutes","appRouteHandlers","isAppRouterRoute","mappedAppLayouts","map","isDev","pagePaths","pagesType","appDirOnly","isAppRoute","promises","includes","pageKey","UNDERSCORE_NOT_FOUND_ROUTE","UNDERSCORE_GLOBAL_ERROR_ROUTE","normalizedPath","PAGE_TYPES","PAGES","PAGES_DIR_ALIAS","APP","APP_DIR_ALIAS","ROOT_DIR_ALIAS","normalizeMetadataRoute","isMetadataRouteFile","staticInfo","getPageStaticInfo","nextConfig","pageFilePath","pageType","normalizeMetadataPageToRoute","generateImageMetadata","generateSitemaps","pages","fromEntries","Promise","all","entry","ROOT","hasAppPages","keys","hasAppGlobalError","require","resolve","root","options","debugBuildPaths","createValidFileMatcher","mapPaths","applyDebugFilter","paths","debugPaths","debugPathsSet","p","has","pagesPaths","process","env","NEXT_PRIVATE_PAGE_PATHS","JSON","parse","layoutRoutes","slots","NEXT_PRIVATE_APP_PATHS","result","app","mappedDefaultFiles","combineSlots","extractSlotsFromRoutes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAoFsBA,eAAe;eAAfA;;IAmCAC,iBAAiB;eAAjBA;;IA6HAC,kBAAkB;eAAlBA;;IAjHNC,sBAAsB;eAAtBA;;IAiRMC,cAAc;eAAdA;;IAxVNC,eAAe;eAAfA;;IAiIAC,gBAAgB;eAAhBA;;IAyCAC,mBAAmB;eAAnBA;;IAjFAC,iBAAiB;eAAjBA;;;sBArJK;8BACkB;kCACN;2BAK1B;kCAC0B;0BACA;oCACE;2BACR;gCAMpB;kCAIA;iCAC6B;mCACF;gCAM3B;uBACwB;AAI/B,MAAMC,6BAA6B;AACnC,MAAMC,2BAA2B;AACjC,MAAMC,cAAc,IAAIC,IAAI;IAC1BC,gDAAgC;IAChCC,mDAAmC;CACpC;AAED,SAASC,aAAaC,KAAa,EAAEC,MAAc;IACjD,OAAOD,MAAME,QAAQ,CAACD,UAAUD,MAAMG,KAAK,CAAC,GAAG,CAACF,OAAOG,MAAM,IAAIJ;AACnE;AAEA,yCAAyC,GACzC,SAASK,kBAAkBC,QAAgB;IACzC,OAAOC,IAAAA,0BAAgB,EAACC,IAAAA,kCAAgB,EAACF;AAC3C;AAEA,oDAAoD,GACpD,SAASG,qBAAqBH,QAAgB;IAC5C,OAAOI,IAAAA,sCAAkB,EACvBX,aAAaQ,IAAAA,0BAAgB,EAACC,IAAAA,kCAAgB,EAACF,YAAY;AAE/D;AAKO,SAASjB,gBACdsB,QAAgB,EAChBC,cAA8B;IAE9B,IAAIC,OAAOL,IAAAA,kCAAgB,EAACG;IAC5B,oEAAoE;IACpE,sCAAsC;IACtC,MAAMG,SAAS;WAAIF;KAAe,CAACG,IAAI,CAAC,CAACC,GAAGC,IAAMA,EAAEb,MAAM,GAAGY,EAAEZ,MAAM;IACrE,KAAK,MAAMc,aAAaJ,OAAQ;QAC9B,MAAMK,OAAOpB,aAAac,MAAM,CAAC,CAAC,EAAEK,WAAW;QAC/C,IAAIC,SAASN,MAAM;YACjBA,OAAOM;YACP;QACF;IACF;IAEAN,OAAOd,aAAac,MAAM;IAE1B,OAAOA,SAAS,KAAK,MAAMA;AAC7B;AAKO,eAAe7B,gBACpBoC,MAAc,EACdC,gBAA2D;IAM3D,MAAMC,cAAc,MAAMC,IAAAA,kCAAgB,EAACH,QAAQ;QACjDI,gBAAgB,CAACC,eACfJ,iBAAiBK,eAAe,CAACD,iBACjCJ,iBAAiBM,cAAc,CAACF,iBAChCJ,iBAAiBO,eAAe,CAACH,iBACjCJ,iBAAiBQ,gBAAgB,CAACJ;QACpCK,kBAAkB,CAACC,OAASA,KAAKC,UAAU,CAAC;IAC9C;IAEA,MAAMC,WAAWX,YAAYY,MAAM,CACjC,CAACT,eACCJ,iBAAiBK,eAAe,CAACD,iBACjCJ,iBAAiBM,cAAc,CAACF;IAEpC,MAAMU,cAAcb,YAAYY,MAAM,CAAC,CAACT,eACtCJ,iBAAiBO,eAAe,CAACH;IAEnC,MAAMW,eAAed,YAAYY,MAAM,CAAC,CAACT,eACvCJ,iBAAiBQ,gBAAgB,CAACJ;IAGpC,OAAO;QAAEQ;QAAUE;QAAaC;IAAa;AAC/C;AAKO,eAAenD,kBACpBoD,QAAgB,EAChBhB,gBAA2D;IAE3D,OAAO,MAAME,IAAAA,kCAAgB,EAACc,UAAU;QACtCb,gBAAgBH,iBAAiBiB,UAAU;IAC7C;AACF;AAKO,SAASnD,uBACdoD,OAAe,EACfC,QAAgB,EAChBC,MAAuB,EACvBC,QAAiB;IAEjB,MAAMC,qBACJF,WAAW,UAAUhD,6BAA6BC;IACpD,MAAMkD,YAAYF,WAAW,SAAS;IACtC,OAAOG,IAAAA,UAAI,EACTN,SACAC,SAASM,OAAO,CAACH,oBAAoB,GAAGC,YAAYH,OAAO,CAAC,CAAC;AAEjE;AAKO,SAASjD,kBACduD,WAAuC,EACvCR,OAAe,EACfG,QAAiB;IAKjB,MAAMM,aAA0B,EAAE;IAClC,MAAMC,gBAA6B,EAAE;IAErC,KAAK,MAAM,CAACC,OAAOV,SAAS,IAAIW,OAAOC,OAAO,CAACL,aAAc;QAC3D,MAAMM,mBAAmBlE,uBACvBoD,SACAC,UACA,SACAE;QAGF,IAAIQ,MAAMlB,UAAU,CAAC,UAAU;YAC7BiB,cAAcK,IAAI,CAAC;gBACjBJ,OAAO1C,IAAAA,kCAAgB,EAAC0C;gBACxBV,UAAUa;YACZ;QACF,OAAO;YACL,IAAIE,IAAAA,qBAAc,EAACL,QAAQ;YAE3BF,WAAWM,IAAI,CAAC;gBACdJ,OAAO1C,IAAAA,kCAAgB,EAAC0C;gBACxBV,UAAUa;YACZ;QACF;IACF;IAEA,OAAO;QAAEL;QAAYC;IAAc;AACrC;AAKO,SAAS3D,iBACdkE,cAA0C,EAC1CnC,gBAA2D,EAC3DkB,OAAe,EACfG,QAAiB;IAKjB,MAAMe,YAAyB,EAAE;IACjC,MAAMC,mBAAgC,EAAE;IAExC,KAAK,MAAM,CAAC7C,MAAM2B,SAAS,IAAIW,OAAOC,OAAO,CAACI,gBAAiB;QAC7D,IACE3C,SAAShB,gDAAgC,IACzCgB,SAASf,mDAAmC,EAC5C;YACA;QACF;QAEA,MAAMuD,mBAAmBlE,uBACvBoD,SACAC,UACA,OACAE;QAEF,MAAMQ,QAAQ7C,kBAAkBQ;QAEhC,IAAIQ,iBAAiBsC,gBAAgB,CAACnB,WAAW;YAC/CkB,iBAAiBJ,IAAI,CAAC;gBAAEJ;gBAAOV,UAAUa;YAAiB;QAC5D,OAAO;YACLI,UAAUH,IAAI,CAAC;gBAAEJ;gBAAOV,UAAUa;YAAiB;QACrD;IACF;IAEA,OAAO;QAAEI;QAAWC;IAAiB;AACvC;AAKO,SAASnE,oBACdqE,gBAA4C,EAC5CrB,OAAe,EACfG,QAAiB;IAEjB,OAAOS,OAAOC,OAAO,CAACQ,kBAAkBC,GAAG,CAAC,CAAC,CAACX,OAAOV,SAAS,GAAM,CAAA;YAClEU,OAAOzC,qBAAqByC;YAC5BV,UAAUrD,uBAAuBoD,SAASC,UAAU,OAAOE;QAC7D,CAAA;AACF;AAKO,eAAexD,mBAAmB,EACvC4E,KAAK,EACLlD,cAAc,EACdmD,SAAS,EACTC,SAAS,EACT3B,QAAQ,EACRjB,MAAM,EACN6C,UAAU,EASX;IACC,MAAMC,aAAaF,cAAc;IAEjC,MAAMG,WAAWJ,UAAUF,GAAG,CAC5B,OAAOlD;QACL,IAAIA,SAAST,QAAQ,CAAC,YAAYU,eAAewD,QAAQ,CAAC,OAAO;YAC/D;QACF;QAEA,IAAIC,UAAUhF,gBAAgBsB,UAAUC;QACxC,IAAIsD,YAAY;YACd,yEAAyE;YACzEG,UAAUA,QAAQvB,OAAO,CAAC,QAAQ;YAClC,IAAIuB,YAAYC,0CAA0B,EAAE;gBAC1CD,UAAUxE,gDAAgC;YAC5C;YACA,IAAIwE,YAAYE,6CAA6B,EAAE;gBAC7CF,UAAUvE,mDAAmC;YAC/C;QACF;QAEA,MAAM0E,iBAAiBhE,IAAAA,kCAAgB,EACrCqC,IAAAA,UAAI,EACFmB,cAAcS,qBAAU,CAACC,KAAK,GAC1BC,0BAAe,GACfX,cAAcS,qBAAU,CAACG,GAAG,GAC1BC,wBAAa,GACbC,yBAAc,EACpBnE;QAIJ,IAAIuC,QACFc,cAAcS,qBAAU,CAACG,GAAG,GAAGG,IAAAA,wCAAsB,EAACV,WAAWA;QAEnE,IACEL,cAAcS,qBAAU,CAACG,GAAG,IAC5BI,IAAAA,oCAAmB,EAACrE,UAAUC,gBAAgB,OAC9C;YACA,MAAM4B,WAAWK,IAAAA,UAAI,EAACzB,QAAST;YAC/B,MAAMsE,aAAa,MAAMC,IAAAA,oCAAiB,EAAC;gBACzCC,YAAY,CAAC;gBACbC,cAAc5C;gBACdsB;gBACAjD,MAAMwD;gBACNgB,UAAUrB;YACZ;YAEAd,QAAQoC,IAAAA,8CAA4B,EAClCpC,OACA,CAAC,CAAE+B,CAAAA,WAAWM,qBAAqB,IAAIN,WAAWO,gBAAgB,AAAD;QAErE;QAEA,OAAO;YAACtC;YAAOsB;SAAe;IAChC;IAGF,MAAMiB,QAAqBtC,OAAOuC,WAAW,CAC3C,AAAC,CAAA,MAAMC,QAAQC,GAAG,CAACzB,SAAQ,EAAGjC,MAAM,CAAC,CAAC2D,QAAUA,SAAS;IAG3D,OAAQ7B;QACN,KAAKS,qBAAU,CAACqB,IAAI;YAAE;gBACpB,OAAOL;YACT;QACA,KAAKhB,qBAAU,CAACG,GAAG;YAAE;gBACnB,MAAMmB,cAAc5C,OAAO6C,IAAI,CAACP,OAAOrF,MAAM,GAAG;gBAChD,MAAM6F,oBAAoB,CAACnC,SAASG;gBACpC,OAAO;oBACL,GAAI8B,eAAe;wBACjB,CAAClG,gDAAgC,CAAC,EAAEqG,QAAQC,OAAO,CACjD;oBAEJ,CAAC;oBACD,GAAIF,qBAAqB;wBACvB,CAACnG,mDAAmC,CAAC,EAAEoG,QAAQC,OAAO,CACpD;oBAEJ,CAAC;oBACD,GAAGV,KAAK;gBACV;YACF;QACA,KAAKhB,qBAAU,CAACC,KAAK;YAAE;gBACrB,IAAIZ,OAAO;oBACT,OAAO2B,KAAK,CAAC,QAAQ;oBACrB,OAAOA,KAAK,CAAC,UAAU;oBACvB,OAAOA,KAAK,CAAC,aAAa;gBAC5B;gBAEA,MAAMW,OAAOtC,SAASzB,WAAWsC,0BAAe,GAAG;gBAEnD,IAAIxB,OAAO6C,IAAI,CAACP,OAAOrF,MAAM,KAAK,KAAK,CAAC6D,YAAY;oBAClDA,aAAa;gBACf;gBAEA,OAAO;oBACL,GAAI,AAACH,CAAAA,SAAS,CAACG,UAAS,KAAM;wBAC5B,SAAS,GAAGmC,KAAK,KAAK,CAAC;wBACvB,WAAW,GAAGA,KAAK,OAAO,CAAC;wBAC3B,cAAc,GAAGA,KAAK,UAAU,CAAC;wBACjC,GAAGX,KAAK;oBACV,CAAC;gBACH;YACF;QACA;YAAS;gBACP,OAAO,CAAC;YACV;IACF;AACF;AAmCO,eAAerG,eACpBiH,OAA8B;IAE9B,MAAM,EACJjF,MAAM,EACNiB,QAAQ,EACRzB,cAAc,EACdkD,KAAK,EACLvB,OAAO,EACPG,QAAQ,EACR4D,eAAe,EAChB,GAAGD;IAEJ,MAAMhF,mBACJgF,QAAQhF,gBAAgB,IAAIkF,IAAAA,oCAAsB,EAAC3F,gBAAgBQ;IAErE,IAAI6C,aAAaoC,QAAQpC,UAAU,IAAK,CAAA,CAAC,CAAC7C,UAAU,CAACiB,QAAO;IAE5D,kDAAkD;IAClD,MAAMmE,WAAW,CAACzC,WAAqBC,YACrC9E,mBAAmB;YACjB6E;YACAD;YACAE;YACApD;YACAyB;YACAjB;YACA6C;QACF;IAEF,4CAA4C;IAC5C,MAAMwC,mBAAmB,CACvBC,OACAC;QAEA,IAAIA,WAAWvG,MAAM,GAAG,GAAG;YACzB,MAAMwG,gBAAgB,IAAIhH,IAAI+G;YAC9B,OAAOD,MAAMxE,MAAM,CAAC,CAAC2E,IAAMD,cAAcE,GAAG,CAACD;QAC/C;QACA,+BAA+B;QAC/B,OAAO,EAAE;IACX;IAEA,IAAI7D,aAA0B,EAAE;IAChC,IAAIC,gBAA6B,EAAE;IACnC,IAAIF;IACJ,IAAIgE,aAAuB,EAAE;IAE7B,IAAI1E,YAAY,CAAC4B,YAAY;QAC3B,IAAI+C,QAAQC,GAAG,CAACC,uBAAuB,EAAE;YACvCH,aAAaI,KAAKC,KAAK,CAACJ,QAAQC,GAAG,CAACC,uBAAuB;QAC7D,OAAO;YACLH,aAAa,MAAM9H,kBAAkBoD,UAAUhB;YAE/C,IAAIiF,iBAAiB;gBACnBS,aAAaN,iBAAiBM,YAAYT,gBAAgBb,KAAK;YACjE;QACF;QAEA1C,cAAc,MAAMyD,SAASO,YAAYtC,qBAAU,CAACC,KAAK;QAEzD,8DAA8D;QAC9D,0DAA0D;QAC1D,IAAIvB,OAAO6C,IAAI,CAACjD,aAAa3C,MAAM,KAAK,GAAG;YACzC6D,aAAa;QACf;;QAEE,CAAA,EAAEjB,UAAU,EAAEC,aAAa,EAAE,GAAGzD,kBAChCuD,aACAR,SACA,CAAC,CAACG,SACJ;IACF;IAEA,IAAIe,YAAyB,EAAE;IAC/B,IAAIC,mBAAgC,EAAE;IACtC,IAAI2D,eAA4B,EAAE;IAClC,IAAIC,QAAoB,EAAE;IAC1B,IAAI9D;IACJ,IAAII;IAEJ,IAAIxC,QAAQ;QACV,IAAIa;QACJ,IAAIE;QACJ,IAAIC;QAEJ,IAAI4E,QAAQC,GAAG,CAACM,sBAAsB,EAAE;YACtC,kDAAkD;YAClDtF,WAAWkF,KAAKC,KAAK,CAACJ,QAAQC,GAAG,CAACM,sBAAsB;YACxDpF,cAAc,EAAE;YAChBC,eAAe,EAAE;QACnB,OAAO;YACL,MAAMoF,SAAS,MAAMxI,gBAAgBoC,QAAQC;YAC7CY,WAAWuF,OAAOvF,QAAQ;YAC1BE,cAAcqF,OAAOrF,WAAW;YAChCC,eAAeoF,OAAOpF,YAAY;YAElC,IAAIkE,iBAAiB;gBACnBrE,WAAWwE,iBAAiBxE,UAAUqE,gBAAgBmB,GAAG;YAC3D;QACF;QAEA,qCAAqC;QACrC,IAAIC;QACH,CAAClE,gBAAgBI,kBAAkB8D,mBAAmB,GAAG,MAAM/B,QAAQC,GAAG,CACzE;YACEY,SAASvE,UAAUwC,qBAAU,CAACG,GAAG;YACjC4B,SAASrE,aAAasC,qBAAU,CAACG,GAAG;YACpC4B,SAASpE,cAAcqC,qBAAU,CAACG,GAAG;SACtC;QAGH,6CAA6C;QAC7C0C,QAAQK,IAAAA,4BAAY,EAClBC,IAAAA,sCAAsB,EAACpE,gBAAgB7D,cACvCiI,IAAAA,sCAAsB,EAACF;QAIvB,CAAA,EAAEjE,SAAS,EAAEC,gBAAgB,EAAE,GAAGpE,iBAClCkE,gBACAnC,kBACAkB,SACA,CAAC,CAACG,SACJ;QACA2E,eAAe9H,oBAAoBqE,kBAAkBrB,SAAS,CAAC,CAACG;IAClE;IAEA,OAAO;QACLe;QACAC;QACA2D;QACAC;QACAtE;QACAC;QACAO;QACAI;QACAb;QACAgE;QACA9C;IACF;AACF","ignoreList":[0]}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists