six-degrees 0.4.0 → 0.4.2

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.
Files changed (209) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +14 -14
  4. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.rsc +2 -2
  7. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  9. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  12. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  14. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/ingest/route.js +1 -1
  30. package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/favicon.ico.body +0 -0
  47. package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/import.html +1 -1
  49. package/.next/standalone/.next/server/app/import.rsc +2 -2
  50. package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +2 -2
  51. package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/index.html +1 -1
  54. package/.next/standalone/.next/server/app/index.rsc +3 -3
  55. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  56. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  57. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/launch.html +2 -2
  60. package/.next/standalone/.next/server/app/launch.rsc +2 -2
  61. package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +2 -2
  62. package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/paths.html +1 -1
  69. package/.next/standalone/.next/server/app/paths.rsc +3 -3
  70. package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +3 -3
  71. package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +2 -2
  73. package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/profile.html +1 -1
  76. package/.next/standalone/.next/server/app/profile.rsc +3 -3
  77. package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +3 -3
  78. package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +1 -1
  79. package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +2 -2
  80. package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
  81. package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/queue.html +1 -1
  83. package/.next/standalone/.next/server/app/queue.rsc +3 -3
  84. package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +3 -3
  85. package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +2 -2
  87. package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/scores.html +1 -1
  89. package/.next/standalone/.next/server/app/scores.rsc +2 -2
  90. package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +2 -2
  91. package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +1 -1
  93. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/settings.html +1 -1
  95. package/.next/standalone/.next/server/app/settings.rsc +2 -2
  96. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  97. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  98. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  99. package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/setup.html +1 -1
  102. package/.next/standalone/.next/server/app/setup.rsc +3 -3
  103. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  104. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e0fei3._.js +1 -1
  107. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__03ydxxh._.js → [root-of-the-server]__20tmem7._.js} +1 -1
  108. package/.next/standalone/.next/server/chunks/_1_fynia._.js +6 -6
  109. package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
  110. package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/_1mxn_lb._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +21 -7
  113. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00d8snt._.js +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00g61b8._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08lf3gy._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ho-u0w._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ze473p._.js +1 -1
  119. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1194jps._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1cnxxc9._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ll97ry._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1m0255u._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1w9z0zv._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/_15xuwkv._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/_1hgd5dp._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/_20w06i-._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +4 -4
  128. package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +6 -2
  130. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  131. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  132. package/.next/standalone/.next/server/pages/404.html +1 -1
  133. package/.next/standalone/.next/server/pages/500.html +1 -1
  134. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  136. package/.next/standalone/.next/static/chunks/{3e8zg6ctvvb8p.js → 049vavjsmqgmn.js} +3 -3
  137. package/.next/standalone/.next/static/chunks/0ljxa-wk_iu__.js +18 -0
  138. package/.next/standalone/.next/static/chunks/0mp9b72fm-jp6.js +6 -0
  139. package/.next/standalone/.next/static/chunks/1pre1cotntk6-.js +1 -0
  140. package/.next/standalone/.next/static/chunks/{18xu0fbgo_qz-.js → 22x2_r768-u5i.js} +1 -1
  141. package/.next/standalone/.next/static/chunks/2p5yt1o9tnxjn.js +2 -0
  142. package/.next/standalone/.next/static/chunks/3zs_6-nn0dapb.js +1 -0
  143. package/.next/standalone/.next/static/media/favicon.0zdzw5kurn8m-.ico +0 -0
  144. package/.next/standalone/CHANGELOG.md +86 -0
  145. package/.next/standalone/app/api/admin-delete/route.js +3 -0
  146. package/.next/standalone/app/api/ingest/route.js +13 -0
  147. package/.next/standalone/app/api/scraper/route.js +10 -2
  148. package/.next/standalone/app/components/ChainView.js +76 -15
  149. package/.next/standalone/app/components/FilterPanel.js +37 -1
  150. package/.next/standalone/app/components/ForceGraph.js +144 -12
  151. package/.next/standalone/app/components/LinkedInLimits.js +20 -3
  152. package/.next/standalone/app/components/OrbitGraph.js +92 -30
  153. package/.next/standalone/app/components/Sidebar.js +37 -0
  154. package/.next/standalone/app/components/views.js +7 -5
  155. package/.next/standalone/app/favicon.ico +0 -0
  156. package/.next/standalone/app/page.js +24 -7
  157. package/.next/standalone/app/paths/page.js +8 -1
  158. package/.next/standalone/db/schema.js +14 -0
  159. package/.next/standalone/lib/brokerage.js +94 -0
  160. package/.next/standalone/lib/chain-layout.js +89 -0
  161. package/.next/standalone/lib/circle.js +23 -4
  162. package/.next/standalone/lib/degrees.js +30 -0
  163. package/.next/standalone/lib/dot-rings.js +21 -0
  164. package/.next/standalone/lib/ingest.js +3 -3
  165. package/.next/standalone/lib/linkedin-limits.js +9 -4
  166. package/.next/standalone/lib/reach.js +22 -1
  167. package/.next/standalone/lib/search-risk.js +38 -0
  168. package/.next/standalone/lib/ties.js +23 -0
  169. package/.next/standalone/package-lock.json +2 -2
  170. package/.next/standalone/package.json +1 -1
  171. package/.next/standalone/scripts/scrape.py +50 -12
  172. package/.next/static/chunks/{3e8zg6ctvvb8p.js → 049vavjsmqgmn.js} +3 -3
  173. package/.next/static/chunks/0ljxa-wk_iu__.js +18 -0
  174. package/.next/static/chunks/0mp9b72fm-jp6.js +6 -0
  175. package/.next/static/chunks/1pre1cotntk6-.js +1 -0
  176. package/.next/static/chunks/{18xu0fbgo_qz-.js → 22x2_r768-u5i.js} +1 -1
  177. package/.next/static/chunks/2p5yt1o9tnxjn.js +2 -0
  178. package/.next/static/chunks/3zs_6-nn0dapb.js +1 -0
  179. package/.next/static/media/favicon.0zdzw5kurn8m-.ico +0 -0
  180. package/CHANGELOG.md +86 -0
  181. package/db/schema.js +14 -0
  182. package/lib/brokerage.js +94 -0
  183. package/lib/chain-layout.js +89 -0
  184. package/lib/circle.js +23 -4
  185. package/lib/degrees.js +30 -0
  186. package/lib/dot-rings.js +21 -0
  187. package/lib/ingest.js +3 -3
  188. package/lib/linkedin-limits.js +9 -4
  189. package/lib/reach.js +22 -1
  190. package/lib/search-risk.js +38 -0
  191. package/lib/ties.js +23 -0
  192. package/package.json +1 -1
  193. package/scripts/scrape.py +50 -12
  194. package/.next/standalone/.next/static/chunks/0w76iraw7ij3k.js +0 -18
  195. package/.next/standalone/.next/static/chunks/135n87ydxjrra.js +0 -2
  196. package/.next/standalone/.next/static/chunks/2pnbm1z6j7xab.js +0 -1
  197. package/.next/standalone/.next/static/chunks/3qh78g2aqhprd.js +0 -2
  198. package/.next/standalone/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  199. package/.next/static/chunks/0w76iraw7ij3k.js +0 -18
  200. package/.next/static/chunks/135n87ydxjrra.js +0 -2
  201. package/.next/static/chunks/2pnbm1z6j7xab.js +0 -1
  202. package/.next/static/chunks/3qh78g2aqhprd.js +0 -2
  203. package/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  204. /package/.next/standalone/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_buildManifest.js +0 -0
  205. /package/.next/standalone/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_clientMiddlewareManifest.js +0 -0
  206. /package/.next/standalone/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_ssgManifest.js +0 -0
  207. /package/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_buildManifest.js +0 -0
  208. /package/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_clientMiddlewareManifest.js +0 -0
  209. /package/.next/static/{WseE_5HuU-1q0ywC9CP3U → wGVrXBkFLmEB4snfhtOcO}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[64935,e=>{"use strict";var t=e.i(80998);let r=["january","february","march","april","may","june","july","august","september","october","november","december"],n=new Set(["S","A"]);async function i(e,{profileUrl:t,userId:r,fields:n={}}){if(!t)return{promoted:!1,reason:"no profile url"};if(!r)return{promoted:!1,reason:"no profile"};let l=e.from("linkedin_connections").select("*").eq("profile_url",t);r&&(l=l.eq("user_id",r));let{data:s}=await l,d=s||[];if(0===d.length)return{promoted:!1,reason:"not on file"};let c=d.filter(e=>1===e.degree);if(c.length>0){let t=await o(e,c),r=d.filter(e=>e.id!==t.id&&e.user_id===t.user_id);for(let n of r)await a(e,n.id,t.id)&&await e.from("linkedin_connections").delete().eq("id",n.id);return Object.keys(n).length&&await e.from("linkedin_connections").update({...n,updated_at:new Date().toISOString()}).eq("id",t.id),{promoted:!1,reason:"already a direct connection",id:t.id,folded:r.length}}let u=d.find(e=>e.unlocked_from_bridge_id)||d.slice().sort((e,t)=>(t.degree||0)-(e.degree||0))[0],p=u.unlocked_from_bridge_id||u.source_connection_id||null,f=u.unlocked_from_name||null;if(p&&!f){let{data:t}=await e.from("linkedin_connections").select("name").eq("id",p).limit(1);f=t?.[0]?.name||null}let _={degree:1,source_connection_id:null,unlock_status:p?"unlocked":u.unlock_status,unlocked_from_bridge_id:p,unlocked_from_name:f,updated_at:new Date().toISOString(),...n};for(let t of d.filter(e=>e.id!==u.id))await a(e,t.id,u.id)&&await e.from("linkedin_connections").delete().eq("id",t.id);return await e.from("linkedin_connections").update(_).eq("id",u.id),{promoted:!0,id:u.id,originId:p,originName:f}}async function o(e,t){if(1===t.length)return t[0];let r=t[0],n=-1;for(let i of t){let{data:t}=await e.from("linkedin_connections").select("id").eq("source_connection_id",i.id),o=(t||[]).length;o>n&&(r=i,n=o)}return r}async function a(e,t,r){let{data:n,error:i}=await e.from("linkedin_connections").select("id, profile_url, user_id").eq("source_connection_id",t);if(i)return!1;for(let t of n||[]){let{data:n}=await e.from("linkedin_connections").select("id").eq("source_connection_id",r).eq("profile_url",t.profile_url).eq("user_id",t.user_id),{error:i}=(n||[]).length?await e.from("linkedin_connections").delete().eq("id",t.id):await e.from("linkedin_connections").update({source_connection_id:r}).eq("id",t.id);if(i)return!1}let{error:o}=await e.from("linkedin_connections").update({unlocked_from_bridge_id:r}).eq("unlocked_from_bridge_id",t);return!o}var l=e.i(98612);async function s(e){try{var o;let a,{connections:s,type:d,bridgeId:c,userId:u,companyName:p}=await e.json();if(!s||!Array.isArray(s))return Response.json({error:"Missing connections array"},{status:400});let f="degree2"===d?2:"company"===d?3:1,_=s.map(e=>{var t;let n,{role:i,company:o}=function(e){if(!e)return{role:"",company:""};let t=e.match(/^(.+?)\s+(?:at|@)\s+(.+?)(?:\s*\|.*)?$/i);return t?{role:t[1].trim(),company:t[2].trim()}:{role:e.split("|")[0].trim(),company:""}}(e.headline),a={degree:f,name:e.name?.trim(),headline:(e.headline||"").trim().substring(0,200),company:(o||("company"===d?p:"")||"").substring(0,100),role:i.substring(0,100),profile_url:e.profileUrl?.trim(),profile_image_url:(0,l.localPhoto)(e.imageUrl),connected_date:function(e){let t,n,i,o=String(e||"").trim();if(/^\d{4}-\d{2}-\d{2}$/.test(o))return o;let a=o.match(/^([A-Za-z]+)\.?\s+(\d{1,2}),?\s+(\d{4})$/);if(a)[,t,n,i]=a;else{if(!(a=o.match(/^(\d{1,2})\s+([A-Za-z]+)\.?\s+(\d{4})$/)))return null;[,n,t,i]=a}let l=r.findIndex(e=>e.startsWith(t.toLowerCase())&&t.length>=3);return(n=Number(n),l<0||n<1||n>new Date(Date.UTC(Number(i),l+1,0)).getUTCDate())?null:`${i}-${String(l+1).padStart(2,"0")}-${String(n).padStart(2,"0")}`}(e.connectedDate),mutual_count:2===f?(t=e.mutualCount,n="string"==typeof t&&/^\d[\d,]*$/.test(t.trim())?Number(t.replace(/,/g,"")):t,Number.isInteger(n)&&n>=1&&n<=3e4?n:null):null};return 2===f&&c&&(a.source_connection_id=c),"company"===d&&p&&(a.scanned_company=p),u&&(a.user_id=u),a}).filter(e=>e.name&&e.profile_url),m=_.length;o=_,a=new Set,_=o.filter(e=>!(!e||!e.profile_url||a.has(e.profile_url))&&(a.add(e.profile_url),!0));let h=m-_.length,g=0;if(f>1&&u&&_.length>0){let e=new Set,r=_.map(e=>e.profile_url);for(let n=0;n<r.length;n+=100){let{data:i}=await t.db.from("linkedin_connections").select("profile_url").in("profile_url",r.slice(n,n+100)).eq("user_id",u).eq("degree",1);(i||[]).forEach(t=>e.add(t.profile_url))}let n=function(e,t){let r=[],n=0;for(let i of e)t.has(i.profile_url)?n+=1:r.push(i);return{keep:r,alreadyConnected:n}}(_,e);_=n.keep,g=n.alreadyConnected}let w=_.map(e=>e.profile_url).filter(Boolean),y=new Set;if(w.length>0)for(let e=0;e<w.length;e+=100){let r=w.slice(e,e+100),n=t.db.from("linkedin_connections").select("profile_url").in("profile_url",r);2===f&&c&&(n=n.eq("source_connection_id",c)),u&&(n=n.eq("user_id",u));let{data:i}=await n;(i||[]).forEach(e=>y.add(e.profile_url))}let R=_.filter(e=>!y.has(e.profile_url)),b=_.filter(e=>y.has(e.profile_url)),v=0;if(1===f&&b.length>0){let e=new Set;for(let r=0;r<b.length;r+=100){let n=b.slice(r,r+100).map(e=>e.profile_url),i=t.db.from("linkedin_connections").select("profile_url, degree").in("profile_url",n).eq("degree",2);u&&(i=i.eq("user_id",u));let{data:o}=await i;(o||[]).forEach(t=>e.add(t.profile_url))}for(let r of b)e.has(r.profile_url)&&(await i(t.db,{profileUrl:r.profile_url,userId:u,fields:{name:r.name,headline:r.headline,company:r.company,role:r.role,...r.profile_image_url?{profile_image_url:r.profile_image_url}:{}}})).promoted&&(v+=1)}let k=null;if(R.length>0){let{error:e}=await t.db.from("linkedin_connections").insert(R);k=e}if(1===f&&b.length>0)for(let e of b){let r={};e.headline&&(r.headline=e.headline),e.company&&(r.company=e.company),e.role&&(r.role=e.role),e.profile_image_url&&(r.profile_image_url=e.profile_image_url),e.connected_date&&(r.connected_date=e.connected_date),Object.keys(r).length>0&&await t.db.from("linkedin_connections").update(r).eq("profile_url",e.profile_url).eq("degree",1)}if(k)return console.error("Supabase insert error:",k),Response.json({error:k.message},{status:500});if(2===f)for(let e of _){if(null==e.mutual_count)continue;let r=t.db.from("linkedin_connections").update({mutual_count:e.mutual_count}).eq("profile_url",e.profile_url).eq("degree",2);u&&(r=r.eq("user_id",u)),await r}let q=2===f&&c?(await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst").eq("id",c).single()).data:null;try{await t.db.rpc("score_new_connections")}catch(e){}if(q)try{let{data:e}=await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst, circle_s_count, circle_a_count, circle_elite_pct").eq("id",c).single();if(e){let r=`${e.circle_s_count} S-tier, ${e.circle_a_count} A-tier, ${Math.round(100*(e.circle_elite_pct||0))}% A or S in their circle`,n=parseFloat(q.power_score)||0,i=parseFloat(e.power_score)||0;if(i>n){let o=e.tier!==q.tier;await t.db.from("notifications").insert([{user_id:u||null,type:"bridge_scored",title:o?`Bridge promoted: ${q.tier||"?"} → ${e.tier}`:`Bridge score updated: ${n.toFixed(1)} → ${i.toFixed(1)}`,message:r,icon:o?"⬆️":"📊"}]).catch(()=>{})}e.is_catalyst&&!q.is_catalyst&&await t.db.from("notifications").insert([{user_id:u||null,type:"catalyst_found",title:`Catalyst discovered: ${e.name||"Unknown"}`,message:r,icon:"⚡"}]).catch(()=>{})}}catch(e){}if(1===f&&_.length>0)try{let e=_.map(e=>e.profile_url).filter(Boolean),{data:r}=await t.db.from("linkedin_connections").select("id, name, profile_url").eq("outreach_status","sent").in("profile_url",e.slice(0,200));if(r&&r.length>0){let{data:e}=await t.db.from("linkedin_connections").select("id, name, tier, profile_url, source_connection_id").in("id",r.map(e=>e.id)),n=r.map(e=>e.id);await t.db.from("linkedin_connections").update({outreach_status:"accepted"}).in("id",n);let i={S:100,A:60,B:35,C:15,D:5},o=0;if((e||[]).forEach(e=>{o+=i[e.tier]||5}),o>0&&u){let{data:e}=await t.db.from("user_stats").select("xp").eq("id",u).single();e?await t.db.from("user_stats").update({xp:(e.xp||0)+o}).eq("id",u):await t.db.from("user_stats").insert([{id:u,xp:o,level:1}]).catch(()=>{})}await t.db.from("notifications").insert((e||r).slice(0,5).map(e=>({user_id:u||null,type:"request_accepted",title:`${e.name} accepted! +${i[e.tier]||5} XP`,message:`${e.tier}-Tier connection — bridge their cluster to reach D3`,icon:"🤝"}))).catch(()=>{})}}catch(e){}if(1===f&&_.length>0)try{let e=new Map,r=R.map(e=>e.profile_url);for(let n=0;n<r.length;n+=100){let i=t.db.from("linkedin_connections").select("profile_url, tier").in("profile_url",r.slice(n,n+100)).eq("degree",1);u&&(i=i.eq("user_id",u));let{data:o}=await i;(o||[]).forEach(t=>e.set(t.profile_url,t.tier))}let i=function({added:e=[],checked:t=0,tierOf:r=()=>null,userId:i=null}={}){let o=i||null;if(!e.length)return[{user_id:o,type:"refresh_summary",title:"Network up to date",message:`Checked ${t} connections — no new additions`,icon:"✓"}];let a=[{user_id:o,type:"refresh_summary",title:`${e.length} new connection${e.length>1?"s":""} found!`,message:e.slice(0,3).map(e=>e.name).join(", ")+(e.length>3?` +${e.length-3} more`:""),icon:"🔄"}];for(let t of e.filter(e=>n.has(r(e.profile_url))).slice(0,5))a.push({user_id:o,type:"new_elite_connection",title:`High-value connection: ${t.name}`,message:t.headline?.substring(0,60),icon:"👑"});return a}({added:R,checked:_.length,tierOf:t=>e.get(t),userId:u});await t.db.from("notifications").insert(i)}catch(e){}return Response.json({success:!0,received:s.length,processed:_.length,saved:R.length,alreadyKnown:b.length,alreadyConnected:g,duplicates:h,promoted:v})}catch(e){return console.error("Ingest error:",e),Response.json({error:e.message},{status:500})}}e.s(["POST",0,s],64935)},34140,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),i=e.i(59756),o=e.i(61916),a=e.i(74677),l=e.i(69741),s=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),_=e.i(26937),m=e.i(10372),h=e.i(93695);e.i(52474);var g=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/ingest/route",pathname:"/api/ingest",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/ingest/route.js",nextConfigOutput:"standalone",userland:()=>e.r(64935),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:R,serverHooks:b}=w;async function v(e,t,n){n.requestMeta&&(0,i.setRequestMeta)(e,n.requestMeta),w.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/ingest/route";y=y.replace(/\/index$/,"")||"/";let R=await w.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:v,params:k,nextConfig:q,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:N,serverActionsManifest:P}=R,O=(0,l.normalizeAppPath)(y),I=!!(S.dynamicRoutes[O]||S.routes[$]),D=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!E){let e=!!S.routes[$],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(q.adapterPath)return await D();throw new h.NoFallbackError}}let U=null;!I||w.isDev||E||(U="/index"===(U=$)?"/":U);let H=!0===w.isDev||!I,j=I&&!H;P&&N&&(0,a.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:P});let M=e.method||"GET",F=(0,o.getTracer)(),B=F.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,q,S,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!q.experimental.authInterrupts,useCacheTimeout:q.experimental.useCacheTimeout},cacheComponents:!!q.cacheComponents,validationLevel:q.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:q.cacheLife,staticPageGenerationTimeout:q.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,i)=>w.onRequestError(e,t,n,i,x)},sharedContext:{buildId:b,deploymentId:v}},z=new s.NodeNextRequest(e),V=new s.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!L&&A&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await w.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(z,V,i,o),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);a&&(t[m.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?q.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),t}},J=async(i,a)=>{try{var l,s;let i=await w.handleResponse({req:e,nextConfig:q,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:L});if(!I)return;if((null==i||null==(l=i.value)?void 0:l.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(s=i.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(i.value.headers);L&&I||o.delete(m.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,_.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(z,V,new Response(i.value.body,{headers:o,status:i.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),I)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:o.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||O,l=`${M} ${n}`;i.setAttributes({"next.route":n,"http.route":n,"next.span_name":l}),i.updateName(l),a&&a!==i&&(a.setAttribute("http.route",n),a.updateName(l))})()}};if(K&&B)await J(B,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:R})},"routeModule",0,w,"serverHooks",0,b,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,R])}];
1
+ module.exports=[64935,e=>{"use strict";var t=e.i(80998);let n=["january","february","march","april","may","june","july","august","september","october","november","december"],r=new Set(["S","A"]);async function i(e,{profileUrl:t,userId:n,fields:r={}}){if(!t)return{promoted:!1,reason:"no profile url"};if(!n)return{promoted:!1,reason:"no profile"};let l=e.from("linkedin_connections").select("*").eq("profile_url",t);n&&(l=l.eq("user_id",n));let{data:s}=await l,d=s||[];if(0===d.length)return{promoted:!1,reason:"not on file"};let c=d.filter(e=>1===e.degree);if(c.length>0){let t=await o(e,c),n=d.filter(e=>e.id!==t.id&&e.user_id===t.user_id);for(let r of n)await a(e,r.id,t.id)&&await e.from("linkedin_connections").delete().eq("id",r.id);return Object.keys(r).length&&await e.from("linkedin_connections").update({...r,updated_at:new Date().toISOString()}).eq("id",t.id),{promoted:!1,reason:"already a direct connection",id:t.id,folded:n.length}}let u=d.find(e=>e.unlocked_from_bridge_id)||d.slice().sort((e,t)=>(t.degree||0)-(e.degree||0))[0],p=u.unlocked_from_bridge_id||u.source_connection_id||null,f=u.unlocked_from_name||null;if(p&&!f){let{data:t}=await e.from("linkedin_connections").select("name").eq("id",p).limit(1);f=t?.[0]?.name||null}let _={degree:1,source_connection_id:null,unlock_status:p?"unlocked":u.unlock_status,unlocked_from_bridge_id:p,unlocked_from_name:f,updated_at:new Date().toISOString(),...r};for(let t of d.filter(e=>e.id!==u.id))await a(e,t.id,u.id)&&await e.from("linkedin_connections").delete().eq("id",t.id);return await e.from("linkedin_connections").update(_).eq("id",u.id),{promoted:!0,id:u.id,originId:p,originName:f}}async function o(e,t){if(1===t.length)return t[0];let n=t[0],r=-1;for(let i of t){let{data:t}=await e.from("linkedin_connections").select("id").eq("source_connection_id",i.id),o=(t||[]).length;o>r&&(n=i,r=o)}return n}async function a(e,t,n){let{data:r,error:i}=await e.from("linkedin_connections").select("id, profile_url, user_id").eq("source_connection_id",t);if(i)return!1;for(let t of r||[]){let{data:r}=await e.from("linkedin_connections").select("id").eq("source_connection_id",n).eq("profile_url",t.profile_url).eq("user_id",t.user_id),{error:i}=(r||[]).length?await e.from("linkedin_connections").delete().eq("id",t.id):await e.from("linkedin_connections").update({source_connection_id:n}).eq("id",t.id);if(i)return!1}let{error:o}=await e.from("linkedin_connections").update({unlocked_from_bridge_id:n}).eq("unlocked_from_bridge_id",t);return!o}var l=e.i(98612);async function s(e){try{var o;let a,{connections:s,type:d,bridgeId:c,userId:u,companyName:p}=await e.json();if(!s||!Array.isArray(s))return Response.json({error:"Missing connections array"},{status:400});let f="degree2"===d?2:"company"===d?3:1,_=s.map(e=>{var t;let r,{role:i,company:o}=function(e){if(!e)return{role:"",company:""};let t=e.match(/^(.+?)\s+(?:at|@)\s+(.+?)(?:\s*\|.*)?$/i);return t?{role:t[1].trim(),company:t[2].trim()}:{role:e.split("|")[0].trim(),company:""}}(e.headline),a={degree:f,name:e.name?.trim(),headline:(e.headline||"").trim().substring(0,200),company:(o||("company"===d?p:"")||"").substring(0,100),role:i.substring(0,100),profile_url:e.profileUrl?.trim(),profile_image_url:(0,l.localPhoto)(e.imageUrl),connected_date:function(e){let t,r,i,o=String(e||"").trim();if(/^\d{4}-\d{2}-\d{2}$/.test(o))return o;let a=o.match(/^([A-Za-z]+)\.?\s+(\d{1,2}),?\s+(\d{4})$/);if(a)[,t,r,i]=a;else{if(!(a=o.match(/^(\d{1,2})\s+([A-Za-z]+)\.?\s+(\d{4})$/)))return null;[,r,t,i]=a}let l=n.findIndex(e=>e.startsWith(t.toLowerCase())&&t.length>=3);return(r=Number(r),l<0||r<1||r>new Date(Date.UTC(Number(i),l+1,0)).getUTCDate())?null:`${i}-${String(l+1).padStart(2,"0")}-${String(r).padStart(2,"0")}`}(e.connectedDate),mutual_count:2===f?(t=e.mutualCount,r="string"==typeof t&&/^\d[\d,]*$/.test(t.trim())?Number(t.replace(/,/g,"")):t,Number.isInteger(r)&&r>=1&&r<=3e4?r:null):null};return 2===f&&c&&(a.source_connection_id=c),"company"===d&&p&&(a.scanned_company=p),u&&(a.user_id=u),a}).filter(e=>e.name&&e.profile_url),m=_.length;o=_,a=new Set,_=o.filter(e=>!(!e||!e.profile_url||a.has(e.profile_url))&&(a.add(e.profile_url),!0));let h=m-_.length,g=0;if(f>1&&u&&_.length>0){let e=new Set,n=_.map(e=>e.profile_url);for(let r=0;r<n.length;r+=100){let{data:i}=await t.db.from("linkedin_connections").select("profile_url").in("profile_url",n.slice(r,r+100)).eq("user_id",u).eq("degree",1);(i||[]).forEach(t=>e.add(t.profile_url))}let r=function(e,t){let n=[],r=[];for(let i of e)t.has(i.profile_url)?r.push(i.profile_url):n.push(i);return{keep:n,alreadyConnected:r.length,connected:r}}(_,e);if(_=r.keep,g=r.alreadyConnected,2===f&&c&&r.connected.length)try{let{data:e}=await t.db.from("linkedin_connections").select("profile_url").eq("id",c).eq("user_id",u).limit(1),n=(function(e,t=[]){let n=new Set,r=[];if(!e)return r;for(let i of t){if(!i||i===e)continue;let[t,o]=i<e?[i,e]:[e,i],a=`${t} ${o}`;n.has(a)||(n.add(a),r.push({a_url:t,b_url:o}))}return r})(e?.[0]?.profile_url,r.connected).map(e=>({user_id:u,...e}));n.length&&await t.db.from("connection_ties").upsert(n,{onConflict:"user_id,a_url,b_url",ignoreDuplicates:!0})}catch{}}let w=_.map(e=>e.profile_url).filter(Boolean),y=new Set;if(w.length>0)for(let e=0;e<w.length;e+=100){let n=w.slice(e,e+100),r=t.db.from("linkedin_connections").select("profile_url").in("profile_url",n);2===f&&c&&(r=r.eq("source_connection_id",c)),u&&(r=r.eq("user_id",u));let{data:i}=await r;(i||[]).forEach(e=>y.add(e.profile_url))}let b=_.filter(e=>!y.has(e.profile_url)),R=_.filter(e=>y.has(e.profile_url)),v=0;if(1===f&&R.length>0){let e=new Set;for(let n=0;n<R.length;n+=100){let r=R.slice(n,n+100).map(e=>e.profile_url),i=t.db.from("linkedin_connections").select("profile_url, degree").in("profile_url",r).eq("degree",2);u&&(i=i.eq("user_id",u));let{data:o}=await i;(o||[]).forEach(t=>e.add(t.profile_url))}for(let n of R)e.has(n.profile_url)&&(await i(t.db,{profileUrl:n.profile_url,userId:u,fields:{name:n.name,headline:n.headline,company:n.company,role:n.role,...n.profile_image_url?{profile_image_url:n.profile_image_url}:{}}})).promoted&&(v+=1)}let k=null;if(b.length>0){let{error:e}=await t.db.from("linkedin_connections").insert(b);k=e}if(1===f&&R.length>0)for(let e of R){let n={};e.headline&&(n.headline=e.headline),e.company&&(n.company=e.company),e.role&&(n.role=e.role),e.profile_image_url&&(n.profile_image_url=e.profile_image_url),e.connected_date&&(n.connected_date=e.connected_date),Object.keys(n).length>0&&await t.db.from("linkedin_connections").update(n).eq("profile_url",e.profile_url).eq("degree",1)}if(k)return console.error("Supabase insert error:",k),Response.json({error:k.message},{status:500});if(2===f)for(let e of _){if(null==e.mutual_count)continue;let n=t.db.from("linkedin_connections").update({mutual_count:e.mutual_count}).eq("profile_url",e.profile_url).eq("degree",2);u&&(n=n.eq("user_id",u)),await n}let q=2===f&&c?(await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst").eq("id",c).single()).data:null;try{await t.db.rpc("score_new_connections")}catch(e){}if(q)try{let{data:e}=await t.db.from("linkedin_connections").select("name, power_score, tier, is_catalyst, circle_s_count, circle_a_count, circle_elite_pct").eq("id",c).single();if(e){let n=`${e.circle_s_count} S-tier, ${e.circle_a_count} A-tier, ${Math.round(100*(e.circle_elite_pct||0))}% A or S in their circle`,r=parseFloat(q.power_score)||0,i=parseFloat(e.power_score)||0;if(i>r){let o=e.tier!==q.tier;await t.db.from("notifications").insert([{user_id:u||null,type:"bridge_scored",title:o?`Bridge promoted: ${q.tier||"?"} → ${e.tier}`:`Bridge score updated: ${r.toFixed(1)} → ${i.toFixed(1)}`,message:n,icon:o?"⬆️":"📊"}]).catch(()=>{})}e.is_catalyst&&!q.is_catalyst&&await t.db.from("notifications").insert([{user_id:u||null,type:"catalyst_found",title:`Catalyst discovered: ${e.name||"Unknown"}`,message:n,icon:"⚡"}]).catch(()=>{})}}catch(e){}if(1===f&&_.length>0)try{let e=_.map(e=>e.profile_url).filter(Boolean),{data:n}=await t.db.from("linkedin_connections").select("id, name, profile_url").eq("outreach_status","sent").in("profile_url",e.slice(0,200));if(n&&n.length>0){let{data:e}=await t.db.from("linkedin_connections").select("id, name, tier, profile_url, source_connection_id").in("id",n.map(e=>e.id)),r=n.map(e=>e.id);await t.db.from("linkedin_connections").update({outreach_status:"accepted"}).in("id",r);let i={S:100,A:60,B:35,C:15,D:5},o=0;if((e||[]).forEach(e=>{o+=i[e.tier]||5}),o>0&&u){let{data:e}=await t.db.from("user_stats").select("xp").eq("id",u).single();e?await t.db.from("user_stats").update({xp:(e.xp||0)+o}).eq("id",u):await t.db.from("user_stats").insert([{id:u,xp:o,level:1}]).catch(()=>{})}await t.db.from("notifications").insert((e||n).slice(0,5).map(e=>({user_id:u||null,type:"request_accepted",title:`${e.name} accepted! +${i[e.tier]||5} XP`,message:`${e.tier}-Tier connection — bridge their cluster to reach D3`,icon:"🤝"}))).catch(()=>{})}}catch(e){}if(1===f&&_.length>0)try{let e=new Map,n=b.map(e=>e.profile_url);for(let r=0;r<n.length;r+=100){let i=t.db.from("linkedin_connections").select("profile_url, tier").in("profile_url",n.slice(r,r+100)).eq("degree",1);u&&(i=i.eq("user_id",u));let{data:o}=await i;(o||[]).forEach(t=>e.set(t.profile_url,t.tier))}let i=function({added:e=[],checked:t=0,tierOf:n=()=>null,userId:i=null}={}){let o=i||null;if(!e.length)return[{user_id:o,type:"refresh_summary",title:"Network up to date",message:`Checked ${t} connections — no new additions`,icon:"✓"}];let a=[{user_id:o,type:"refresh_summary",title:`${e.length} new connection${e.length>1?"s":""} found!`,message:e.slice(0,3).map(e=>e.name).join(", ")+(e.length>3?` +${e.length-3} more`:""),icon:"🔄"}];for(let t of e.filter(e=>r.has(n(e.profile_url))).slice(0,5))a.push({user_id:o,type:"new_elite_connection",title:`High-value connection: ${t.name}`,message:t.headline?.substring(0,60),icon:"👑"});return a}({added:b,checked:_.length,tierOf:t=>e.get(t),userId:u});await t.db.from("notifications").insert(i)}catch(e){}return Response.json({success:!0,received:s.length,processed:_.length,saved:b.length,alreadyKnown:R.length,alreadyConnected:g,duplicates:h,promoted:v})}catch(e){return console.error("Ingest error:",e),Response.json({error:e.message},{status:500})}}e.s(["POST",0,s],64935)},34140,e=>{"use strict";var t=e.i(47909),n=e.i(74017),r=e.i(96250),i=e.i(59756),o=e.i(61916),a=e.i(74677),l=e.i(69741),s=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),_=e.i(26937),m=e.i(10372),h=e.i(93695);e.i(52474);var g=e.i(220);let w=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/ingest/route",pathname:"/api/ingest",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/ingest/route.js",nextConfigOutput:"standalone",userland:()=>e.r(64935),...{}}),{workAsyncStorage:y,workUnitAsyncStorage:b,serverHooks:R}=w;async function v(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),w.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/ingest/route";y=y.replace(/\/index$/,"")||"/";let b=await w.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,deploymentId:v,params:k,nextConfig:q,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:x,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,resolvedPathname:$,clientReferenceManifest:N,serverActionsManifest:P}=b,O=(0,l.normalizeAppPath)(y),D=!!(S.dynamicRoutes[O]||S.routes[$]),I=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(D&&!E){let e=!!S.routes[$],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(q.adapterPath)return await I();throw new h.NoFallbackError}}let U=null;!D||w.isDev||E||(U="/index"===(U=$)?"/":U);let H=!0===w.isDev||!D,j=D&&!H;P&&N&&(0,a.setManifestsSingleton)({page:y,clientReferenceManifest:N,serverActionsManifest:P});let M=e.method||"GET",F=(0,o.getTracer)(),B=F.getActiveScopeSpan(),K=!!(null==x?void 0:x.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),G=(0,i.getRequestMeta)(e,"incrementalCache")||await w.getIncrementalCache(e,q,S,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:k,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!q.experimental.authInterrupts,useCacheTimeout:q.experimental.useCacheTimeout},cacheComponents:!!q.cacheComponents,validationLevel:q.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:G,hmrRefreshHash:(0,i.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:q.cacheLife,staticPageGenerationTimeout:q.staticPageGenerationTimeout,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,r,i)=>w.onRequestError(e,t,r,i,x)},sharedContext:{buildId:R,deploymentId:v}},z=new s.NodeNextRequest(e),V=new s.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:n})=>{try{if(!L&&A&&T&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await w.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let a=X.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(z,V,i,o),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);a&&(t[m.NEXT_CACHE_TAGS_HEADER]=a),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,r=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==n&&n>0?q.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:r}}}}catch(t){throw(null==n?void 0:n.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),t}},J=async(i,a)=>{try{var l,s;let i=await w.handleResponse({req:e,nextConfig:q,cacheKey:U,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:T,responseGenerator:Z,waitUntil:r.waitUntil,isMinimalMode:L});if(!D)return;if((null==i||null==(l=i.value)?void 0:l.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==i||null==(s=i.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",A?"REVALIDATED":i.isMiss?"MISS":i.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(i.value.headers);L&&D||o.delete(m.NEXT_CACHE_TAGS_HEADER),!i.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,_.getCacheControlHeader)(i.cacheControl)),await (0,p.sendResponse)(z,V,new Response(i.value.body,{headers:o,status:i.value.status||200}));return}catch(t){if(t instanceof h.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:j,isOnDemandRevalidate:A})},!1,x),D)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!i)return;let e=t.statusCode;i.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(i.setStatus({code:o.SpanStatusCode.ERROR}),i.setAttribute("error.type",e.toString()));let n=F.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=n.get("next.route")||O,l=`${M} ${r}`;i.setAttributes({"next.route":r,"http.route":r,"next.span_name":l}),i.updateName(l),a&&a!==i&&(a.setAttribute("http.route",r),a.updateName(l))})()}};if(K&&B)await J(B,void 0);else{let t=F.getActiveScopeSpan();await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:b})},"routeModule",0,w,"serverHooks",0,R,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,b])}];
2
2
 
3
3
  //# sourceMappingURL=_1iwkh8t._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93237,A=>{"use strict";var w=A.i(89171);let D=Buffer.from("AAABAAQAEBAAAAEAIAAoBQAARgAAACAgAAABACAAKBQAAG4FAAAwMAAAAQAgACgtAACWGQAAAAAAAAEAIACNHgAAvkYAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAKAAAADyAAAA/wAAAP8AAAD/AAAA/wAAAPIAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAAA4AAAAAAAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAKEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAChAAAAAAAAACMAAAD0AAAA/wAAAP9PT0//rq6u/6urq/+rq6v/q6ur/6urq/+tra3/Z2dn/wAAAP8AAAD/AAAA9AAAACMAAABZAAAA/wAAAP8AAAD/Hx8f/+3t7f///////////////////////f39/zU1Nf8AAAD/AAAA/wAAAP8AAABZAAAAuwAAAP8AAAD/AAAA/wAAAP9ra2v//////////////////////46Ojv8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAALsAAAD/AAAA/wAAAP8AAAD/CQkJ/83Nzf///////////+Tk5P8YGBj/AAAA/wAAAP8AAAD/AAAA/wAAALsAAABZAAAA/wAAAP8AAAD/AAAA/wAAAP9KSkr//f39//////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABZAAAAIwAAAPQAAAD/AAAA/wAAAP8AAAD/AQEB/7a2tv/V1dX/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAIwAAAAAAAAChAAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/RERE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAA4AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAAA8gAAAP8AAAD/AAAA/wAAAP8AAADyAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAsAAAAVQAAAIEAAADoAAAA6AAAAIEAAABVAAAALAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAACFAAAA0gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAA0gAAAIUAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADjAAAAGwAAAAAAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAKAAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAAnAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ODg4/4uLi/+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+JiYn/X19f/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8eHh7/7u7u//////////////////////////////////////////////////////////////////////9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAArAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj/////////////////////////////////////////////////////////////////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD6AAAAKwAAAFQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v///////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABUAAAAggAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3/////////////////////////////////////////////////jY2N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIEAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/62trf///////////////////////////////////////////+Tk5P8XFxf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6QAAAOkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Kysr//Pz8///////////////////////////////////////ampq/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/i4uL/////////////////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIIAAABUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8WFhb/4+Pj///////////////////////9/f3/SUlJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVAAAACsAAAD6AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj//////////////////////6+vr/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAArAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v////////////09PT/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAAAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3//////42Njf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACGAAAAAAAAAAAAAAAnAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7Gxsf/s7Oz/FxcX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9QAAACgAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MzMz/19fX/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAAAAAABoAAADjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAABPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAhQAAANIAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAANIAAACFAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACwAAABVAAAAgQAAAOgAAADoAAAAgQAAAFUAAAAsAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEwAAABqAAAAswAAAPgAAAD3AAAAswAAAGoAAABLAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVgAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8kJCT/aGho/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/1BQUP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////3Nzc/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZWVl////////////////////////////////////////////////////////////////////////////////////////////////////////////zMzM/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/8nJyf/////////////////////////////////////////////////////////////////////////////////////////////////9/f3/SEhI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAoAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0VFRf/8/Pz///////////////////////////////////////////////////////////////////////////////////////////+urq7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAACgAAABLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+qqqr///////////////////////////////////////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEwAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8pKSn/8vLy/////////////////////////////////////////////////////////////////////////////////4yMjP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAAC0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/iIiI////////////////////////////////////////////////////////////////////////////4+Pj/xYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/+Hh4f//////////////////////////////////////////////////////////////////////aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2VlZf/////////////////////////////////////////////////////////////////Ly8v/CAgI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB//Jycn///////////////////////////////////////////////////////39/f9ISEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALQAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9FRUX//Pz8/////////////////////////////////////////////////66u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AAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVQAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEsAAABqAAAAswAAAPcAAAD4AAAAswAAAGoAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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","base64");A.s(["GET",0,function(){return new w.NextResponse(D,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})},"dynamic",0,"force-static"])},6218,A=>{"use strict";var w=A.i(47909),D=A.i(74017),P=A.i(96250),e=A.i(59756),t=A.i(61916),r=A.i(74677),a=A.i(69741),o=A.i(16795),i=A.i(87718),g=A.i(95169),n=A.i(47587),B=A.i(66012),s=A.i(70101),l=A.i(26937),u=A.i(10372),C=A.i(93695);A.i(52474);var c=A.i(220);let I=new w.AppRouteRouteModule({definition:{kind:D.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon.ico--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/favicon.ico--route-entry.js",nextConfigOutput:"standalone",userland:()=>A.r(93237),...{}}),{workAsyncStorage:Q,workUnitAsyncStorage:E,serverHooks:d}=I;async function M(A,w,P){P.requestMeta&&(0,e.setRequestMeta)(A,P.requestMeta),I.isDev&&(0,e.addRequestMeta)(A,"devRequestTimingInternalsEnd",process.hrtime.bigint());let Q="/favicon.ico/route";Q=Q.replace(/\/index$/,"")||"/";let E=await I.prepare(A,w,{srcPage:Q,multiZoneDraftMode:!1});if(!E)return w.statusCode=400,w.end("Bad Request"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let{buildId:d,deploymentId:M,params:G,nextConfig:f,parsedUrl:p,isDraftMode:v,prerenderManifest:R,routerServerContext:H,isOnDemandRevalidate:h,revalidateOnlyGenerated:y,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:Y}=E,S=(0,a.normalizeAppPath)(Q),j=!!(R.dynamicRoutes[S]||R.routes[O]),V=async()=>((null==H?void 0:H.render404)?await H.render404(A,w,p,!1):w.end("This page could not be found"),null);if(j&&!v){let A=!!R.routes[O],w=R.dynamicRoutes[S];if(w&&!1===w.fallback&&!A){if(f.adapterPath)return await V();throw new C.NoFallbackError}}let L=null;!j||I.isDev||v||(L="/index"===(L=O)?"/":L);let J=!0===I.isDev||!j,N=j&&!J;Y&&T&&(0,r.setManifestsSingleton)({page:Q,clientReferenceManifest:T,serverActionsManifest:Y});let b=A.method||"GET",X=(0,t.getTracer)(),x=X.getActiveScopeSpan(),F=!!(null==H?void 0:H.isWrappedByNextServer),K=!!(0,e.getRequestMeta)(A,"minimalMode"),k=(0,e.getRequestMeta)(A,"incrementalCache")||await I.getIncrementalCache(A,f,R,K);null==k||k.resetRequestCache(),globalThis.__incrementalCache=k;let U={params:G,previewProps:R.preview,renderOpts:{experimental:{authInterrupts:!!f.experimental.authInterrupts,useCacheTimeout:f.experimental.useCacheTimeout},cacheComponents:!!f.cacheComponents,validationLevel:f.experimental.instantInsights.validationLevel,supportsDynamicResponse:J,incrementalCache:k,hmrRefreshHash:(0,e.getRequestMeta)(A,"hmrRefreshHash"),cacheLifeProfiles:f.cacheLife,staticPageGenerationTimeout:f.staticPageGenerationTimeout,waitUntil:P.waitUntil,onClose:A=>{w.on("close",A)},onAfterTaskError:void 0,onInstrumentationRequestError:(w,D,P,e)=>I.onRequestError(A,w,P,e,H)},sharedContext:{buildId:d,deploymentId:M}},m=new o.NodeNextRequest(A),q=new o.NodeNextResponse(w),z=i.NextRequestAdapter.fromNodeNextRequest(m,(0,i.signalFromNodeResponse)(w)),W=async({previousCacheEntry:D})=>{try{if(!K&&h&&y&&!D)return w.statusCode=404,w.setHeader("x-nextjs-cache","REVALIDATED"),w.end("This page could not be found"),null;let e=await I.handle(z,U);A.fetchMetrics=U.renderOpts.fetchMetrics;let t=U.renderOpts.pendingWaitUntil;t&&P.waitUntil&&(P.waitUntil(t),t=void 0);let r=U.renderOpts.collectedTags;if(!j)return await (0,B.sendResponse)(m,q,e,t),null;{let A=await e.blob(),w=(0,s.toNodeOutgoingHttpHeaders)(e.headers);r&&(w[u.NEXT_CACHE_TAGS_HEADER]=r),!w["content-type"]&&A.type&&(w["content-type"]=A.type);let D=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=u.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,P=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=u.INFINITE_CACHE?!1!==D&&D>0?f.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:c.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await A.arrayBuffer()),headers:w},cacheControl:{revalidate:D,expire:P}}}}catch(w){throw(null==D?void 0:D.isStale)&&await I.onRequestError(A,w,{routerKind:"App Router",routePath:Q,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:h})},!1,H),w}},Z=async(e,r)=>{try{var a,o;let e=await I.handleResponse({req:A,nextConfig:f,cacheKey:L,routeKind:D.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:h,revalidateOnlyGenerated:y,responseGenerator:W,waitUntil:P.waitUntil,isMinimalMode:K});if(!j)return;if((null==e||null==(a=e.value)?void 0:a.kind)!==c.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==e||null==(o=e.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||w.setHeader("x-nextjs-cache",h?"REVALIDATED":e.isMiss?"MISS":e.isStale?"STALE":"HIT"),v&&w.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let t=(0,s.fromNodeOutgoingHttpHeaders)(e.value.headers);K&&j||t.delete(u.NEXT_CACHE_TAGS_HEADER),!e.cacheControl||w.getHeader("Cache-Control")||t.get("Cache-Control")||t.set("Cache-Control",(0,l.getCacheControlHeader)(e.cacheControl)),await (0,B.sendResponse)(m,q,new Response(e.value.body,{headers:t,status:e.value.status||200}));return}catch(w){if(w instanceof C.NoFallbackError||await I.onRequestError(A,w,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:h})},!1,H),j)throw w;await (0,B.sendResponse)(m,q,new Response(null,{status:500}));return}finally{(()=>{if(!e)return;let A=w.statusCode;e.setAttributes({"http.status_code":A,"next.rsc":!1}),A&&A>=500&&(e.setStatus({code:t.SpanStatusCode.ERROR}),e.setAttribute("error.type",A.toString()));let D=X.getRootSpanAttributes();if(!D)return;if(D.get("next.span_type")!==g.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${D.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let P=D.get("next.route")||S,a=`${b} ${P}`;e.setAttributes({"next.route":P,"http.route":P,"next.span_name":a}),e.updateName(a),r&&r!==e&&(r.setAttribute("http.route",P),r.updateName(a))})()}};if(F&&x)await Z(x,void 0);else{let w=X.getActiveScopeSpan();await X.withPropagatedContext(A.headers,()=>X.trace(g.BaseServerSpan.handleRequest,{spanName:`${b} ${Q}`,kind:t.SpanKind.SERVER,attributes:{"http.method":b,"http.target":A.url}},A=>Z(A,w)),void 0,!F)}}A.s(["handler",0,M,"patchFetch",0,function(){return(0,P.patchFetch)({workAsyncStorage:Q,workUnitAsyncStorage:E})},"routeModule",0,I,"serverHooks",0,d,"workAsyncStorage",0,Q,"workUnitAsyncStorage",0,E])}];
1
+ module.exports=[93237,e=>{"use strict";var t=e.i(89171);let a=Buffer.from("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","base64");e.s(["GET",0,function(){return new t.NextResponse(a,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})},"dynamic",0,"force-static"])},6218,e=>{"use strict";var t=e.i(47909),a=e.i(74017),n=e.i(96250),r=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),A=e.i(16795),l=e.i(87718),u=e.i(95169),d=e.i(47587),c=e.i(66012),p=e.i(70101),h=e.i(26937),R=e.i(10372),C=e.i(93695);e.i(52474);var g=e.i(220);let v=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon.ico--route-entry",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/favicon.ico--route-entry.js",nextConfigOutput:"standalone",userland:()=>e.r(93237),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:f,serverHooks:I}=v;async function y(e,t,n){n.requestMeta&&(0,r.setRequestMeta)(e,n.requestMeta),v.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/favicon.ico/route";w=w.replace(/\/index$/,"")||"/";let f=await v.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:I,deploymentId:y,params:T,nextConfig:m,parsedUrl:x,isDraftMode:N,prerenderManifest:S,routerServerContext:E,isOnDemandRevalidate:B,revalidateOnlyGenerated:O,resolvedPathname:D,clientReferenceManifest:L,serverActionsManifest:P}=f,U=(0,o.normalizeAppPath)(w),V=!!(S.dynamicRoutes[U]||S.routes[D]),Q=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,x,!1):t.end("This page could not be found"),null);if(V&&!N){let e=!!S.routes[D],t=S.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(m.adapterPath)return await Q();throw new C.NoFallbackError}}let F=null;!V||v.isDev||N||(F="/index"===(F=D)?"/":F);let H=!0===v.isDev||!V,M=V&&!H;P&&L&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:L,serverActionsManifest:P});let k=e.method||"GET",z=(0,s.getTracer)(),G=z.getActiveScopeSpan(),Z=!!(null==E?void 0:E.isWrappedByNextServer),b=!!(0,r.getRequestMeta)(e,"minimalMode"),K=(0,r.getRequestMeta)(e,"incrementalCache")||await v.getIncrementalCache(e,m,S,b);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let X={params:T,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!m.experimental.authInterrupts,useCacheTimeout:m.experimental.useCacheTimeout},cacheComponents:!!m.cacheComponents,validationLevel:m.experimental.instantInsights.validationLevel,supportsDynamicResponse:H,incrementalCache:K,hmrRefreshHash:(0,r.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:m.cacheLife,staticPageGenerationTimeout:m.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>v.onRequestError(e,t,n,r,E)},sharedContext:{buildId:I,deploymentId:y}},J=new A.NodeNextRequest(e),Y=new A.NodeNextResponse(t),q=l.NextRequestAdapter.fromNodeNextRequest(J,(0,l.signalFromNodeResponse)(t)),j=async({previousCacheEntry:a})=>{try{if(!b&&B&&O&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await v.handle(q,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let s=X.renderOpts.pendingWaitUntil;s&&n.waitUntil&&(n.waitUntil(s),s=void 0);let i=X.renderOpts.collectedTags;if(!V)return await (0,c.sendResponse)(J,Y,r,s),null;{let e=await r.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(r.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==a&&a>0?m.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,E),t}},W=async(r,i)=>{try{var o,A;let r=await v.handleResponse({req:e,nextConfig:m,cacheKey:F,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:O,responseGenerator:j,waitUntil:n.waitUntil,isMinimalMode:b});if(!V)return;if((null==r||null==(o=r.value)?void 0:o.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==r||null==(A=r.value)?void 0:A.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});b||t.setHeader("x-nextjs-cache",B?"REVALIDATED":r.isMiss?"MISS":r.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,p.fromNodeOutgoingHttpHeaders)(r.value.headers);b&&V||s.delete(R.NEXT_CACHE_TAGS_HEADER),!r.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,h.getCacheControlHeader)(r.cacheControl)),await (0,c.sendResponse)(J,Y,new Response(r.value.body,{headers:s,status:r.value.status||200}));return}catch(t){if(t instanceof C.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,E),V)throw t;await (0,c.sendResponse)(J,Y,new Response(null,{status:500}));return}finally{(()=>{if(!r)return;let e=t.statusCode;r.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(r.setStatus({code:s.SpanStatusCode.ERROR}),r.setAttribute("error.type",e.toString()));let a=z.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route")||U,o=`${k} ${n}`;r.setAttributes({"next.route":n,"http.route":n,"next.span_name":o}),r.updateName(o),i&&i!==r&&(i.setAttribute("http.route",n),i.updateName(o))})()}};if(Z&&G)await W(G,void 0);else{let t=z.getActiveScopeSpan();await z.withPropagatedContext(e.headers,()=>z.trace(u.BaseServerSpan.handleRequest,{spanName:`${k} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},e=>W(e,t)),void 0,!Z)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:f})},"routeModule",0,v,"serverHooks",0,I,"workAsyncStorage",0,w,"workUnitAsyncStorage",0,f])}];
2
2
 
3
3
  //# sourceMappingURL=_1mxn_lb._.js.map
@@ -123,6 +123,20 @@ CREATE TABLE IF NOT EXISTS company_scores (
123
123
 
124
124
  -- Small key/value facts about this install, e.g. which scoring model the
125
125
  -- stored scores were computed with.
126
+ -- Two of your own connections who know each other, seen when a circle scan
127
+ -- found one of them in the other's list (they're dropped from that circle,
128
+ -- being yours already). By profile URL, the smaller first, so a pair is one
129
+ -- row whichever circle showed it. No extra LinkedIn traffic: the scan read
130
+ -- them anyway. For clustering and communities later (lib/ties.js).
131
+ CREATE TABLE IF NOT EXISTS connection_ties (
132
+ id TEXT, -- lib/db.js gives every row one
133
+ user_id TEXT NOT NULL,
134
+ a_url TEXT NOT NULL,
135
+ b_url TEXT NOT NULL,
136
+ seen_at TEXT DEFAULT (datetime('now')),
137
+ PRIMARY KEY (user_id, a_url, b_url)
138
+ );
139
+
126
140
  CREATE TABLE IF NOT EXISTS app_meta (
127
141
  key TEXT PRIMARY KEY,
128
142
  value TEXT
@@ -145,16 +159,16 @@ CREATE TABLE IF NOT EXISTS user_profile (
145
159
  created_at TEXT DEFAULT (datetime('now')),
146
160
  updated_at TEXT DEFAULT (datetime('now'))
147
161
  );
148
- `;e.s(["SCHEMA_SQL",0,a],28681);let o="0.4.0";e.s(["APP_VERSION",0,o],48170);var s=e.x("node:sqlite",()=>require("node:sqlite"),!0),l=e.i(12714),c=e.i(12506);let u=["/api/admin-delete","/api/admin-update","/api/delete-cluster","/api/setup-profile","/api/scraper","/api/update","/api/data/export","/api/data/import","/api/data/restart","/api/data/reveal"],f=new Set(["127.0.0.1","::1","localhost"]),d=new Set(["127.0.0.1","localhost","[::1]","0.0.0.0"]);function p(e){return f.has(String(e||"").toLowerCase())}function h({method:e,pathname:t,headers:n,env:r={}}){let i=e=>n?.get?.(e)??null,a=r.SIX_DEGREES_BIND||r.HOSTNAME;if(function({bind:e,host:t}){let n;if(!p(e)||!t)return!1;try{n=new URL(`http://${t}`).hostname.toLowerCase()}catch{return!0}return!d.has(n)}({bind:a,host:i("host")}))return{status:421,error:"This app only answers to 127.0.0.1 and localhost."};if(function({method:e,secFetchSite:t,origin:n,host:r}){if(!e||!["POST","PUT","PATCH","DELETE"].includes(e.toUpperCase()))return!1;if(t){if("same-origin"===t||"none"===t)return!1;if("same-site"!==t||!n)return!0}if(n)try{let e=new URL(n).host;return!!r&&e!==r}catch{return!0}return!1}({method:e,secFetchSite:i("sec-fetch-site"),origin:i("origin"),host:i("host")}))return{status:403,error:"Cross-site requests are not accepted. This app only answers to pages it serves."};if(!u.some(e=>t===e||t.startsWith(`${e}/`)))return null;let o=function({bind:e,token:t,bearer:n}){return t&&function(e,t){if("string"!=typeof e||"string"!=typeof t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return 0===n}(n,t)?{allow:!0,reason:"valid admin token"}:p(e)?{allow:!0,reason:"server is bound to loopback; only this machine can connect"}:t?{allow:!1,status:401,reason:"missing or incorrect admin token"}:{allow:!1,status:503,reason:"server is not bound to loopback and no ADMIN_TOKEN is configured"}}({bind:a,token:r.ADMIN_TOKEN,bearer:(i("authorization")||"").replace(/^Bearer\s+/i,"")});return o.allow?null:{status:o.status,error:o.reason}}e.s(["requestRefusal",0,h],54090);var m=e.i(1348);let T=new Set(["ENOENT","EINVAL","ENOTSUP","ENOSYS","EISDIR","EPERM","EBADF"]);function E(e){let t;try{t=n.default.openSync(e,"r")}catch(e){if(T.has(e.code))return;throw e}try{n.default.fsyncSync(t)}catch(e){if(!T.has(e.code))throw e}finally{n.default.closeSync(t)}}function y(e,t){let r=`${e}.${process.pid}.tmp`;try{let i=n.default.openSync(r,"w");try{n.default.writeFileSync(i,t),n.default.fsyncSync(i)}finally{n.default.closeSync(i)}n.default.renameSync(r,e)}catch(e){throw n.default.rmSync(r,{force:!0}),e}E(i.default.dirname(e))}let S=function(e){let t=n.default.openSync(e,"r");try{n.default.fsyncSync(t)}finally{n.default.closeSync(t)}},g=function(e,t){y(e,`${JSON.stringify(t,null,2)}
149
- `)},_=[25,50,100,200,500],w=[100,250,500,1e3,0],A=[10,25,50,100],N="America/Los_Angeles";function b(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function R(e=Date.now()){let t=Object.fromEntries(new Intl.DateTimeFormat("en-US",{timeZone:N,year:"numeric",month:"numeric"}).formatToParts(new Date(e)).map(e=>[e.type,e.value])),n=Number(t.year),r=Number(t.month),i=Date.UTC(n,r-1,1,8);for(let e=0;e<2;e++)i=Date.UTC(n,r-1,1,-function(e){let t=(new Intl.DateTimeFormat("en-US",{timeZone:N,timeZoneName:"shortOffset"}).formatToParts(new Date(e)).find(e=>"timeZoneName"===e.type)?.value||"GMT-8").match(/GMT([+-]\d+)(?::(\d+))?/);return t?Number(t[1]):-8}(i));return i}function I(e){let t=b(i.default.join(e,"scan-limits.json"))||{},n=(e,t)=>Number.isInteger(e)&&e>=0?e:t;return{daily:n(t.daily,50),monthly:n(t.monthly,250),profiles:n(t.profiles,0)||50}}let O="linkedin-activity.json",L="linkedin-cooldown.json",D="scan-limits.json",x=e=>!!e&&"object"==typeof e&&!Array.isArray(e),k=e=>void 0===e||Array.isArray(e)&&e.every(e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),F=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0;function X(e,t){if(!x(t))return"it is not a JSON object";if(e===O){if(!k(t.searches)||!k(t.profiles))return"its record of searches is not a list of times"}else if(e===L){if(!F(t.until))return"its pause has no end time";if(void 0!==t.reason&&"string"!=typeof t.reason)return"its pause has a reason that is not text";if(void 0!==t.set_at&&!F(t.set_at))return"its pause has a start time that is not a time"}else if(e===D){if(void 0!==t.daily&&!_.includes(t.daily))return`its daily limit (${String(t.daily).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.monthly&&!w.includes(t.monthly))return`its monthly limit (${String(t.monthly).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.profiles&&!A.includes(t.profiles))return`its limit on profile views (${String(t.profiles).slice(0,20)}) is not one Six Degrees offers`}return null}function $(e=[],t=[]){let n=e=>e.reduce((e,t)=>e.set(t,(e.get(t)||0)+1),new Map),r=n(e);for(let[e,i]of n(t))i>(r.get(e)||0)&&r.set(e,i);return[...r].sort((e,t)=>e[0]-t[0]).flatMap(([e,t])=>Array(t).fill(e))}function j(e){if(void 0===e)return[];if(!Array.isArray(e))return null;let t=e.map(Number);return t.every(Number.isFinite)?t:null}let v=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function U({dir:e,from:t}){let n=t=>i.default.join(e,t),r=e=>{let n=b(i.default.join(t,e));return x(n)&&!X(e,n)?n:null},a=r(O);if(a){let e=v(n(O))?b(n(O)):{},t=x(e)?j(e.searches):null,r=x(e)?j(e.profiles):null;t&&r&&g(n(O),{searches:$(t,a.searches),profiles:$(r,a.profiles)})}let o=r(L);if(o){let e=b(n(L)),t=Number.isFinite(Number(e?.until))?Number(e.until):-1/0;o.until>t&&g(n(L),{until:o.until,reason:o.reason??"LinkedIn pushed back",set_at:o.set_at??null})}let s=r(D);s&&!v(n(D))&&g(n(D),{daily:s.daily??50,monthly:s.monthly??250,profiles:s.profiles??50})}e.s(["budgetFileProblem",0,X,"liftCooldown",0,function(e){try{(0,n.unlinkSync)(i.default.join(e,"linkedin-cooldown.json"))}catch{}},"linkedinState",0,function(e,t=Date.now()){let r=I(e),a=function(e,t=Date.now()){let r=i.default.join(e,"linkedin-activity.json"),a=(0,n.existsSync)(r)?b(r):{searches:[],profiles:[]};if(!a||"object"!=typeof a)return{searchesToday:1/0,searchesMonth:0,profilesToday:1/0,unreadable:!0};let o=(Array.isArray(a.searches)?a.searches:[]).map(Number),s=(Array.isArray(a.profiles)?a.profiles:[]).map(Number),l=t/1e3-86400,c=R(t)/1e3;return{searchesToday:o.filter(e=>e>l).length,searchesMonth:o.filter(e=>e>=c).length,profilesToday:s.filter(e=>e>l).length}}(e,t),o=(e,t)=>e?Math.max(0,e-t):null;return{...a,limits:r,leftToday:o(r.daily,a.searchesToday),leftMonth:o(r.monthly,a.searchesMonth),profilesLeftToday:o(r.profiles,a.profilesToday),monthResets:function(e=Date.now()){let t=R(e);return R(t+3456e6)}(t),cooldown:function(e,t=Date.now()){let n=b(i.default.join(e,"linkedin-cooldown.json")),r=1e3*Number(n?.until);return n&&Number.isFinite(r)&&!(r<=t)?{until:r,reason:String(n.reason||"LinkedIn pushed back"),setAt:1e3*Number(n.set_at)||null}:null}(e,t)}},"mergeBudgetFiles",0,U,"writeLimits",0,function(e,{daily:t,monthly:r,profiles:a}={}){var o;let s,l=I(e),c={daily:_.includes(t)?t:l.daily,monthly:w.includes(r)?r:l.monthly,profiles:A.includes(a)?a:l.profiles};return o=i.default.join(e,"scan-limits.json"),s=`${o}.${process.pid}.${Date.now()}.tmp`,(0,n.writeFileSync)(s,JSON.stringify(c,null,2)),(0,n.renameSync)(s,o),c}],41238);var C=e.i(74533);let M=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,P="/avatars/";function G(e){return"string"==typeof e&&e.startsWith(P)&&M.test(e.slice(P.length))?e:null}function q(e){return e.prepare(`SELECT DISTINCT profile_url AS profileUrl, profile_image_url AS imageUrl
162
+ `;e.s(["SCHEMA_SQL",0,a],28681);let o="0.4.2";e.s(["APP_VERSION",0,o],48170);var s=e.x("node:sqlite",()=>require("node:sqlite"),!0),l=e.i(12714),c=e.i(12506);let u=["/api/admin-delete","/api/admin-update","/api/delete-cluster","/api/setup-profile","/api/scraper","/api/update","/api/data/export","/api/data/import","/api/data/restart","/api/data/reveal"],f=new Set(["127.0.0.1","::1","localhost"]),d=new Set(["127.0.0.1","localhost","[::1]","0.0.0.0"]);function p(e){return f.has(String(e||"").toLowerCase())}function h({method:e,pathname:t,headers:n,env:r={}}){let i=e=>n?.get?.(e)??null,a=r.SIX_DEGREES_BIND||r.HOSTNAME;if(function({bind:e,host:t}){let n;if(!p(e)||!t)return!1;try{n=new URL(`http://${t}`).hostname.toLowerCase()}catch{return!0}return!d.has(n)}({bind:a,host:i("host")}))return{status:421,error:"This app only answers to 127.0.0.1 and localhost."};if(function({method:e,secFetchSite:t,origin:n,host:r}){if(!e||!["POST","PUT","PATCH","DELETE"].includes(e.toUpperCase()))return!1;if(t){if("same-origin"===t||"none"===t)return!1;if("same-site"!==t||!n)return!0}if(n)try{let e=new URL(n).host;return!!r&&e!==r}catch{return!0}return!1}({method:e,secFetchSite:i("sec-fetch-site"),origin:i("origin"),host:i("host")}))return{status:403,error:"Cross-site requests are not accepted. This app only answers to pages it serves."};if(!u.some(e=>t===e||t.startsWith(`${e}/`)))return null;let o=function({bind:e,token:t,bearer:n}){return t&&function(e,t){if("string"!=typeof e||"string"!=typeof t||e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e.charCodeAt(r)^t.charCodeAt(r);return 0===n}(n,t)?{allow:!0,reason:"valid admin token"}:p(e)?{allow:!0,reason:"server is bound to loopback; only this machine can connect"}:t?{allow:!1,status:401,reason:"missing or incorrect admin token"}:{allow:!1,status:503,reason:"server is not bound to loopback and no ADMIN_TOKEN is configured"}}({bind:a,token:r.ADMIN_TOKEN,bearer:(i("authorization")||"").replace(/^Bearer\s+/i,"")});return o.allow?null:{status:o.status,error:o.reason}}e.s(["requestRefusal",0,h],54090);var T=e.i(1348);let m=new Set(["ENOENT","EINVAL","ENOTSUP","ENOSYS","EISDIR","EPERM","EBADF"]);function E(e){let t;try{t=n.default.openSync(e,"r")}catch(e){if(m.has(e.code))return;throw e}try{n.default.fsyncSync(t)}catch(e){if(!m.has(e.code))throw e}finally{n.default.closeSync(t)}}function y(e,t){let r=`${e}.${process.pid}.tmp`;try{let i=n.default.openSync(r,"w");try{n.default.writeFileSync(i,t),n.default.fsyncSync(i)}finally{n.default.closeSync(i)}n.default.renameSync(r,e)}catch(e){throw n.default.rmSync(r,{force:!0}),e}E(i.default.dirname(e))}let S=function(e){let t=n.default.openSync(e,"r");try{n.default.fsyncSync(t)}finally{n.default.closeSync(t)}},g=function(e,t){y(e,`${JSON.stringify(t,null,2)}
163
+ `)},w=[25,50,100,200,500],_=[100,250,500,1e3,0],A=[10,25,50,100],N="America/Los_Angeles";function b(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function R(e=Date.now()){let t=Object.fromEntries(new Intl.DateTimeFormat("en-US",{timeZone:N,year:"numeric",month:"numeric"}).formatToParts(new Date(e)).map(e=>[e.type,e.value])),n=Number(t.year),r=Number(t.month),i=Date.UTC(n,r-1,1,8);for(let e=0;e<2;e++)i=Date.UTC(n,r-1,1,-function(e){let t=(new Intl.DateTimeFormat("en-US",{timeZone:N,timeZoneName:"shortOffset"}).formatToParts(new Date(e)).find(e=>"timeZoneName"===e.type)?.value||"GMT-8").match(/GMT([+-]\d+)(?::(\d+))?/);return t?Number(t[1]):-8}(i));return i}function I(e){let t,n=b(i.default.join(e,"scan-limits.json"))||{},r=(e,t)=>Number.isInteger(e)&&e>=0?e:t;return{daily:r(n.daily,50),monthly:r(n.monthly,250),profiles:(t=r(n.profiles,0)||50,A.filter(e=>e<=t).pop()??A[0])}}let O="linkedin-activity.json",L="linkedin-cooldown.json",D="scan-limits.json",x=e=>!!e&&"object"==typeof e&&!Array.isArray(e),k=e=>void 0===e||Array.isArray(e)&&e.every(e=>"number"==typeof e&&Number.isFinite(e)&&e>=0),X=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0;function F(e,t){if(!x(t))return"it is not a JSON object";if(e===O){if(!k(t.searches)||!k(t.profiles))return"its record of searches is not a list of times"}else if(e===L){if(!X(t.until))return"its pause has no end time";if(void 0!==t.reason&&"string"!=typeof t.reason)return"its pause has a reason that is not text";if(void 0!==t.set_at&&!X(t.set_at))return"its pause has a start time that is not a time"}else if(e===D){if(void 0!==t.daily&&!w.includes(t.daily))return`its daily limit (${String(t.daily).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.monthly&&!_.includes(t.monthly))return`its monthly limit (${String(t.monthly).slice(0,20)}) is not one Six Degrees offers`;if(void 0!==t.profiles&&!A.includes(t.profiles))return`its limit on profile views (${String(t.profiles).slice(0,20)}) is not one Six Degrees offers`}return null}function $(e=[],t=[]){let n=e=>e.reduce((e,t)=>e.set(t,(e.get(t)||0)+1),new Map),r=n(e);for(let[e,i]of n(t))i>(r.get(e)||0)&&r.set(e,i);return[...r].sort((e,t)=>e[0]-t[0]).flatMap(([e,t])=>Array(t).fill(e))}function j(e){if(void 0===e)return[];if(!Array.isArray(e))return null;let t=e.map(Number);return t.every(Number.isFinite)?t:null}let v=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function U({dir:e,from:t}){let n=t=>i.default.join(e,t),r=e=>{let n=b(i.default.join(t,e));return x(n)&&!F(e,n)?n:null},a=r(O);if(a){let e=v(n(O))?b(n(O)):{},t=x(e)?j(e.searches):null,r=x(e)?j(e.profiles):null;t&&r&&g(n(O),{searches:$(t,a.searches),profiles:$(r,a.profiles)})}let o=r(L);if(o){let e=b(n(L)),t=Number.isFinite(Number(e?.until))?Number(e.until):-1/0;o.until>t&&g(n(L),{until:o.until,reason:o.reason??"LinkedIn pushed back",set_at:o.set_at??null})}let s=r(D);s&&!v(n(D))&&g(n(D),{daily:s.daily??50,monthly:s.monthly??250,profiles:s.profiles??50})}e.s(["budgetFileProblem",0,F,"liftCooldown",0,function(e){try{(0,n.unlinkSync)(i.default.join(e,"linkedin-cooldown.json"))}catch{}},"linkedinState",0,function(e,t=Date.now()){let r=I(e),a=function(e,t=Date.now()){let r=i.default.join(e,"linkedin-activity.json"),a=(0,n.existsSync)(r)?b(r):{searches:[],profiles:[]};if(!a||"object"!=typeof a)return{searchesToday:1/0,searchesMonth:0,profilesToday:1/0,unreadable:!0};let o=(Array.isArray(a.searches)?a.searches:[]).map(Number),s=(Array.isArray(a.profiles)?a.profiles:[]).map(Number),l=t/1e3-86400,c=R(t)/1e3;return{searchesToday:o.filter(e=>e>l).length,searchesMonth:o.filter(e=>e>=c).length,profilesToday:s.filter(e=>e>l).length}}(e,t),o=(e,t)=>e?Math.max(0,e-t):null;return{...a,limits:r,leftToday:o(r.daily,a.searchesToday),leftMonth:o(r.monthly,a.searchesMonth),profilesLeftToday:o(r.profiles,a.profilesToday),monthResets:function(e=Date.now()){let t=R(e);return R(t+3456e6)}(t),cooldown:function(e,t=Date.now()){let n=b(i.default.join(e,"linkedin-cooldown.json")),r=1e3*Number(n?.until);return n&&Number.isFinite(r)&&!(r<=t)?{until:r,reason:String(n.reason||"LinkedIn pushed back"),setAt:1e3*Number(n.set_at)||null}:null}(e,t)}},"mergeBudgetFiles",0,U,"writeLimits",0,function(e,{daily:t,monthly:r,profiles:a}={}){var o;let s,l=I(e),c={daily:w.includes(t)?t:l.daily,monthly:_.includes(r)?r:l.monthly,profiles:A.includes(a)?a:l.profiles};return o=i.default.join(e,"scan-limits.json"),s=`${o}.${process.pid}.${Date.now()}.tmp`,(0,n.writeFileSync)(s,JSON.stringify(c,null,2)),(0,n.renameSync)(s,o),c}],41238);var C=e.i(74533);let M=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,P="/avatars/";function G(e){return"string"==typeof e&&e.startsWith(P)&&M.test(e.slice(P.length))?e:null}function q(e){return e.prepare(`SELECT DISTINCT profile_url AS profileUrl, profile_image_url AS imageUrl
150
164
  FROM linkedin_connections
151
165
  WHERE profile_image_url IS NOT NULL AND profile_image_url <> ''
152
166
  AND substr(profile_image_url, 1, 9) <> '/avatars/'
153
167
  ORDER BY profile_url`).all().filter(e=>e.profileUrl&&!G(e.imageUrl))}e.s(["AVATAR_FILE",0,M,"localPhoto",0,G,"waitingPhotoCount",0,function(e){return new Set(q(e).map(e=>e.profileUrl)).size},"waitingPhotos",0,q],98612);let B=["bridge-progress.json","bridge-skips.json","bridge-unclear.json"],Y=["scan-limits.json","linkedin-activity.json","linkedin-cooldown.json"],W=[...B,...Y],J="import-pending",K="before-import-",V=".export-",H=".import-upload-",z=".python-setup-",Q=[V,H,z],Z=/^import-pending\.(done|cancelled)-/;function ee(e){try{return(0,n.lstatSync)(e).isDirectory()?(0,n.readdirSync)(e):[]}catch{return[]}}function et(e,t=()=>!0){let r=0,a=0;for(let o of ee(e))if(t(o))try{let t=(0,n.lstatSync)(i.default.join(e,o));t.isFile()&&(r++,a+=t.size)}catch{}return{count:r,bytes:a}}function en(e,{now:t=Date.now(),maxAgeMs:r=36e5}={}){let a=[];try{a=(0,n.readdirSync)(e)}catch{return 0}let o=0;for(let s of a){let a=Q.some(e=>s.startsWith(e));if(!a&&!Z.test(s))continue;let l=i.default.join(e,s);try{let e=(0,n.lstatSync)(l);if(!e.isDirectory()||a&&t-e.mtimeMs<r)continue;(0,n.rmSync)(l,{recursive:!0,force:!0}),o++}catch{}}return o}e.s(["BUDGET_FILES",0,Y,"EXPORT_WORK_PREFIX",0,V,"IMPORT_BACKUP_PREFIX",0,K,"NETWORK_FILES",0,B,"PENDING_DIR",0,J,"SETUP_WORK_PREFIX",0,z,"TRAVELLING_FILES",0,W,"UPLOAD_WORK_PREFIX",0,H,"folderReport",0,function({dir:e,dbFile:t,autoPrefix:r,inNetwork:a=null}){let o=i.default.join(e,"avatars");return{dataDir:e,dbFile:t,databaseBytes:["","-wal","-shm"].reduce((e,r)=>e+function(e){try{let t=(0,n.lstatSync)(e);return t.isFile()?t.size:0}catch{return 0}}(t+r),0),photos:et(o,e=>M.test(e)),photosInCopy:a?et(o,e=>M.test(e)&&a.has(e)):null,backups:function(e,{autoPrefix:t}={}){let r=[];try{r=(0,n.readdirSync)(e)}catch{return[]}let a=[];for(let o of r){let r;if(o.startsWith(".")||o.endsWith(".partial"))continue;let s=i.default.join(e,o);try{r=(0,n.lstatSync)(s)}catch{continue}(r.isFile()||r.isDirectory())&&a.push({name:o,bytes:r.isFile()?r.size:function e(t,r={left:5e4}){let a=0,o=[];try{o=(0,n.readdirSync)(t)}catch{return 0}for(let s of o){if(r.left--<=0)break;let o=i.default.join(t,s);try{let t=(0,n.lstatSync)(o);t.isDirectory()?a+=e(o,r):t.isFile()&&(a+=t.size)}catch{}}return a}(s),modifiedAt:r.mtimeMs,kind:t&&o.startsWith(t)?"auto":o.startsWith(K)?"import":"manual",folder:r.isDirectory()})}return a.sort((e,t)=>t.modifiedAt-e.modifiedAt||t.name.localeCompare(e.name))}(i.default.join(i.default.dirname(t),"backups"),{autoPrefix:r}),linkedinSignIn:(0,n.existsSync)(i.default.join(e,"chrome-profile"))}},"namesInFolder",0,ee,"revealFolder",0,function(e,{platform:t=process.platform,spawnImpl:n=C.spawn,waitMs:r=3e3}={}){let i=function(e=process.platform){return"darwin"===e?"open":"linux"===e?"xdg-open":null}(t);return i?new Promise(t=>{let a,o=null,s=!1,l=e=>{s||(s=!0,clearTimeout(o),t(e))};try{a=n(i,[e],{stdio:"ignore",detached:!0})}catch(e){l({ok:!1,message:`It couldn't be opened (${e.message}).`});return}a.on("error",e=>l({ok:!1,message:"ENOENT"===e.code?`This computer has no ${i}, so there is no file browser to open it with.`:`It couldn't be opened (${e.message}).`})),a.on("exit",e=>l(0===e?{ok:!0}:{ok:!1,message:`The file browser didn't open (${i} stopped with code ${e}).`})),o=setTimeout(()=>{try{a.unref()}catch{}l({ok:!0})},r)}):Promise.resolve({ok:!1,message:"There is no file browser to open it with on this computer."})},"sweepLeftovers",0,en],26525);var er=e.x("node:sqlite",()=>require("node:sqlite"),!0),ei=e.i(66680);let ea={sd_export_manifest:"CREATE TABLE sd_export_manifest (key TEXT PRIMARY KEY, value TEXT NOT NULL)",sd_export_files:"CREATE TABLE sd_export_files (path TEXT PRIMARY KEY, bytes BLOB NOT NULL, sha256 TEXT NOT NULL)"};function eo(e){return(0,ei.createHash)("sha256").update(e).digest("hex")}function es(e){return`'${String(e).replace(/'/g,"''")}'`}function el(e){return[...e.matchAll(/CREATE TABLE IF NOT EXISTS (\w+)/g)].map(e=>e[1])}function ec(e){return[...e.matchAll(/CREATE (?:UNIQUE )?INDEX IF NOT EXISTS (\w+)/g)].map(e=>e[1])}function eu(e,t="main"){try{return e.prepare(`SELECT count(DISTINCT profile_url) AS n FROM ${t}.linkedin_connections`).get().n}catch{return 0}}function ef(e){return new Set(e.prepare(`SELECT DISTINCT substr(profile_image_url, 10) AS name FROM linkedin_connections
154
- WHERE substr(profile_image_url, 1, 9) = '/avatars/'`).all().map(e=>e.name))}e.s(["EXPORT_FORMAT",0,1,"EXPORT_TABLES",0,ea,"appIndexes",0,ec,"appTables",0,el,"buildExport",0,function(e,{dir:t,outFile:r,includePhotos:a=!0,appVersion:o,schemaSql:s,now:l=new Date}){let c;e.exec(`VACUUM INTO ${es(r)}`);let u=new er.DatabaseSync(r);try{u.exec("PRAGMA journal_mode = DELETE"),u.exec(`${Object.values(ea).join(";\n")};`),u.exec("BEGIN"),a||u.exec("UPDATE linkedin_connections SET profile_image_url = NULL WHERE profile_image_url LIKE '/avatars/%'"),u.exec("DELETE FROM app_meta WHERE key = 'last_import'");let e=u.prepare("INSERT INTO sd_export_files (path, bytes, sha256) VALUES (?, ?, ?)"),r=0,f=0,d=a?ef(u):null;for(let o of function(e,{includePhotos:t=!0,photos:r=null}={}){let a=e=>{try{return(0,n.lstatSync)(e).isFile()}catch{return!1}},o=[];for(let t of W){let n=i.default.join(e,t);a(n)&&o.push({rel:t,abs:n})}if(t)for(let t of ee(i.default.join(e,"avatars")).sort()){if(!M.test(t)||r&&!r.has(t))continue;let n=i.default.join(e,"avatars",t);a(n)&&o.push({rel:`avatars/${t}`,abs:n})}return o}(t,{includePhotos:a,photos:d})){let t;try{t=(0,n.readFileSync)(o.abs)}catch{continue}e.run(o.rel,t,eo(t)),f++,o.rel.startsWith("avatars/")&&r++}let p={};for(let e of el(s))try{p[e]=u.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n}catch{p[e]=0}let h="";try{h=u.prepare("SELECT value FROM app_meta WHERE key = 'scoring_version'").get()?.value??""}catch{}let m=eu(u),T={format:1,app_version:o,scoring_version:h,exported_at:l.toISOString(),include_photos:+!!a,people:m,photos:r,files:f,counts:JSON.stringify(p)},E=u.prepare("INSERT INTO sd_export_manifest (key, value) VALUES (?, ?)");for(let[e,t]of Object.entries(T))E.run(e,String(t));u.exec("COMMIT"),c={people:m,photos:r,files:f,counts:p}}catch(e){try{u.exec("ROLLBACK")}catch{}throw e}finally{u.close()}return{...c,bytes:(0,n.statSync)(r).size}},"countPeople",0,eu,"exportFileName",0,function(e=new Date){let t=e=>String(e).padStart(2,"0");return`Six Degrees backup ${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}.sixdegrees`},"referencedPhotos",0,ef,"sha256",0,eo,"sqlString",0,es],92375);let ed="/api/data/import",ep=Buffer.from("SQLite format 3\0","latin1");class eh extends Error{constructor(e,{status:t=400,...n}={}){super(e),this.status=t,this.extra=n}}function em(e){let t=e/1024/1024;return`${t<10?t.toFixed(1):Math.round(t)} MB`}let eT=e=>String(e).slice(0,80);async function eE(e,t,{declared:n}){let r=await (0,l.open)(t,"wx",384),i=0;try{if(e)for await(let t of e){let e=t instanceof Uint8Array?t:new Uint8Array(t);if((i+=e.byteLength)>n)throw new eh("The file was bigger than the size it was sent with, so nothing was imported. Try again.");for(let t=0;t<e.byteLength;){let{bytesWritten:n}=await r.write(e,t,e.byteLength-t);t+=n}}}finally{await r.close()}if(i!==n)throw new eh(`The file didn't arrive whole (${i} of ${n} bytes), so nothing was imported. Try again.`);return i}function ey(e){return"string"!=typeof e?null:W.includes(e)?"file":e.startsWith("avatars/")&&M.test(e.slice(8))?"photo":null}let eS=["users","linkedin_connections",...Object.keys(ea)],eg=Object.freeze({tables:[],indexes:[],columns:{}}),e_=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function ew(e){let t=Buffer.alloc(ep.length),r=(0,n.openSync)(e,"r");try{let e=(0,n.readSync)(r,t,0,t.length,0);return 0===e||e===t.length&&t.equals(ep)}finally{(0,n.closeSync)(r)}}function eA(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function eN(e,t){try{(0,n.renameSync)(e,t)}catch(r){if("EXDEV"!==r.code)throw r;(0,n.cpSync)(e,t,{recursive:!0}),(0,n.lstatSync)(t).isFile()&&S(t),(0,n.rmSync)(e,{recursive:!0,force:!0})}}function eb(e,t){let r=`${t}.partial`;(0,n.rmSync)(r,{force:!0});try{let a=new s.DatabaseSync(e);try{a.exec(`VACUUM INTO ${es(r)}`)}finally{a.close()}S(r),(0,n.renameSync)(r,t),E(i.default.dirname(t))}catch(e){throw(0,n.rmSync)(r,{force:!0}),e}}function eR(e,t){let n=null,r=null;try{let i=(n=new s.DatabaseSync(t,{readOnly:!0})).prepare("PRAGMA quick_check").all();if(1!==i.length||"ok"!==i[0].quick_check)return!1;(r=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let a=e=>e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all().map(e=>e.name),o=(e,t)=>e.prepare(`SELECT count(*) AS n FROM "${t.replace(/"/g,'""')}"`).get().n,l=new Set(a(n));return a(r).every(e=>l.has(e)&&o(r,e)===o(n,e))}catch{return!1}finally{n?.close(),r?.close()}}function eI(e){let t=i.default.join(e,J);if(!e_(i.default.join(t,"READY")))return null;let r=eA(i.default.join(t,"READY"))||{},a=eA(i.default.join(t,"APPLYING")),o=null;try{o=(0,n.readFileSync)(i.default.join(t,"ERROR"),"utf8").trim()||null}catch{}let s=!!(a&&("start"!==a.phase||a.keptAsIs));return{...r,started:s,error:o}}function eO({dir:e,dbFile:t,now:r=new Date,copyDatabase:a=eb}){en(e,{now:r.getTime()});let o=i.default.join(e,J);if(!e_(i.default.join(o,"READY")))return null;let l=eA(i.default.join(o,"READY"))||{},c=i.default.join(o,"APPLYING"),u=eA(c)||{stamp:r.toISOString().replace(/[:.]/g,"-"),phase:"start"},f=()=>y(c,JSON.stringify(u)),d=e=>{u.phase=e,f()},p=i.default.dirname(t),h=i.default.join(p,"backups"),m=i.default.join(h,`${K}${u.stamp}.sqlite`),T=i.default.join(h,`${K}${u.stamp}-files`),g=i.default.join(o,"data.sqlite"),_=["-wal","-shm","-journal"],w=()=>{for(let e of _)e_(`${t}${e}`)&&!e_(`${m}${e}`)&&eN(`${t}${e}`,`${m}${e}`);e_(t)&&!e_(m)&&eN(t,m),E(h),E(p)},A=!1,N=()=>{(0,n.mkdirSync)(h,{recursive:!0});try{if(!ew(t))throw Error("it is not a SQLite database");a(t,m),A=!0}catch(e){for(let e of["",..._])(0,n.rmSync)(`${m}${e}`,{force:!0});(0,n.rmSync)(`${m}.partial`,{force:!0}),u.keptAsIs=String(e.message||e).slice(0,200),f(),w()}};try{e_(c)||f();let r=["start","database-kept","files-kept"].includes(u.phase);if("start"===u.phase&&(!e_(g)||!function(e){let t=null;try{(t=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let n=t.prepare("PRAGMA quick_check").all();return 1===n.length&&"ok"===n[0].quick_check&&1===t.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n}catch{return!1}finally{t?.close()}}(g)))throw Error("the imported network waiting here is damaged. Cancel the import and import the file again");if(r&&!u.keptAsIs&&e_(t)&&ew(t)&&function(e){let t=null;try{return(t=new s.DatabaseSync(e)).exec("PRAGMA locking_mode = EXCLUSIVE"),t.prepare("SELECT count(*) AS n FROM sqlite_master").get(),!1}catch(e){return 5===e.errcode||6===e.errcode||/database (table )?is locked/i.test(String(e.message))}finally{try{t?.close()}catch{}}}(t))throw Error("another copy of Six Degrees has this network open (one started with npx six-degrees or npm run dev, perhaps). Quit that copy, then restart this one");if(r&&u.keptAsIs&&w(),"start"===u.phase&&(!u.keptAsIs&&e_(t)&&N(),d("database-kept")),"database-kept"===u.phase){let t=()=>(0,n.mkdirSync)(T,{recursive:!0});for(let n of["avatars",...B]){let r=i.default.join(e,n);e_(r)&&(t(),eN(r,i.default.join(T,n)))}for(let r of Y){let a=i.default.join(e,r);e_(a)&&(0,n.lstatSync)(a).isFile()&&(t(),(0,n.copyFileSync)(a,i.default.join(T,r)),S(i.default.join(T,r)))}e_(T)&&E(T),E(h),E(e),d("files-kept")}if("files-kept"===u.phase){if(e_(g)){if(!u.keptAsIs&&e_(t)){let e=A&&eR(t,m);if(e||(N(),e=!!u.keptAsIs||eR(t,m)),!e)throw Error("the copy of the network here couldn't be checked, so it wasn't replaced")}for(let e of _)(0,n.rmSync)(`${t}${e}`,{force:!0});(0,n.mkdirSync)(p,{recursive:!0}),eN(g,t),E(p)}d("database-placed")}if("database-placed"===u.phase){let t=i.default.join(o,"files"),r=i.default.join(t,"avatars");if(e_(r)){for(let t of((0,n.mkdirSync)(i.default.join(e,"avatars"),{recursive:!0}),ee(r)))eN(i.default.join(r,t),i.default.join(e,"avatars",t));E(i.default.join(e,"avatars"))}for(let n of B){let r=i.default.join(t,n);e_(r)&&eN(r,i.default.join(e,n))}U({dir:e,from:t}),E(e),d("done")}}catch(e){try{(0,n.writeFileSync)(i.default.join(o,"ERROR"),`${e.message}
155
- `)}catch{}throw e}let b=`${o}.done-${u.stamp}`;(0,n.renameSync)(o,b),(0,n.rmSync)(b,{recursive:!0,force:!0});let R=t=>{let n=i.default.relative(e,t);return!n||n.startsWith("..")||i.default.isAbsolute(n)?t:n};return{appliedAt:r.toISOString(),stagedAt:l.stagedAt??null,exportedAt:l.exportedAt??null,fromVersion:l.fromVersion??null,people:l.people??null,photos:l.photos??null,replacedPeople:l.replacedPeople??null,keptDatabase:e_(m)?R(m):null,keptFiles:e_(T)?R(T):null,keptAsIs:u.keptAsIs??null}}function eL(e,t){e.prepare(`INSERT INTO app_meta (key, value) VALUES ('last_import', ?)
156
- ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(JSON.stringify(t))}function eD(){let e=process.env.SIX_DEGREES_HOME||i.default.join((0,r.homedir)(),".six-degrees");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e}e.s(["IMPORT_ROUTE",0,ed,"ImportError",0,eh,"MAX_IMPORT_BYTES",0,0x10000000,"admitImport",0,function(e,{env:t,scanRunning:n,pending:r,currentPeople:i,max:a=0x10000000}){let o=h({method:e.method,pathname:ed,headers:e.headers,env:t});if(o)return{refused:o};let s=Number(e.headers.get("x-six-degrees-size")),l=i(),c=function({scanRunning:e,pending:t,declared:n,currentPeople:r=0,confirmedPeople:i,max:a=0x10000000}){return e?new eh(`${(0,m.runningNow)(e)}. Let it finish, or stop it on the Scan page, then import.`,{status:409}):t?new eh("An import is already waiting to finish. Restart Six Degrees to finish it, or cancel it first.",{status:409}):!Number.isSafeInteger(n)||n<=0?new eh("Choose a Six Degrees export (a .sixdegrees file) to import."):n>a?new eh(`That file is ${em(n)}. This copy can import files up to ${em(a)}.`,{status:413}):r>0&&i!==r?new eh(`This copy already has ${r.toLocaleString("en-US")} people. Confirm that the import replaces them.`,{status:409,needsConfirm:!0,people:r}):null}({scanRunning:n(),pending:r(),declared:s,currentPeople:l,confirmedPeople:Number(e.headers.get("x-six-degrees-replace")),max:a});return c?{refused:{status:c.status,error:c.message,...c.extra}}:{declared:s,currentPeople:l}},"applyPendingImport",0,eO,"cancelPendingImport",0,function(e){let t=eI(e);if(!t)return{cancelled:!1,reason:"none"};if(t.started)return{cancelled:!1,reason:"started"};let r=i.default.join(e,J),a=`${r}.cancelled-${Date.now()}`;return(0,n.renameSync)(r,a),(0,n.rmSync)(a,{recursive:!0,force:!0}),{cancelled:!0}},"lastImport",0,function(e){try{let t=e.prepare("SELECT value FROM app_meta WHERE key = 'last_import'").get()?.value,n=t?JSON.parse(t):null;return n&&"object"==typeof n?n:null}catch{return null}},"pendingImport",0,eI,"receiveUpload",0,eE,"recordImport",0,eL,"restartAdvice",0,function({kind:e,code:t,dataDir:n=null}){let r="It finishes the import as it starts.";if(t)return{canRestart:!0,how:"Click Restart now to finish it: Six Degrees restarts, which takes a few seconds, and finishes the import as it starts."};if("mac-app"===e)return{canRestart:!1,how:`Quit Six Degrees (⌘Q) and open it again. ${r}`};if("npm"===e){let e=n?` --data-dir '${String(n).replace(/'/g,"'\\''")}'`:"";return{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:`npx six-degrees${e}`}}return"source"===e?{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:"npm run start:packaged"}:{canRestart:!1,how:`Stop the server with Ctrl-C and start it again the way you started it. ${r}`}},"restartCodeFrom",0,function(e=process.env){let t=Number(e.SIX_DEGREES_RESTART_CODE);return Number.isInteger(t)&&t>1&&t<126?t:null},"stageImport",0,function(e,{dir:t,applySchema:r,schemaSql:a,appVersion:o,replacedPeople:l=0,now:u=new Date,retired:f=eg}){let d=function(e,{applySchema:t,schemaSql:r,appVersion:i,retired:a=eg}){let o,l=Buffer.alloc(100),u=0,f=(0,n.openSync)(e,"r");try{u=(0,n.readSync)(f,l,0,100,0)}finally{(0,n.closeSync)(f)}if(u<100||!l.subarray(0,16).equals(ep))throw new eh("This isn't a Six Degrees export (a .sixdegrees file), so nothing was imported.");try{o=new s.DatabaseSync(e,{readOnly:!0})}catch(e){throw new eh(`This file couldn't be opened (${e.message}), so nothing was imported.`)}try{let e;o.exec("PRAGMA trusted_schema = OFF; PRAGMA query_only = ON; PRAGMA cell_size_check = ON;");try{e=o.prepare("PRAGMA integrity_check").all()}catch(t){e=[{integrity_check:t.message}]}if(1!==e.length||"ok"!==e[0].integrity_check)throw new eh("This file is damaged (its database fails SQLite's own check), so nothing was imported. Export it again on the other computer.");let n=function(e,t){let n=new s.DatabaseSync(":memory:");try{e(n),n.exec(`${Object.values(ea).join(";\n")};`);let r=new Map;for(let e of[...el(t),...Object.keys(ea)]){let t=n.prepare(`PRAGMA table_info("${e}")`).all();r.set(e,{required:t.filter(e=>e.pk>0||e.notnull&&null===e.dflt_value).map(e=>e.name),allowed:new Set(t.map(e=>e.name))})}return{tables:r,indexes:new Set(ec(t))}}finally{n.close()}}(t,r),l=(e,t)=>new eh(`This file holds something a Six Degrees export never does (the ${eT(e)} “${eT(t)}”), so nothing was imported.`),u=new Map(o.prepare("PRAGMA main.table_list").all().map(e=>[e.name,e])),f=o.prepare("SELECT type, name, tbl_name FROM sqlite_master").all(),d=e=>n.tables.has(e)||a.tables.includes(e);for(let e of f){if("table"===e.type){let t=u.get(e.name)?.type;if("table"!==t)throw l(`${t||"unknown"} table`,e.name);if(d(e.name))continue}if(!("index"===e.type&&(n.indexes.has(e.name)||a.indexes.includes(e.name)||String(e.name).startsWith("sqlite_autoindex_")&&d(e.tbl_name))))throw l(e.type,e.name)}let p=new Set(f.filter(e=>"table"===e.type).map(e=>e.name));if(!p.has("sd_export_manifest")||!p.has("sd_export_files"))throw new eh("This is a database but not a Six Degrees export, so nothing was imported. Make one on the other computer with Settings → Your data → Save a copy.");for(let[e,{required:t,allowed:r}]of n.tables){if(!p.has(e)){if(!eS.includes(e))continue;throw new eh(`This export has no “${e}” table, so nothing was imported.`)}let n=o.prepare(`PRAGMA table_xinfo("${e}")`).all(),i=n.map(e=>e.name),s=a.columns[e]||[];if(!(0===u.get(e).wr&&n.every(e=>0===e.hidden&&(r.has(e.name)||s.includes(e.name)))&&t.every(e=>i.includes(e))))throw new eh(`This export's “${e}” table isn't laid out the way Six Degrees makes it, so nothing was imported.`)}let h=Object.fromEntries(o.prepare("SELECT key, value FROM sd_export_manifest").all().map(e=>[e.key,e.value])),m=Number(h.format);if(1!==m)throw new eh(Number.isInteger(m)&&m>1?"This export was made by a newer Six Degrees than this copy. Update this copy first, then import it.":"This file's export details aren't ones Six Degrees writes, so nothing was imported.");let T=String(h.app_version??"");if(!/^v?\d+\.\d+\.\d+/.test(T))throw new eh("This file doesn't say which version of Six Degrees made it, so nothing was imported.");if((0,c.compareVersions)(T,i)>0)throw new eh(`This file comes from Six Degrees ${eT(T)}, which is newer than this copy (${i}). Update this copy first, then import it.`);let E=null;try{E=JSON.parse(h.counts)}catch{}if(!E||"object"!=typeof E||Array.isArray(E))throw new eh("This file's export details aren't ones Six Degrees writes, so nothing was imported.");let y=(e,t,n)=>new eh(`This file's ${e} doesn't match its own export details (${t}, where they say ${eT(n)}), so nothing was imported. Export it again on the other computer.`);for(let e of p){if(Object.hasOwn(ea,e))continue;let t=o.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n;if(!Object.hasOwn(E,e)||Number(E[e])!==t)throw y(`“${e}” table`,`${t} rows`,E[e]??"nothing")}for(let[e,t]of Object.entries(E))if(!p.has(e)&&0!==Number(t))throw y(`“${eT(e)}” table`,"no table",t);let S=0,g=0,_=o.prepare("SELECT bytes, sha256 FROM sd_export_files WHERE path = ?");for(let{path:e}of o.prepare("SELECT path FROM sd_export_files").all()){let t,n=ey(e);if(!n)throw new eh(`This file carries “${eT(e)}”, which an export never includes, so nothing was imported.`);let r=_.get(e);if(!(r?.bytes instanceof Uint8Array)||eo(r.bytes)!==r.sha256)throw new eh(`“${e}” inside this file is damaged (it doesn't match its checksum), so nothing was imported.`);if("photo"===n){S++;continue}try{t=JSON.parse(Buffer.from(r.bytes).toString("utf8"))}catch{t=void 0}if(!t||"object"!=typeof t||Array.isArray(t))throw new eh(`“${e}” inside this file can't be read, so nothing was imported.`);let i=Y.includes(e)?X(e,t):null;if(i)throw new eh(`“${e}” inside this file can't be used (${i}), so nothing was imported.`);g++}if(Number(h.files)!==S+g)throw y("list of files",`${S+g} files`,h.files??"nothing");return{fromVersion:T,exportedAt:h.exported_at||null,people:eu(o),photos:S,files:g}}catch(e){if(e instanceof eh)throw e;throw new eh(`This file couldn't be read as a Six Degrees export (${eT(e.message)}), so nothing was imported.`)}finally{o.close()}}(e,{applySchema:r,schemaSql:a,appVersion:o,retired:f}),p=i.default.dirname(e),h=i.default.join(p,"files"),m=i.default.join(p,"data.sqlite"),T=[],y=new s.DatabaseSync(m);try{y.exec("PRAGMA trusted_schema = OFF; PRAGMA cell_size_check = ON;"),r(y),y.exec(`ATTACH DATABASE ${es(e)} AS up`);try{for(let e of(y.exec("BEGIN"),el(a))){let t=new Set(y.prepare(`PRAGMA main.table_info("${e}")`).all().map(e=>e.name)),n=y.prepare(`PRAGMA up.table_info("${e}")`).all().filter(e=>t.has(e.name)).map(e=>`"${e.name}"`).join(", ");n&&y.exec(`INSERT INTO main."${e}" (${n}) SELECT ${n} FROM up."${e}" ORDER BY rowid`)}y.exec("COMMIT")}catch(e){try{y.exec("ROLLBACK")}catch{}throw new eh(`This export's network doesn't fit this copy's database (${e.message}), so nothing was imported.`)}(0,n.mkdirSync)(i.default.join(h,"avatars"),{recursive:!0});let t=y.prepare("SELECT bytes, sha256 FROM up.sd_export_files WHERE path = ?");for(let{path:e}of y.prepare("SELECT path FROM up.sd_export_files").all()){let r=t.get(e),a=ey(e);if(!a||!(r?.bytes instanceof Uint8Array)||eo(r.bytes)!==r.sha256)throw new eh(`“${eT(e)}” inside this file is damaged, so nothing was imported.`);(0,n.writeFileSync)(i.default.join(h,e),r.bytes,{flag:"wx"}),"file"===a&&T.push(i.default.join(h,e))}}finally{y.close()}(0,n.rmSync)(e,{force:!0});let g={stagedAt:u.toISOString(),exportedAt:d.exportedAt,fromVersion:d.fromVersion,people:d.people,photos:d.photos,replacedPeople:l};for(let e of((0,n.writeFileSync)(i.default.join(p,"READY"),`${JSON.stringify(g,null,2)}
157
- `),[m,...T,i.default.join(p,"READY")]))S(e);for(let e of[i.default.join(h,"avatars"),h,p])E(e);return(0,n.renameSync)(p,i.default.join(t,J)),E(t),g}],19041);let ex={users:["sectors","goals","company_prestige_config"],user_profile:["sectors","goals","company_prestige_config"],linkedin_connections:["influence_signals"],notifications:["data"],queue_items:[],user_stats:[]},ek={linkedin_connections:["is_catalyst"],notifications:["seen"],users:[],user_profile:[],queue_items:[],user_stats:[]},eF=null,eX=Symbol.for("six-degrees.db-opened");function e$(){return process.env.SIX_DEGREES_DB||i.default.join(eD(),"six-degrees.sqlite")}function ej(e){e.exec(a),function(e){for(let[t,n,r]of ev)e.prepare(`PRAGMA table_info(${t})`).all().some(e=>e.name===n)||e.exec(`ALTER TABLE ${t} ADD COLUMN ${n} ${r}`)}(e)}let ev=[["linkedin_connections","score_why","TEXT"],["linkedin_connections","mutual_count","INTEGER"]],eU="auto-before-";e.s(["AUTO_BACKUP_PREFIX",0,eU,"applySchema",0,ej,"dataDir",0,eD,"dbFile",0,e$,"decodeRow",0,function(e,t){if(!t)return t;let n={...t};for(let t of ex[e]||[])if("string"==typeof n[t])try{n[t]=JSON.parse(n[t])}catch{}for(let t of ek[e]||[])(0===n[t]||1===n[t])&&(n[t]=!!n[t]);return n},"encodeValue",0,function(e,t,n){return void 0===n?null:(ex[e]||[]).includes(t)?null===n?null:JSON.stringify(n):(ek[e]||[]).includes(t)?null===n?null:+!!n:"boolean"==typeof n?+!!n:null!==n&&"object"==typeof n?JSON.stringify(n):n},"getDb",0,function(){if(eF)return eF;let e=e$(),r=null;if(!globalThis[eX])try{(r=eO({dir:eD(),dbFile:e}))&&console.log(`Six Degrees: finished the import (${r.people} people). What was here before: ${r.keptDatabase||"nothing to keep"}.`)}catch(e){console.error(`Six Degrees: could not finish the import (will try again next start): ${e.message}`)}globalThis[eX]=!0,eF=new t.DatabaseSync(e);try{let t=function(e,{dir:t,version:r,keep:a=5,now:o=new Date}){let s=i.default.join(t,"app-version"),l=null;try{l=(0,n.readFileSync)(s,"utf8").trim()}catch{}if(l===r)return null;let c=null;if(e.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n>0){let s=i.default.join(t,"backups");(0,n.mkdirSync)(s,{recursive:!0});let l=o.toISOString().replace(/[:.]/g,"-");for(let{f:t}of(c=i.default.join(s,`${eU}${r}-${l}.sqlite`),e.exec(`VACUUM INTO '${c.replace(/'/g,"''")}'`),(0,n.readdirSync)(s).filter(e=>e.startsWith(eU)&&e.endsWith(".sqlite")).map(e=>({f:e,at:(0,n.statSync)(i.default.join(s,e)).mtimeMs})).sort((e,t)=>t.at-e.at||t.f.localeCompare(e.f)).slice(a)))(0,n.rmSync)(i.default.join(s,t),{force:!0})}return(0,n.writeFileSync)(s,`${r}
158
- `),c}(eF,{dir:i.default.dirname(e),version:o});t&&console.log(`Six Degrees ${o}: backed up your data first → ${t}`)}catch(e){console.error(`Six Degrees: could not back up your data before ${o} (will try again next start): ${e.message}`)}if(ej(eF),r)try{eL(eF,r)}catch{}return eF},"newId",0,function(){return crypto.randomUUID()},"nowIso",0,function(){return new Date().toISOString()}],88431)}];
168
+ WHERE substr(profile_image_url, 1, 9) = '/avatars/'`).all().map(e=>e.name))}e.s(["EXPORT_FORMAT",0,1,"EXPORT_TABLES",0,ea,"appIndexes",0,ec,"appTables",0,el,"buildExport",0,function(e,{dir:t,outFile:r,includePhotos:a=!0,appVersion:o,schemaSql:s,now:l=new Date}){let c;e.exec(`VACUUM INTO ${es(r)}`);let u=new er.DatabaseSync(r);try{u.exec("PRAGMA journal_mode = DELETE"),u.exec(`${Object.values(ea).join(";\n")};`),u.exec("BEGIN"),a||u.exec("UPDATE linkedin_connections SET profile_image_url = NULL WHERE profile_image_url LIKE '/avatars/%'"),u.exec("DELETE FROM app_meta WHERE key = 'last_import'");let e=u.prepare("INSERT INTO sd_export_files (path, bytes, sha256) VALUES (?, ?, ?)"),r=0,f=0,d=a?ef(u):null;for(let o of function(e,{includePhotos:t=!0,photos:r=null}={}){let a=e=>{try{return(0,n.lstatSync)(e).isFile()}catch{return!1}},o=[];for(let t of W){let n=i.default.join(e,t);a(n)&&o.push({rel:t,abs:n})}if(t)for(let t of ee(i.default.join(e,"avatars")).sort()){if(!M.test(t)||r&&!r.has(t))continue;let n=i.default.join(e,"avatars",t);a(n)&&o.push({rel:`avatars/${t}`,abs:n})}return o}(t,{includePhotos:a,photos:d})){let t;try{t=(0,n.readFileSync)(o.abs)}catch{continue}e.run(o.rel,t,eo(t)),f++,o.rel.startsWith("avatars/")&&r++}let p={};for(let e of el(s))try{p[e]=u.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n}catch{p[e]=0}let h="";try{h=u.prepare("SELECT value FROM app_meta WHERE key = 'scoring_version'").get()?.value??""}catch{}let T=eu(u),m={format:1,app_version:o,scoring_version:h,exported_at:l.toISOString(),include_photos:+!!a,people:T,photos:r,files:f,counts:JSON.stringify(p)},E=u.prepare("INSERT INTO sd_export_manifest (key, value) VALUES (?, ?)");for(let[e,t]of Object.entries(m))E.run(e,String(t));u.exec("COMMIT"),c={people:T,photos:r,files:f,counts:p}}catch(e){try{u.exec("ROLLBACK")}catch{}throw e}finally{u.close()}return{...c,bytes:(0,n.statSync)(r).size}},"countPeople",0,eu,"exportFileName",0,function(e=new Date){let t=e=>String(e).padStart(2,"0");return`Six Degrees backup ${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}.sixdegrees`},"referencedPhotos",0,ef,"sha256",0,eo,"sqlString",0,es],92375);let ed="/api/data/import",ep=Buffer.from("SQLite format 3\0","latin1");class eh extends Error{constructor(e,{status:t=400,...n}={}){super(e),this.status=t,this.extra=n}}function eT(e){let t=e/1024/1024;return`${t<10?t.toFixed(1):Math.round(t)} MB`}let em=e=>String(e).slice(0,80);async function eE(e,t,{declared:n}){let r=await (0,l.open)(t,"wx",384),i=0;try{if(e)for await(let t of e){let e=t instanceof Uint8Array?t:new Uint8Array(t);if((i+=e.byteLength)>n)throw new eh("The file was bigger than the size it was sent with, so nothing was imported. Try again.");for(let t=0;t<e.byteLength;){let{bytesWritten:n}=await r.write(e,t,e.byteLength-t);t+=n}}}finally{await r.close()}if(i!==n)throw new eh(`The file didn't arrive whole (${i} of ${n} bytes), so nothing was imported. Try again.`);return i}function ey(e){return"string"!=typeof e?null:W.includes(e)?"file":e.startsWith("avatars/")&&M.test(e.slice(8))?"photo":null}let eS=["users","linkedin_connections",...Object.keys(ea)],eg=Object.freeze({tables:[],indexes:[],columns:{}}),ew=e=>{try{return(0,n.lstatSync)(e),!0}catch{return!1}};function e_(e){let t=Buffer.alloc(ep.length),r=(0,n.openSync)(e,"r");try{let e=(0,n.readSync)(r,t,0,t.length,0);return 0===e||e===t.length&&t.equals(ep)}finally{(0,n.closeSync)(r)}}function eA(e){try{return JSON.parse((0,n.readFileSync)(e,"utf8"))}catch{return null}}function eN(e,t){try{(0,n.renameSync)(e,t)}catch(r){if("EXDEV"!==r.code)throw r;(0,n.cpSync)(e,t,{recursive:!0}),(0,n.lstatSync)(t).isFile()&&S(t),(0,n.rmSync)(e,{recursive:!0,force:!0})}}function eb(e,t){let r=`${t}.partial`;(0,n.rmSync)(r,{force:!0});try{let a=new s.DatabaseSync(e);try{a.exec(`VACUUM INTO ${es(r)}`)}finally{a.close()}S(r),(0,n.renameSync)(r,t),E(i.default.dirname(t))}catch(e){throw(0,n.rmSync)(r,{force:!0}),e}}function eR(e,t){let n=null,r=null;try{let i=(n=new s.DatabaseSync(t,{readOnly:!0})).prepare("PRAGMA quick_check").all();if(1!==i.length||"ok"!==i[0].quick_check)return!1;(r=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let a=e=>e.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all().map(e=>e.name),o=(e,t)=>e.prepare(`SELECT count(*) AS n FROM "${t.replace(/"/g,'""')}"`).get().n,l=new Set(a(n));return a(r).every(e=>l.has(e)&&o(r,e)===o(n,e))}catch{return!1}finally{n?.close(),r?.close()}}function eI(e){let t=i.default.join(e,J);if(!ew(i.default.join(t,"READY")))return null;let r=eA(i.default.join(t,"READY"))||{},a=eA(i.default.join(t,"APPLYING")),o=null;try{o=(0,n.readFileSync)(i.default.join(t,"ERROR"),"utf8").trim()||null}catch{}let s=!!(a&&("start"!==a.phase||a.keptAsIs));return{...r,started:s,error:o}}function eO({dir:e,dbFile:t,now:r=new Date,copyDatabase:a=eb}){en(e,{now:r.getTime()});let o=i.default.join(e,J);if(!ew(i.default.join(o,"READY")))return null;let l=eA(i.default.join(o,"READY"))||{},c=i.default.join(o,"APPLYING"),u=eA(c)||{stamp:r.toISOString().replace(/[:.]/g,"-"),phase:"start"},f=()=>y(c,JSON.stringify(u)),d=e=>{u.phase=e,f()},p=i.default.dirname(t),h=i.default.join(p,"backups"),T=i.default.join(h,`${K}${u.stamp}.sqlite`),m=i.default.join(h,`${K}${u.stamp}-files`),g=i.default.join(o,"data.sqlite"),w=["-wal","-shm","-journal"],_=()=>{for(let e of w)ew(`${t}${e}`)&&!ew(`${T}${e}`)&&eN(`${t}${e}`,`${T}${e}`);ew(t)&&!ew(T)&&eN(t,T),E(h),E(p)},A=!1,N=()=>{(0,n.mkdirSync)(h,{recursive:!0});try{if(!e_(t))throw Error("it is not a SQLite database");a(t,T),A=!0}catch(e){for(let e of["",...w])(0,n.rmSync)(`${T}${e}`,{force:!0});(0,n.rmSync)(`${T}.partial`,{force:!0}),u.keptAsIs=String(e.message||e).slice(0,200),f(),_()}};try{ew(c)||f();let r=["start","database-kept","files-kept"].includes(u.phase);if("start"===u.phase&&(!ew(g)||!function(e){let t=null;try{(t=new s.DatabaseSync(e)).exec("PRAGMA query_only = ON");let n=t.prepare("PRAGMA quick_check").all();return 1===n.length&&"ok"===n[0].quick_check&&1===t.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n}catch{return!1}finally{t?.close()}}(g)))throw Error("the imported network waiting here is damaged. Cancel the import and import the file again");if(r&&!u.keptAsIs&&ew(t)&&e_(t)&&function(e){let t=null;try{return(t=new s.DatabaseSync(e)).exec("PRAGMA locking_mode = EXCLUSIVE"),t.prepare("SELECT count(*) AS n FROM sqlite_master").get(),!1}catch(e){return 5===e.errcode||6===e.errcode||/database (table )?is locked/i.test(String(e.message))}finally{try{t?.close()}catch{}}}(t))throw Error("another copy of Six Degrees has this network open (one started with npx six-degrees or npm run dev, perhaps). Quit that copy, then restart this one");if(r&&u.keptAsIs&&_(),"start"===u.phase&&(!u.keptAsIs&&ew(t)&&N(),d("database-kept")),"database-kept"===u.phase){let t=()=>(0,n.mkdirSync)(m,{recursive:!0});for(let n of["avatars",...B]){let r=i.default.join(e,n);ew(r)&&(t(),eN(r,i.default.join(m,n)))}for(let r of Y){let a=i.default.join(e,r);ew(a)&&(0,n.lstatSync)(a).isFile()&&(t(),(0,n.copyFileSync)(a,i.default.join(m,r)),S(i.default.join(m,r)))}ew(m)&&E(m),E(h),E(e),d("files-kept")}if("files-kept"===u.phase){if(ew(g)){if(!u.keptAsIs&&ew(t)){let e=A&&eR(t,T);if(e||(N(),e=!!u.keptAsIs||eR(t,T)),!e)throw Error("the copy of the network here couldn't be checked, so it wasn't replaced")}for(let e of w)(0,n.rmSync)(`${t}${e}`,{force:!0});(0,n.mkdirSync)(p,{recursive:!0}),eN(g,t),E(p)}d("database-placed")}if("database-placed"===u.phase){let t=i.default.join(o,"files"),r=i.default.join(t,"avatars");if(ew(r)){for(let t of((0,n.mkdirSync)(i.default.join(e,"avatars"),{recursive:!0}),ee(r)))eN(i.default.join(r,t),i.default.join(e,"avatars",t));E(i.default.join(e,"avatars"))}for(let n of B){let r=i.default.join(t,n);ew(r)&&eN(r,i.default.join(e,n))}U({dir:e,from:t}),E(e),d("done")}}catch(e){try{(0,n.writeFileSync)(i.default.join(o,"ERROR"),`${e.message}
169
+ `)}catch{}throw e}let b=`${o}.done-${u.stamp}`;(0,n.renameSync)(o,b),(0,n.rmSync)(b,{recursive:!0,force:!0});let R=t=>{let n=i.default.relative(e,t);return!n||n.startsWith("..")||i.default.isAbsolute(n)?t:n};return{appliedAt:r.toISOString(),stagedAt:l.stagedAt??null,exportedAt:l.exportedAt??null,fromVersion:l.fromVersion??null,people:l.people??null,photos:l.photos??null,replacedPeople:l.replacedPeople??null,keptDatabase:ew(T)?R(T):null,keptFiles:ew(m)?R(m):null,keptAsIs:u.keptAsIs??null}}function eL(e,t){e.prepare(`INSERT INTO app_meta (key, value) VALUES ('last_import', ?)
170
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(JSON.stringify(t))}function eD(){let e=process.env.SIX_DEGREES_HOME||i.default.join((0,r.homedir)(),".six-degrees");return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),e}e.s(["IMPORT_ROUTE",0,ed,"ImportError",0,eh,"MAX_IMPORT_BYTES",0,0x10000000,"admitImport",0,function(e,{env:t,scanRunning:n,pending:r,currentPeople:i,max:a=0x10000000}){let o=h({method:e.method,pathname:ed,headers:e.headers,env:t});if(o)return{refused:o};let s=Number(e.headers.get("x-six-degrees-size")),l=i(),c=function({scanRunning:e,pending:t,declared:n,currentPeople:r=0,confirmedPeople:i,max:a=0x10000000}){return e?new eh(`${(0,T.runningNow)(e)}. Let it finish, or stop it on the Scan page, then import.`,{status:409}):t?new eh("An import is already waiting to finish. Restart Six Degrees to finish it, or cancel it first.",{status:409}):!Number.isSafeInteger(n)||n<=0?new eh("Choose a Six Degrees export (a .sixdegrees file) to import."):n>a?new eh(`That file is ${eT(n)}. This copy can import files up to ${eT(a)}.`,{status:413}):r>0&&i!==r?new eh(`This copy already has ${r.toLocaleString("en-US")} people. Confirm that the import replaces them.`,{status:409,needsConfirm:!0,people:r}):null}({scanRunning:n(),pending:r(),declared:s,currentPeople:l,confirmedPeople:Number(e.headers.get("x-six-degrees-replace")),max:a});return c?{refused:{status:c.status,error:c.message,...c.extra}}:{declared:s,currentPeople:l}},"applyPendingImport",0,eO,"cancelPendingImport",0,function(e){let t=eI(e);if(!t)return{cancelled:!1,reason:"none"};if(t.started)return{cancelled:!1,reason:"started"};let r=i.default.join(e,J),a=`${r}.cancelled-${Date.now()}`;return(0,n.renameSync)(r,a),(0,n.rmSync)(a,{recursive:!0,force:!0}),{cancelled:!0}},"lastImport",0,function(e){try{let t=e.prepare("SELECT value FROM app_meta WHERE key = 'last_import'").get()?.value,n=t?JSON.parse(t):null;return n&&"object"==typeof n?n:null}catch{return null}},"pendingImport",0,eI,"receiveUpload",0,eE,"recordImport",0,eL,"restartAdvice",0,function({kind:e,code:t,dataDir:n=null}){let r="It finishes the import as it starts.";if(t)return{canRestart:!0,how:"Click Restart now to finish it: Six Degrees restarts, which takes a few seconds, and finishes the import as it starts."};if("mac-app"===e)return{canRestart:!1,how:`Quit Six Degrees (⌘Q) and open it again. ${r}`};if("npm"===e){let e=n?` --data-dir '${String(n).replace(/'/g,"'\\''")}'`:"";return{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:`npx six-degrees${e}`}}return"source"===e?{canRestart:!1,how:`Stop Six Degrees with Ctrl-C in its Terminal window, then start it again. ${r}`,command:"npm run start:packaged"}:{canRestart:!1,how:`Stop the server with Ctrl-C and start it again the way you started it. ${r}`}},"restartCodeFrom",0,function(e=process.env){let t=Number(e.SIX_DEGREES_RESTART_CODE);return Number.isInteger(t)&&t>1&&t<126?t:null},"stageImport",0,function(e,{dir:t,applySchema:r,schemaSql:a,appVersion:o,replacedPeople:l=0,now:u=new Date,retired:f=eg}){let d=function(e,{applySchema:t,schemaSql:r,appVersion:i,retired:a=eg}){let o,l=Buffer.alloc(100),u=0,f=(0,n.openSync)(e,"r");try{u=(0,n.readSync)(f,l,0,100,0)}finally{(0,n.closeSync)(f)}if(u<100||!l.subarray(0,16).equals(ep))throw new eh("This isn't a Six Degrees export (a .sixdegrees file), so nothing was imported.");try{o=new s.DatabaseSync(e,{readOnly:!0})}catch(e){throw new eh(`This file couldn't be opened (${e.message}), so nothing was imported.`)}try{let e;o.exec("PRAGMA trusted_schema = OFF; PRAGMA query_only = ON; PRAGMA cell_size_check = ON;");try{e=o.prepare("PRAGMA integrity_check").all()}catch(t){e=[{integrity_check:t.message}]}if(1!==e.length||"ok"!==e[0].integrity_check)throw new eh("This file is damaged (its database fails SQLite's own check), so nothing was imported. Export it again on the other computer.");let n=function(e,t){let n=new s.DatabaseSync(":memory:");try{e(n),n.exec(`${Object.values(ea).join(";\n")};`);let r=new Map;for(let e of[...el(t),...Object.keys(ea)]){let t=n.prepare(`PRAGMA table_info("${e}")`).all();r.set(e,{required:t.filter(e=>e.pk>0||e.notnull&&null===e.dflt_value).map(e=>e.name),allowed:new Set(t.map(e=>e.name))})}return{tables:r,indexes:new Set(ec(t))}}finally{n.close()}}(t,r),l=(e,t)=>new eh(`This file holds something a Six Degrees export never does (the ${em(e)} “${em(t)}”), so nothing was imported.`),u=new Map(o.prepare("PRAGMA main.table_list").all().map(e=>[e.name,e])),f=o.prepare("SELECT type, name, tbl_name FROM sqlite_master").all(),d=e=>n.tables.has(e)||a.tables.includes(e);for(let e of f){if("table"===e.type){let t=u.get(e.name)?.type;if("table"!==t)throw l(`${t||"unknown"} table`,e.name);if(d(e.name))continue}if(!("index"===e.type&&(n.indexes.has(e.name)||a.indexes.includes(e.name)||String(e.name).startsWith("sqlite_autoindex_")&&d(e.tbl_name))))throw l(e.type,e.name)}let p=new Set(f.filter(e=>"table"===e.type).map(e=>e.name));if(!p.has("sd_export_manifest")||!p.has("sd_export_files"))throw new eh("This is a database but not a Six Degrees export, so nothing was imported. Make one on the other computer with Settings → Your data → Save a copy.");for(let[e,{required:t,allowed:r}]of n.tables){if(!p.has(e)){if(!eS.includes(e))continue;throw new eh(`This export has no “${e}” table, so nothing was imported.`)}let n=o.prepare(`PRAGMA table_xinfo("${e}")`).all(),i=n.map(e=>e.name),s=a.columns[e]||[];if(!(0===u.get(e).wr&&n.every(e=>0===e.hidden&&(r.has(e.name)||s.includes(e.name)))&&t.every(e=>i.includes(e))))throw new eh(`This export's “${e}” table isn't laid out the way Six Degrees makes it, so nothing was imported.`)}let h=Object.fromEntries(o.prepare("SELECT key, value FROM sd_export_manifest").all().map(e=>[e.key,e.value])),T=Number(h.format);if(1!==T)throw new eh(Number.isInteger(T)&&T>1?"This export was made by a newer Six Degrees than this copy. Update this copy first, then import it.":"This file's export details aren't ones Six Degrees writes, so nothing was imported.");let m=String(h.app_version??"");if(!/^v?\d+\.\d+\.\d+/.test(m))throw new eh("This file doesn't say which version of Six Degrees made it, so nothing was imported.");if((0,c.compareVersions)(m,i)>0)throw new eh(`This file comes from Six Degrees ${em(m)}, which is newer than this copy (${i}). Update this copy first, then import it.`);let E=null;try{E=JSON.parse(h.counts)}catch{}if(!E||"object"!=typeof E||Array.isArray(E))throw new eh("This file's export details aren't ones Six Degrees writes, so nothing was imported.");let y=(e,t,n)=>new eh(`This file's ${e} doesn't match its own export details (${t}, where they say ${em(n)}), so nothing was imported. Export it again on the other computer.`);for(let e of p){if(Object.hasOwn(ea,e))continue;let t=o.prepare(`SELECT count(*) AS n FROM "${e}"`).get().n;if(!Object.hasOwn(E,e)||Number(E[e])!==t)throw y(`“${e}” table`,`${t} rows`,E[e]??"nothing")}for(let[e,t]of Object.entries(E))if(!p.has(e)&&0!==Number(t))throw y(`“${em(e)}” table`,"no table",t);let S=0,g=0,w=o.prepare("SELECT bytes, sha256 FROM sd_export_files WHERE path = ?");for(let{path:e}of o.prepare("SELECT path FROM sd_export_files").all()){let t,n=ey(e);if(!n)throw new eh(`This file carries “${em(e)}”, which an export never includes, so nothing was imported.`);let r=w.get(e);if(!(r?.bytes instanceof Uint8Array)||eo(r.bytes)!==r.sha256)throw new eh(`“${e}” inside this file is damaged (it doesn't match its checksum), so nothing was imported.`);if("photo"===n){S++;continue}try{t=JSON.parse(Buffer.from(r.bytes).toString("utf8"))}catch{t=void 0}if(!t||"object"!=typeof t||Array.isArray(t))throw new eh(`“${e}” inside this file can't be read, so nothing was imported.`);let i=Y.includes(e)?F(e,t):null;if(i)throw new eh(`“${e}” inside this file can't be used (${i}), so nothing was imported.`);g++}if(Number(h.files)!==S+g)throw y("list of files",`${S+g} files`,h.files??"nothing");return{fromVersion:m,exportedAt:h.exported_at||null,people:eu(o),photos:S,files:g}}catch(e){if(e instanceof eh)throw e;throw new eh(`This file couldn't be read as a Six Degrees export (${em(e.message)}), so nothing was imported.`)}finally{o.close()}}(e,{applySchema:r,schemaSql:a,appVersion:o,retired:f}),p=i.default.dirname(e),h=i.default.join(p,"files"),T=i.default.join(p,"data.sqlite"),m=[],y=new s.DatabaseSync(T);try{y.exec("PRAGMA trusted_schema = OFF; PRAGMA cell_size_check = ON;"),r(y),y.exec(`ATTACH DATABASE ${es(e)} AS up`);try{for(let e of(y.exec("BEGIN"),el(a))){let t=new Set(y.prepare(`PRAGMA main.table_info("${e}")`).all().map(e=>e.name)),n=y.prepare(`PRAGMA up.table_info("${e}")`).all().filter(e=>t.has(e.name)).map(e=>`"${e.name}"`).join(", ");n&&y.exec(`INSERT INTO main."${e}" (${n}) SELECT ${n} FROM up."${e}" ORDER BY rowid`)}y.exec("COMMIT")}catch(e){try{y.exec("ROLLBACK")}catch{}throw new eh(`This export's network doesn't fit this copy's database (${e.message}), so nothing was imported.`)}(0,n.mkdirSync)(i.default.join(h,"avatars"),{recursive:!0});let t=y.prepare("SELECT bytes, sha256 FROM up.sd_export_files WHERE path = ?");for(let{path:e}of y.prepare("SELECT path FROM up.sd_export_files").all()){let r=t.get(e),a=ey(e);if(!a||!(r?.bytes instanceof Uint8Array)||eo(r.bytes)!==r.sha256)throw new eh(`“${em(e)}” inside this file is damaged, so nothing was imported.`);(0,n.writeFileSync)(i.default.join(h,e),r.bytes,{flag:"wx"}),"file"===a&&m.push(i.default.join(h,e))}}finally{y.close()}(0,n.rmSync)(e,{force:!0});let g={stagedAt:u.toISOString(),exportedAt:d.exportedAt,fromVersion:d.fromVersion,people:d.people,photos:d.photos,replacedPeople:l};for(let e of((0,n.writeFileSync)(i.default.join(p,"READY"),`${JSON.stringify(g,null,2)}
171
+ `),[T,...m,i.default.join(p,"READY")]))S(e);for(let e of[i.default.join(h,"avatars"),h,p])E(e);return(0,n.renameSync)(p,i.default.join(t,J)),E(t),g}],19041);let ex={users:["sectors","goals","company_prestige_config"],user_profile:["sectors","goals","company_prestige_config"],linkedin_connections:["influence_signals"],notifications:["data"],queue_items:[],user_stats:[]},ek={linkedin_connections:["is_catalyst"],notifications:["seen"],users:[],user_profile:[],queue_items:[],user_stats:[]},eX=null,eF=Symbol.for("six-degrees.db-opened");function e$(){return process.env.SIX_DEGREES_DB||i.default.join(eD(),"six-degrees.sqlite")}function ej(e){e.exec(a),function(e){for(let[t,n,r]of ev)e.prepare(`PRAGMA table_info(${t})`).all().some(e=>e.name===n)||e.exec(`ALTER TABLE ${t} ADD COLUMN ${n} ${r}`)}(e)}let ev=[["linkedin_connections","score_why","TEXT"],["linkedin_connections","mutual_count","INTEGER"]],eU="auto-before-";e.s(["AUTO_BACKUP_PREFIX",0,eU,"applySchema",0,ej,"dataDir",0,eD,"dbFile",0,e$,"decodeRow",0,function(e,t){if(!t)return t;let n={...t};for(let t of ex[e]||[])if("string"==typeof n[t])try{n[t]=JSON.parse(n[t])}catch{}for(let t of ek[e]||[])(0===n[t]||1===n[t])&&(n[t]=!!n[t]);return n},"encodeValue",0,function(e,t,n){return void 0===n?null:(ex[e]||[]).includes(t)?null===n?null:JSON.stringify(n):(ek[e]||[]).includes(t)?null===n?null:+!!n:"boolean"==typeof n?+!!n:null!==n&&"object"==typeof n?JSON.stringify(n):n},"getDb",0,function(){if(eX)return eX;let e=e$(),r=null;if(!globalThis[eF])try{(r=eO({dir:eD(),dbFile:e}))&&console.log(`Six Degrees: finished the import (${r.people} people). What was here before: ${r.keptDatabase||"nothing to keep"}.`)}catch(e){console.error(`Six Degrees: could not finish the import (will try again next start): ${e.message}`)}globalThis[eF]=!0,eX=new t.DatabaseSync(e);try{let t=function(e,{dir:t,version:r,keep:a=5,now:o=new Date}){let s=i.default.join(t,"app-version"),l=null;try{l=(0,n.readFileSync)(s,"utf8").trim()}catch{}if(l===r)return null;let c=null;if(e.prepare("SELECT count(*) AS n FROM sqlite_master WHERE type = 'table' AND name = 'linkedin_connections'").get().n>0){let s=i.default.join(t,"backups");(0,n.mkdirSync)(s,{recursive:!0});let l=o.toISOString().replace(/[:.]/g,"-");for(let{f:t}of(c=i.default.join(s,`${eU}${r}-${l}.sqlite`),e.exec(`VACUUM INTO '${c.replace(/'/g,"''")}'`),(0,n.readdirSync)(s).filter(e=>e.startsWith(eU)&&e.endsWith(".sqlite")).map(e=>({f:e,at:(0,n.statSync)(i.default.join(s,e)).mtimeMs})).sort((e,t)=>t.at-e.at||t.f.localeCompare(e.f)).slice(a)))(0,n.rmSync)(i.default.join(s,t),{force:!0})}return(0,n.writeFileSync)(s,`${r}
172
+ `),c}(eX,{dir:i.default.dirname(e),version:o});t&&console.log(`Six Degrees ${o}: backed up your data first → ${t}`)}catch(e){console.error(`Six Degrees: could not back up your data before ${o} (will try again next start): ${e.message}`)}if(ej(eX),r)try{eL(eX,r)}catch{}return eX},"newId",0,function(){return crypto.randomUUID()},"nowIso",0,function(){return new Date().toISOString()}],88431)}];
159
173
 
160
174
  //# sourceMappingURL=lib_db-client_15le7cw.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";var b=a.i(82509);a.n(b)},62212,function(a){a.n(a.i(66114))},8160,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["/_not-found",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(43619)),"[project]/node_modules/next/dist/client/components/builtin/not-found.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/_not-found/page",pathname:"/_not-found",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],86197),a.i(86197);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],8160)}];
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.0zdzw5kurn8m-.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:48,height:48};a.s(["default",0,b])},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";var b=a.i(82509);a.n(b)},62212,function(a){a.n(a.i(66114))},8160,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["/_not-found",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(43619)),"[project]/node_modules/next/dist/client/components/builtin/not-found.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/_not-found/page",pathname:"/_not-found",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],86197),a.i(86197);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],8160)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__00d8snt._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},47661,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/launch/page.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/launch/page.js","default")},99966,a=>{"use strict";var b=a.i(47661);a.n(b)},30128,function(a){a.n(a.i(99966))},17592,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["launch",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(30128)),"[project]/app/launch/page.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/launch/page",pathname:"/launch",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],94863),a.i(94863);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],17592)}];
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.0zdzw5kurn8m-.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:48,height:48};a.s(["default",0,b])},47661,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/launch/page.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/launch/page.js","default")},99966,a=>{"use strict";var b=a.i(47661);a.n(b)},30128,function(a){a.n(a.i(99966))},17592,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["launch",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(30128)),"[project]/app/launch/page.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/launch/page",pathname:"/launch",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],94863),a.i(94863);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],17592)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__00g61b8._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},87936,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/queue/page.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/queue/page.js","default")},446,a=>{"use strict";var b=a.i(87936);a.n(b)},67291,function(a){a.n(a.i(446))},68440,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["queue",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(67291)),"[project]/app/queue/page.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/queue/page",pathname:"/queue",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],18713),a.i(18713);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],68440)}];
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.0zdzw5kurn8m-.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:48,height:48};a.s(["default",0,b])},87936,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/queue/page.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/queue/page.js","default")},446,a=>{"use strict";var b=a.i(87936);a.n(b)},67291,function(a){a.n(a.i(446))},68440,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(19325)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["queue",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(67291)),"[project]/app/queue/page.js"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}]},layout:[f,"[project]/app/layout.js"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/queue/page",pathname:"/queue",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],18713),a.i(18713);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],68440)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__08lf3gy._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},71029,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},98860,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(71029);let f=a.r(7997);a.r(717);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.0zdzw5kurn8m-.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:48,height:48};a.s(["default",0,b])},71029,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},98860,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(71029);let f=a.r(7997);a.r(717);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=`
2
2
  :root {
3
3
  --next-error-bg: #fff;
4
4
  --next-error-text: #171717;