{"version":3,"names":["test","expect","TEST_ACCOUNTS","partner","email","password","role","client","admin","login","page","goto","waitForLoadState","locator","first","fill","click","waitForTimeout","logout","logoutButton","isVisible","timeout","catch","createOrderAndProgressToShippedToWh","clientEmail","clientPassword","partnerEmail","partnerPassword","createOrderBtn","url","orderIdMatch","match","orderId","firstOrder","startPurchasingBtn","markPurchasedBtn","describe","step","console","log","scanInput","press","qcRejectBtn","issueDesc","screenshot","path","fullPage","statusText","textContent","qcIssue","issueText","acceptBtn","confirmBtn","newStatusText","toLowerCase","toContain","returnBtn","returnReason"],"sources":["test_qc_rejection.spec.js"],"sourcesContent":["/**\n * QC异常场景测试\n *\n * 测试场景：\n * 1. QC检查发现瑕疵 - 客户选择接受瑕疵\n * 2. QC检查发现瑕疵 - 客户选择退货\n */\n\nimport { test, expect } from '@playwright/test'\n\n// 测试账号配置\nconst TEST_ACCOUNTS = {\n  partner: {\n    email: 'e2e_test_partner@fetch.com',\n    password: 'e2etest123',\n    role: 'partner'\n  },\n  client: {\n    email: 'e2e_test_client@fetch.com',\n    password: 'e2eclient123',\n    role: 'client'\n  },\n  admin: {\n    email: 'e2e_test_admin@fetch.com',\n    password: 'e2eadmin123',\n    role: 'admin'\n  }\n}\n\n// 辅助函数：登录\nasync function login(page, email, password) {\n  await page.goto('/login')\n  await page.waitForLoadState('networkidle')\n\n  await page.locator('input[type=\"email\"], input[type=\"text\"]').first().fill(email)\n  await page.locator('input[type=\"password\"]').fill(password)\n\n  await page.locator('button[type=\"submit\"]').click()\n\n  // 等待登录完成\n  await page.waitForTimeout(3000)\n}\n\n// 辅助函数：登出\nasync function logout(page) {\n  const logoutButton = page.locator('button:has-text(\"Logout\"), button:has-text(\"登出\"), a:has-text(\"Logout\")')\n\n  if (await logoutButton.isVisible({ timeout: 2000 }).catch(() => false)) {\n    await logoutButton.click()\n    await page.waitForTimeout(1000)\n  }\n}\n\n// 辅助函数：创建测试订单并推进到 shipped_to_wh 状态\nasync function createOrderAndProgressToShippedToWh(page, clientEmail, clientPassword, partnerEmail, partnerPassword) {\n  // 1. 客户登录并创建订单\n  await login(page, clientEmail, clientPassword)\n  await page.goto('/dashboard')\n  await page.waitForLoadState('networkidle')\n\n  // 点击创建订单按钮\n  const createOrderBtn = page.locator('button:has-text(\"Create Order\"), button:has-text(\"创建订单\"), a:has-text(\"Create Order\")')\n  if (await createOrderBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n    await createOrderBtn.click()\n    await page.waitForTimeout(1000)\n  } else {\n    await page.goto('/orders/create')\n    await page.waitForLoadState('networkidle')\n  }\n\n  // 填写订单信息\n  await page.locator('input[name=\"product_url\"], input[placeholder*=\"URL\"]').fill('https://item.taobao.com/item.htm?id=test-qc-rejection')\n  await page.locator('input[name=\"product_name\"], input[placeholder*=\"商品名称\"]').fill('QC测试商品')\n  await page.locator('input[name=\"specification\"], input[placeholder*=\"规格\"]').fill('红色/L码')\n  await page.locator('input[name=\"unit_price_cny\"], input[placeholder*=\"单价\"]').fill('100')\n  await page.locator('input[name=\"quantity\"], input[placeholder*=\"数量\"]').fill('1')\n  await page.locator('input[name=\"domestic_shipping_cny\"], input[placeholder*=\"国内运费\"]').fill('10')\n\n  // 提交订单\n  await page.locator('button[type=\"submit\"]:has-text(\"Submit\"), button:has-text(\"提交订单\")').click()\n  await page.waitForTimeout(2000)\n\n  // 获取订单ID\n  const url = page.url()\n  const orderIdMatch = url.match(/orders\\/(\\d+)/)\n  const orderId = orderIdMatch ? orderIdMatch[1] : null\n\n  await logout(page)\n\n  // 2. 合伙人接单并采购\n  await login(page, partnerEmail, partnerPassword)\n\n  if (orderId) {\n    await page.goto(`/partner/orders/${orderId}`)\n  } else {\n    await page.goto('/partner/orders')\n    await page.waitForTimeout(1000)\n    // 点击第一个订单\n    const firstOrder = page.locator('[data-testid=\"order-item\"], .order-card, a[href*=\"/partner/orders/\"]').first()\n    if (await firstOrder.isVisible({ timeout: 3000 }).catch(() => false)) {\n      await firstOrder.click()\n      await page.waitForTimeout(1000)\n    }\n  }\n\n  // 开始采购\n  const startPurchasingBtn = page.locator('button:has-text(\"Start Purchasing\"), button:has-text(\"开始采购\")')\n  if (await startPurchasingBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n    await startPurchasingBtn.click()\n    await page.waitForTimeout(1000)\n  }\n\n  // 标记已采购\n  const markPurchasedBtn = page.locator('button:has-text(\"Mark Purchased\"), button:has-text(\"标记已采购\")')\n  if (await markPurchasedBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n    await markPurchasedBtn.click()\n    await page.waitForTimeout(500)\n\n    // 填写采购信息\n    await page.locator('input[name=\"tracking_number\"], input[placeholder*=\"快递单号\"]').fill('SF-QC-TEST-001')\n    await page.locator('input[name=\"actual_cost_cny\"], input[placeholder*=\"实际成本\"]').fill('95')\n\n    await page.locator('button[type=\"submit\"]:has-text(\"Submit\"), button:has-text(\"确认\")').click()\n    await page.waitForTimeout(2000)\n  }\n\n  await logout(page)\n\n  return orderId\n}\n\ntest.describe('QC异常场景测试', () => {\n\n  test('场景1: QC发现瑕疵 - 客户选择接受瑕疵', async ({ page }) => {\n    let orderId = null\n\n    await test.step('创建订单并推进到 shipped_to_wh 状态', async () => {\n      orderId = await createOrderAndProgressToShippedToWh(\n        page,\n        TEST_ACCOUNTS.client.email,\n        TEST_ACCOUNTS.client.password,\n        TEST_ACCOUNTS.partner.email,\n        TEST_ACCOUNTS.partner.password\n      )\n\n      console.log(`✓ 订单已创建并推进到 shipped_to_wh 状态，订单ID: ${orderId}`)\n    })\n\n    await test.step('合伙人扫码入库并标记QC异常', async () => {\n      await login(page, TEST_ACCOUNTS.partner.email, TEST_ACCOUNTS.partner.password)\n\n      // 访问仓库扫码页面\n      await page.goto('/partner/warehouse')\n      await page.waitForLoadState('networkidle')\n\n      // 扫描快递单号\n      const scanInput = page.locator('input[name=\"tracking_number\"], input[placeholder*=\"快递单号\"], input[placeholder*=\"扫码\"]')\n      if (await scanInput.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await scanInput.fill('SF-QC-TEST-001')\n        await scanInput.press('Enter')\n        await page.waitForTimeout(2000)\n      }\n\n      // 标记QC异常\n      const qcRejectBtn = page.locator('button:has-text(\"QC Reject\"), button:has-text(\"QC异常\"), button:has-text(\"标记瑕疵\")')\n      if (await qcRejectBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await qcRejectBtn.click()\n        await page.waitForTimeout(500)\n\n        // 填写瑕疵描述\n        const issueDesc = page.locator('textarea[name=\"qc_issue\"], textarea[placeholder*=\"瑕疵描述\"]')\n        if (await issueDesc.isVisible({ timeout: 2000 }).catch(() => false)) {\n          await issueDesc.fill('商品包装有轻微破损，但商品本身完好')\n        }\n\n        // 上传瑕疵照片（可选）\n        // const fileInput = page.locator('input[type=\"file\"]')\n        // if (await fileInput.isVisible({ timeout: 2000 }).catch(() => false)) {\n        //   await fileInput.setInputFiles('path/to/test-image.jpg')\n        // }\n\n        await page.locator('button[type=\"submit\"]:has-text(\"Submit\"), button:has-text(\"确认\")').click()\n        await page.waitForTimeout(2000)\n      }\n\n      await page.screenshot({ path: 'test-results/qc-rejection-marked.png', fullPage: true })\n      console.log('✓ QC异常已标记')\n\n      await logout(page)\n    })\n\n    await test.step('客户查看QC异常并选择接受瑕疵', async () => {\n      await login(page, TEST_ACCOUNTS.client.email, TEST_ACCOUNTS.client.password)\n\n      // 访问订单详情\n      if (orderId) {\n        await page.goto(`/orders/${orderId}`)\n      } else {\n        await page.goto('/dashboard')\n        await page.waitForTimeout(1000)\n        const firstOrder = page.locator('a[href*=\"/orders/\"]').first()\n        if (await firstOrder.isVisible({ timeout: 3000 }).catch(() => false)) {\n          await firstOrder.click()\n          await page.waitForTimeout(1000)\n        }\n      }\n\n      await page.waitForLoadState('networkidle')\n\n      // 验证订单状态为 qc_rejected\n      const statusText = await page.locator('[data-testid=\"order-status\"], .order-status, .status').textContent()\n      console.log(`✓ 当前订单状态: ${statusText}`)\n\n      // 查看瑕疵描述\n      const qcIssue = page.locator('[data-testid=\"qc-issue\"], .qc-issue')\n      if (await qcIssue.isVisible({ timeout: 3000 }).catch(() => false)) {\n        const issueText = await qcIssue.textContent()\n        console.log(`✓ 瑕疵描述: ${issueText}`)\n      }\n\n      // 点击接受瑕疵按钮\n      const acceptBtn = page.locator('button:has-text(\"Accept\"), button:has-text(\"接受瑕疵\"), button:has-text(\"接受\")')\n      if (await acceptBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await acceptBtn.click()\n        await page.waitForTimeout(500)\n\n        // 确认对话框\n        const confirmBtn = page.locator('button:has-text(\"Confirm\"), button:has-text(\"确认\")')\n        if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) {\n          await confirmBtn.click()\n          await page.waitForTimeout(2000)\n        }\n      }\n\n      await page.screenshot({ path: 'test-results/qc-rejection-accepted.png', fullPage: true })\n      console.log('✓ 客户已接受瑕疵')\n\n      // 验证状态转换为 in_warehouse\n      await page.waitForTimeout(2000)\n      const newStatusText = await page.locator('[data-testid=\"order-status\"], .order-status, .status').textContent()\n      console.log(`✓ 新订单状态: ${newStatusText}`)\n      expect(newStatusText.toLowerCase()).toContain('warehouse')\n\n      await logout(page)\n    })\n  })\n\n  test('场景2: QC发现瑕疵 - 客户选择退货', async ({ page }) => {\n    let orderId = null\n\n    await test.step('创建订单并推进到 shipped_to_wh 状态', async () => {\n      orderId = await createOrderAndProgressToShippedToWh(\n        page,\n        TEST_ACCOUNTS.client.email,\n        TEST_ACCOUNTS.client.password,\n        TEST_ACCOUNTS.partner.email,\n        TEST_ACCOUNTS.partner.password\n      )\n\n      console.log(`✓ 订单已创建并推进到 shipped_to_wh 状态，订单ID: ${orderId}`)\n    })\n\n    await test.step('合伙人扫码入库并标记QC异常', async () => {\n      await login(page, TEST_ACCOUNTS.partner.email, TEST_ACCOUNTS.partner.password)\n\n      await page.goto('/partner/warehouse')\n      await page.waitForLoadState('networkidle')\n\n      const scanInput = page.locator('input[name=\"tracking_number\"], input[placeholder*=\"快递单号\"], input[placeholder*=\"扫码\"]')\n      if (await scanInput.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await scanInput.fill('SF-QC-TEST-002')\n        await scanInput.press('Enter')\n        await page.waitForTimeout(2000)\n      }\n\n      const qcRejectBtn = page.locator('button:has-text(\"QC Reject\"), button:has-text(\"QC异常\"), button:has-text(\"标记瑕疵\")')\n      if (await qcRejectBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await qcRejectBtn.click()\n        await page.waitForTimeout(500)\n\n        const issueDesc = page.locator('textarea[name=\"qc_issue\"], textarea[placeholder*=\"瑕疵描述\"]')\n        if (await issueDesc.isVisible({ timeout: 2000 }).catch(() => false)) {\n          await issueDesc.fill('商品与描述不符，颜色错误')\n        }\n\n        await page.locator('button[type=\"submit\"]:has-text(\"Submit\"), button:has-text(\"确认\")').click()\n        await page.waitForTimeout(2000)\n      }\n\n      console.log('✓ QC异常已标记')\n      await logout(page)\n    })\n\n    await test.step('客户查看QC异常并选择退货', async () => {\n      await login(page, TEST_ACCOUNTS.client.email, TEST_ACCOUNTS.client.password)\n\n      if (orderId) {\n        await page.goto(`/orders/${orderId}`)\n      } else {\n        await page.goto('/dashboard')\n        await page.waitForTimeout(1000)\n        const firstOrder = page.locator('a[href*=\"/orders/\"]').first()\n        if (await firstOrder.isVisible({ timeout: 3000 }).catch(() => false)) {\n          await firstOrder.click()\n          await page.waitForTimeout(1000)\n        }\n      }\n\n      await page.waitForLoadState('networkidle')\n\n      // 点击退货按钮\n      const returnBtn = page.locator('button:has-text(\"Return\"), button:has-text(\"退货\"), button:has-text(\"申请退货\")')\n      if (await returnBtn.isVisible({ timeout: 3000 }).catch(() => false)) {\n        await returnBtn.click()\n        await page.waitForTimeout(500)\n\n        // 填写退货原因\n        const returnReason = page.locator('textarea[name=\"return_reason\"], textarea[placeholder*=\"退货原因\"]')\n        if (await returnReason.isVisible({ timeout: 2000 }).catch(() => false)) {\n          await returnReason.fill('商品与描述不符，要求退货')\n        }\n\n        // 确认退货\n        const confirmBtn = page.locator('button:has-text(\"Confirm\"), button:has-text(\"确认退货\")')\n        if (await confirmBtn.isVisible({ timeout: 2000 }).catch(() => false)) {\n          await confirmBtn.click()\n          await page.waitForTimeout(2000)\n        }\n      }\n\n      await page.screenshot({ path: 'test-results/qc-rejection-return-requested.png', fullPage: true })\n      console.log('✓ 客户已申请退货')\n\n      // 验证状态转换为 returning\n      await page.waitForTimeout(2000)\n      const newStatusText = await page.locator('[data-testid=\"order-status\"], .order-status, .status').textContent()\n      console.log(`✓ 新订单状态: ${newStatusText}`)\n      expect(newStatusText.toLowerCase()).toContain('return')\n\n      await logout(page)\n    })\n  })\n})\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,MAAM,QAAQ,kBAAkB;;AAE/C;AACA,MAAMC,aAAa,GAAG;EACpBC,OAAO,EAAE;IACPC,KAAK,EAAE,4BAA4B;IACnCC,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAE;EACR,CAAC;EACDC,MAAM,EAAE;IACNH,KAAK,EAAE,2BAA2B;IAClCC,QAAQ,EAAE,cAAc;IACxBC,IAAI,EAAE;EACR,CAAC;EACDE,KAAK,EAAE;IACLJ,KAAK,EAAE,0BAA0B;IACjCC,QAAQ,EAAE,aAAa;IACvBC,IAAI,EAAE;EACR;AACF,CAAC;;AAED;AACA,eAAeG,KAAKA,CAACC,IAAI,EAAEN,KAAK,EAAEC,QAAQ,EAAE;EAC1C,MAAMK,IAAI,CAACC,IAAI,CAAC,QAAQ,CAAC;EACzB,MAAMD,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;EAE1C,MAAMF,IAAI,CAACG,OAAO,CAAC,yCAAyC,CAAC,CAACC,KAAK,CAAC,CAAC,CAACC,IAAI,CAACX,KAAK,CAAC;EACjF,MAAMM,IAAI,CAACG,OAAO,CAAC,wBAAwB,CAAC,CAACE,IAAI,CAACV,QAAQ,CAAC;EAE3D,MAAMK,IAAI,CAACG,OAAO,CAAC,uBAAuB,CAAC,CAACG,KAAK,CAAC,CAAC;;EAEnD;EACA,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;AACjC;;AAEA;AACA,eAAeC,MAAMA,CAACR,IAAI,EAAE;EAC1B,MAAMS,YAAY,GAAGT,IAAI,CAACG,OAAO,CAAC,wEAAwE,CAAC;EAE3G,IAAI,MAAMM,YAAY,CAACC,SAAS,CAAC;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACtE,MAAMH,YAAY,CAACH,KAAK,CAAC,CAAC;IAC1B,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;EACjC;AACF;;AAEA;AACA,eAAeM,mCAAmCA,CAACb,IAAI,EAAEc,WAAW,EAAEC,cAAc,EAAEC,YAAY,EAAEC,eAAe,EAAE;EACnH;EACA,MAAMlB,KAAK,CAACC,IAAI,EAAEc,WAAW,EAAEC,cAAc,CAAC;EAC9C,MAAMf,IAAI,CAACC,IAAI,CAAC,YAAY,CAAC;EAC7B,MAAMD,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;;EAE1C;EACA,MAAMgB,cAAc,GAAGlB,IAAI,CAACG,OAAO,CAAC,sFAAsF,CAAC;EAC3H,IAAI,MAAMe,cAAc,CAACR,SAAS,CAAC;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACxE,MAAMM,cAAc,CAACZ,KAAK,CAAC,CAAC;IAC5B,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;EACjC,CAAC,MAAM;IACL,MAAMP,IAAI,CAACC,IAAI,CAAC,gBAAgB,CAAC;IACjC,MAAMD,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;EAC5C;;EAEA;EACA,MAAMF,IAAI,CAACG,OAAO,CAAC,sDAAsD,CAAC,CAACE,IAAI,CAAC,uDAAuD,CAAC;EACxI,MAAML,IAAI,CAACG,OAAO,CAAC,wDAAwD,CAAC,CAACE,IAAI,CAAC,QAAQ,CAAC;EAC3F,MAAML,IAAI,CAACG,OAAO,CAAC,uDAAuD,CAAC,CAACE,IAAI,CAAC,OAAO,CAAC;EACzF,MAAML,IAAI,CAACG,OAAO,CAAC,wDAAwD,CAAC,CAACE,IAAI,CAAC,KAAK,CAAC;EACxF,MAAML,IAAI,CAACG,OAAO,CAAC,kDAAkD,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;EAChF,MAAML,IAAI,CAACG,OAAO,CAAC,iEAAiE,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC;;EAEhG;EACA,MAAML,IAAI,CAACG,OAAO,CAAC,mEAAmE,CAAC,CAACG,KAAK,CAAC,CAAC;EAC/F,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;;EAE/B;EACA,MAAMY,GAAG,GAAGnB,IAAI,CAACmB,GAAG,CAAC,CAAC;EACtB,MAAMC,YAAY,GAAGD,GAAG,CAACE,KAAK,CAAC,eAAe,CAAC;EAC/C,MAAMC,OAAO,GAAGF,YAAY,GAAGA,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;EAErD,MAAMZ,MAAM,CAACR,IAAI,CAAC;;EAElB;EACA,MAAMD,KAAK,CAACC,IAAI,EAAEgB,YAAY,EAAEC,eAAe,CAAC;EAEhD,IAAIK,OAAO,EAAE;IACX,MAAMtB,IAAI,CAACC,IAAI,CAAC,mBAAmBqB,OAAO,EAAE,CAAC;EAC/C,CAAC,MAAM;IACL,MAAMtB,IAAI,CAACC,IAAI,CAAC,iBAAiB,CAAC;IAClC,MAAMD,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;IAC/B;IACA,MAAMgB,UAAU,GAAGvB,IAAI,CAACG,OAAO,CAAC,sEAAsE,CAAC,CAACC,KAAK,CAAC,CAAC;IAC/G,IAAI,MAAMmB,UAAU,CAACb,SAAS,CAAC;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;MACpE,MAAMW,UAAU,CAACjB,KAAK,CAAC,CAAC;MACxB,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;IACjC;EACF;;EAEA;EACA,MAAMiB,kBAAkB,GAAGxB,IAAI,CAACG,OAAO,CAAC,8DAA8D,CAAC;EACvG,IAAI,MAAMqB,kBAAkB,CAACd,SAAS,CAAC;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IAC5E,MAAMY,kBAAkB,CAAClB,KAAK,CAAC,CAAC;IAChC,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;EACjC;;EAEA;EACA,MAAMkB,gBAAgB,GAAGzB,IAAI,CAACG,OAAO,CAAC,6DAA6D,CAAC;EACpG,IAAI,MAAMsB,gBAAgB,CAACf,SAAS,CAAC;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IAC1E,MAAMa,gBAAgB,CAACnB,KAAK,CAAC,CAAC;IAC9B,MAAMN,IAAI,CAACO,cAAc,CAAC,GAAG,CAAC;;IAE9B;IACA,MAAMP,IAAI,CAACG,OAAO,CAAC,2DAA2D,CAAC,CAACE,IAAI,CAAC,gBAAgB,CAAC;IACtG,MAAML,IAAI,CAACG,OAAO,CAAC,2DAA2D,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC;IAE1F,MAAML,IAAI,CAACG,OAAO,CAAC,iEAAiE,CAAC,CAACG,KAAK,CAAC,CAAC;IAC7F,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;EACjC;EAEA,MAAMC,MAAM,CAACR,IAAI,CAAC;EAElB,OAAOsB,OAAO;AAChB;AAEAhC,IAAI,CAACoC,QAAQ,CAAC,UAAU,EAAE,MAAM;EAE9BpC,IAAI,CAAC,wBAAwB,EAAE,OAAO;IAAEU;EAAK,CAAC,KAAK;IACjD,IAAIsB,OAAO,GAAG,IAAI;IAElB,MAAMhC,IAAI,CAACqC,IAAI,CAAC,2BAA2B,EAAE,YAAY;MACvDL,OAAO,GAAG,MAAMT,mCAAmC,CACjDb,IAAI,EACJR,aAAa,CAACK,MAAM,CAACH,KAAK,EAC1BF,aAAa,CAACK,MAAM,CAACF,QAAQ,EAC7BH,aAAa,CAACC,OAAO,CAACC,KAAK,EAC3BF,aAAa,CAACC,OAAO,CAACE,QACxB,CAAC;MAEDiC,OAAO,CAACC,GAAG,CAAC,sCAAsCP,OAAO,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAMhC,IAAI,CAACqC,IAAI,CAAC,gBAAgB,EAAE,YAAY;MAC5C,MAAM5B,KAAK,CAACC,IAAI,EAAER,aAAa,CAACC,OAAO,CAACC,KAAK,EAAEF,aAAa,CAACC,OAAO,CAACE,QAAQ,CAAC;;MAE9E;MACA,MAAMK,IAAI,CAACC,IAAI,CAAC,oBAAoB,CAAC;MACrC,MAAMD,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;;MAE1C;MACA,MAAM4B,SAAS,GAAG9B,IAAI,CAACG,OAAO,CAAC,qFAAqF,CAAC;MACrH,IAAI,MAAM2B,SAAS,CAACpB,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACnE,MAAMkB,SAAS,CAACzB,IAAI,CAAC,gBAAgB,CAAC;QACtC,MAAMyB,SAAS,CAACC,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM/B,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MACjC;;MAEA;MACA,MAAMyB,WAAW,GAAGhC,IAAI,CAACG,OAAO,CAAC,gFAAgF,CAAC;MAClH,IAAI,MAAM6B,WAAW,CAACtB,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACrE,MAAMoB,WAAW,CAAC1B,KAAK,CAAC,CAAC;QACzB,MAAMN,IAAI,CAACO,cAAc,CAAC,GAAG,CAAC;;QAE9B;QACA,MAAM0B,SAAS,GAAGjC,IAAI,CAACG,OAAO,CAAC,0DAA0D,CAAC;QAC1F,IAAI,MAAM8B,SAAS,CAACvB,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACnE,MAAMqB,SAAS,CAAC5B,IAAI,CAAC,mBAAmB,CAAC;QAC3C;;QAEA;QACA;QACA;QACA;QACA;;QAEA,MAAML,IAAI,CAACG,OAAO,CAAC,iEAAiE,CAAC,CAACG,KAAK,CAAC,CAAC;QAC7F,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MACjC;MAEA,MAAMP,IAAI,CAACkC,UAAU,CAAC;QAAEC,IAAI,EAAE,sCAAsC;QAAEC,QAAQ,EAAE;MAAK,CAAC,CAAC;MACvFR,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;MAExB,MAAMrB,MAAM,CAACR,IAAI,CAAC;IACpB,CAAC,CAAC;IAEF,MAAMV,IAAI,CAACqC,IAAI,CAAC,iBAAiB,EAAE,YAAY;MAC7C,MAAM5B,KAAK,CAACC,IAAI,EAAER,aAAa,CAACK,MAAM,CAACH,KAAK,EAAEF,aAAa,CAACK,MAAM,CAACF,QAAQ,CAAC;;MAE5E;MACA,IAAI2B,OAAO,EAAE;QACX,MAAMtB,IAAI,CAACC,IAAI,CAAC,WAAWqB,OAAO,EAAE,CAAC;MACvC,CAAC,MAAM;QACL,MAAMtB,IAAI,CAACC,IAAI,CAAC,YAAY,CAAC;QAC7B,MAAMD,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QAC/B,MAAMgB,UAAU,GAAGvB,IAAI,CAACG,OAAO,CAAC,qBAAqB,CAAC,CAACC,KAAK,CAAC,CAAC;QAC9D,IAAI,MAAMmB,UAAU,CAACb,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACpE,MAAMW,UAAU,CAACjB,KAAK,CAAC,CAAC;UACxB,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QACjC;MACF;MAEA,MAAMP,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;;MAE1C;MACA,MAAMmC,UAAU,GAAG,MAAMrC,IAAI,CAACG,OAAO,CAAC,sDAAsD,CAAC,CAACmC,WAAW,CAAC,CAAC;MAC3GV,OAAO,CAACC,GAAG,CAAC,aAAaQ,UAAU,EAAE,CAAC;;MAEtC;MACA,MAAME,OAAO,GAAGvC,IAAI,CAACG,OAAO,CAAC,qCAAqC,CAAC;MACnE,IAAI,MAAMoC,OAAO,CAAC7B,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACjE,MAAM4B,SAAS,GAAG,MAAMD,OAAO,CAACD,WAAW,CAAC,CAAC;QAC7CV,OAAO,CAACC,GAAG,CAAC,WAAWW,SAAS,EAAE,CAAC;MACrC;;MAEA;MACA,MAAMC,SAAS,GAAGzC,IAAI,CAACG,OAAO,CAAC,2EAA2E,CAAC;MAC3G,IAAI,MAAMsC,SAAS,CAAC/B,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACnE,MAAM6B,SAAS,CAACnC,KAAK,CAAC,CAAC;QACvB,MAAMN,IAAI,CAACO,cAAc,CAAC,GAAG,CAAC;;QAE9B;QACA,MAAMmC,UAAU,GAAG1C,IAAI,CAACG,OAAO,CAAC,mDAAmD,CAAC;QACpF,IAAI,MAAMuC,UAAU,CAAChC,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACpE,MAAM8B,UAAU,CAACpC,KAAK,CAAC,CAAC;UACxB,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QACjC;MACF;MAEA,MAAMP,IAAI,CAACkC,UAAU,CAAC;QAAEC,IAAI,EAAE,wCAAwC;QAAEC,QAAQ,EAAE;MAAK,CAAC,CAAC;MACzFR,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;;MAExB;MACA,MAAM7B,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MAC/B,MAAMoC,aAAa,GAAG,MAAM3C,IAAI,CAACG,OAAO,CAAC,sDAAsD,CAAC,CAACmC,WAAW,CAAC,CAAC;MAC9GV,OAAO,CAACC,GAAG,CAAC,YAAYc,aAAa,EAAE,CAAC;MACxCpD,MAAM,CAACoD,aAAa,CAACC,WAAW,CAAC,CAAC,CAAC,CAACC,SAAS,CAAC,WAAW,CAAC;MAE1D,MAAMrC,MAAM,CAACR,IAAI,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFV,IAAI,CAAC,sBAAsB,EAAE,OAAO;IAAEU;EAAK,CAAC,KAAK;IAC/C,IAAIsB,OAAO,GAAG,IAAI;IAElB,MAAMhC,IAAI,CAACqC,IAAI,CAAC,2BAA2B,EAAE,YAAY;MACvDL,OAAO,GAAG,MAAMT,mCAAmC,CACjDb,IAAI,EACJR,aAAa,CAACK,MAAM,CAACH,KAAK,EAC1BF,aAAa,CAACK,MAAM,CAACF,QAAQ,EAC7BH,aAAa,CAACC,OAAO,CAACC,KAAK,EAC3BF,aAAa,CAACC,OAAO,CAACE,QACxB,CAAC;MAEDiC,OAAO,CAACC,GAAG,CAAC,sCAAsCP,OAAO,EAAE,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAMhC,IAAI,CAACqC,IAAI,CAAC,gBAAgB,EAAE,YAAY;MAC5C,MAAM5B,KAAK,CAACC,IAAI,EAAER,aAAa,CAACC,OAAO,CAACC,KAAK,EAAEF,aAAa,CAACC,OAAO,CAACE,QAAQ,CAAC;MAE9E,MAAMK,IAAI,CAACC,IAAI,CAAC,oBAAoB,CAAC;MACrC,MAAMD,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;MAE1C,MAAM4B,SAAS,GAAG9B,IAAI,CAACG,OAAO,CAAC,qFAAqF,CAAC;MACrH,IAAI,MAAM2B,SAAS,CAACpB,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACnE,MAAMkB,SAAS,CAACzB,IAAI,CAAC,gBAAgB,CAAC;QACtC,MAAMyB,SAAS,CAACC,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM/B,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MACjC;MAEA,MAAMyB,WAAW,GAAGhC,IAAI,CAACG,OAAO,CAAC,gFAAgF,CAAC;MAClH,IAAI,MAAM6B,WAAW,CAACtB,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACrE,MAAMoB,WAAW,CAAC1B,KAAK,CAAC,CAAC;QACzB,MAAMN,IAAI,CAACO,cAAc,CAAC,GAAG,CAAC;QAE9B,MAAM0B,SAAS,GAAGjC,IAAI,CAACG,OAAO,CAAC,0DAA0D,CAAC;QAC1F,IAAI,MAAM8B,SAAS,CAACvB,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACnE,MAAMqB,SAAS,CAAC5B,IAAI,CAAC,cAAc,CAAC;QACtC;QAEA,MAAML,IAAI,CAACG,OAAO,CAAC,iEAAiE,CAAC,CAACG,KAAK,CAAC,CAAC;QAC7F,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MACjC;MAEAqB,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;MACxB,MAAMrB,MAAM,CAACR,IAAI,CAAC;IACpB,CAAC,CAAC;IAEF,MAAMV,IAAI,CAACqC,IAAI,CAAC,eAAe,EAAE,YAAY;MAC3C,MAAM5B,KAAK,CAACC,IAAI,EAAER,aAAa,CAACK,MAAM,CAACH,KAAK,EAAEF,aAAa,CAACK,MAAM,CAACF,QAAQ,CAAC;MAE5E,IAAI2B,OAAO,EAAE;QACX,MAAMtB,IAAI,CAACC,IAAI,CAAC,WAAWqB,OAAO,EAAE,CAAC;MACvC,CAAC,MAAM;QACL,MAAMtB,IAAI,CAACC,IAAI,CAAC,YAAY,CAAC;QAC7B,MAAMD,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QAC/B,MAAMgB,UAAU,GAAGvB,IAAI,CAACG,OAAO,CAAC,qBAAqB,CAAC,CAACC,KAAK,CAAC,CAAC;QAC9D,IAAI,MAAMmB,UAAU,CAACb,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACpE,MAAMW,UAAU,CAACjB,KAAK,CAAC,CAAC;UACxB,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QACjC;MACF;MAEA,MAAMP,IAAI,CAACE,gBAAgB,CAAC,aAAa,CAAC;;MAE1C;MACA,MAAM4C,SAAS,GAAG9C,IAAI,CAACG,OAAO,CAAC,2EAA2E,CAAC;MAC3G,IAAI,MAAM2C,SAAS,CAACpC,SAAS,CAAC;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACnE,MAAMkC,SAAS,CAACxC,KAAK,CAAC,CAAC;QACvB,MAAMN,IAAI,CAACO,cAAc,CAAC,GAAG,CAAC;;QAE9B;QACA,MAAMwC,YAAY,GAAG/C,IAAI,CAACG,OAAO,CAAC,+DAA+D,CAAC;QAClG,IAAI,MAAM4C,YAAY,CAACrC,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACtE,MAAMmC,YAAY,CAAC1C,IAAI,CAAC,cAAc,CAAC;QACzC;;QAEA;QACA,MAAMqC,UAAU,GAAG1C,IAAI,CAACG,OAAO,CAAC,qDAAqD,CAAC;QACtF,IAAI,MAAMuC,UAAU,CAAChC,SAAS,CAAC;UAAEC,OAAO,EAAE;QAAK,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACpE,MAAM8B,UAAU,CAACpC,KAAK,CAAC,CAAC;UACxB,MAAMN,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;QACjC;MACF;MAEA,MAAMP,IAAI,CAACkC,UAAU,CAAC;QAAEC,IAAI,EAAE,gDAAgD;QAAEC,QAAQ,EAAE;MAAK,CAAC,CAAC;MACjGR,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;;MAExB;MACA,MAAM7B,IAAI,CAACO,cAAc,CAAC,IAAI,CAAC;MAC/B,MAAMoC,aAAa,GAAG,MAAM3C,IAAI,CAACG,OAAO,CAAC,sDAAsD,CAAC,CAACmC,WAAW,CAAC,CAAC;MAC9GV,OAAO,CAACC,GAAG,CAAC,YAAYc,aAAa,EAAE,CAAC;MACxCpD,MAAM,CAACoD,aAAa,CAACC,WAAW,CAAC,CAAC,CAAC,CAACC,SAAS,CAAC,QAAQ,CAAC;MAEvD,MAAMrC,MAAM,CAACR,IAAI,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}