From ecfb1307d6b45af03b6e2900e10f330bf18a2c48 Mon Sep 17 00:00:00 2001 From: Lee Robinson Date: Tue, 31 Oct 2023 19:03:32 -0500 Subject: [PATCH 1/2] Cleanup --- examples/amp-first/.gitignore | 36 -- examples/amp-first/README.md | 85 --- examples/amp-first/amp.d.ts | 107 ---- examples/amp-first/components/Layout.tsx | 52 -- .../components/amp/AmpCustomElement.tsx | 535 ------------------ .../amp-first/components/amp/AmpScript.tsx | 51 -- .../amp-first/components/amp/AmpState.tsx | 27 - examples/amp-first/next-env.d.ts | 5 - examples/amp-first/package.json | 19 - examples/amp-first/pages/index.tsx | 260 --------- examples/amp-first/pages/offline.tsx | 12 - .../public/install-serviceworker.html | 7 - examples/amp-first/public/manifest.json | 20 - examples/amp-first/public/serviceworker.js | 28 - .../public/static/amp-script/hello.js | 4 - examples/amp-first/public/static/favicon.ico | Bin 15086 -> 0 bytes .../public/static/images/icons-192.png | Bin 3614 -> 0 bytes .../public/static/images/icons-512.png | Bin 9553 -> 0 bytes examples/amp-first/tsconfig.json | 20 - examples/amp-story/.gitignore | 36 -- examples/amp-story/README.md | 27 - examples/amp-story/amp.d.ts | 75 --- examples/amp-story/next-env.d.ts | 5 - examples/amp-story/package.json | 19 - examples/amp-story/pages/index.tsx | 132 ----- examples/amp-story/tsconfig.json | 20 - examples/authsignal/.gitignore | 36 -- .../passwordless-login/.env.local.example | 3 - .../authsignal/passwordless-login/.gitignore | 37 -- .../authsignal/passwordless-login/README.md | 45 -- .../components/dashboard.module.css | 38 -- .../components/dashboard.tsx | 35 -- .../passwordless-login/components/index.ts | 3 - .../passwordless-login/components/layout.tsx | 16 - .../components/login.module.css | 57 -- .../passwordless-login/components/login.tsx | 12 - .../passwordless-login/lib/authsignal.ts | 5 - .../passwordless-login/lib/cookies.ts | 57 -- .../passwordless-login/lib/index.ts | 2 - .../passwordless-login/next.config.js | 6 - .../passwordless-login/package.json | 23 - .../passwordless-login/pages/_app.tsx | 6 - .../pages/api/finalize-login.ts | 27 - .../passwordless-login/pages/api/login.ts | 17 - .../passwordless-login/pages/api/logout.ts | 17 - .../passwordless-login/pages/globals.css | 24 - .../passwordless-login/pages/index.tsx | 23 - .../passwordless-login/public/favicon.ico | Bin 25931 -> 0 bytes .../passwordless-login/public/vercel.svg | 4 - .../passwordless-login/tsconfig.json | 20 - examples/blog-starter-typescript/.gitignore | 36 -- examples/blog-starter-typescript/README.md | 3 - examples/custom-server-typescript/.gitignore | 36 -- examples/custom-server-typescript/README.md | 3 - examples/data-fetch/.gitignore | 36 -- examples/data-fetch/README.md | 30 - examples/data-fetch/next-env.d.ts | 5 - examples/data-fetch/package.json | 18 - examples/data-fetch/pages/index.tsx | 24 - examples/data-fetch/pages/preact-stars.tsx | 24 - examples/data-fetch/tsconfig.json | 19 - examples/data-fetch/types/github.d.ts | 10 - examples/evm-multichain-dapp/.gitignore | 36 -- examples/evm-multichain-dapp/README.md | 27 - .../config/abis/erc20.json | 288 ---------- .../config/blockchains.json | 166 ------ .../evm-multichain-dapp/config/chainIds.ts | 32 -- .../evm-multichain-dapp/config/networks.ts | 104 ---- examples/evm-multichain-dapp/config/rpc.ts | 40 -- .../evm-multichain-dapp/config/wallets.ts | 17 - examples/evm-multichain-dapp/hooks/useWeb3.ts | 37 -- examples/evm-multichain-dapp/next-env.d.ts | 5 - examples/evm-multichain-dapp/next.config.js | 15 - examples/evm-multichain-dapp/package.json | 25 - examples/evm-multichain-dapp/pages/_app.tsx | 19 - examples/evm-multichain-dapp/pages/index.tsx | 183 ------ .../evm-multichain-dapp/public/favicon.ico | Bin 25931 -> 0 bytes .../evm-multichain-dapp/public/vercel.svg | 4 - .../styles/Home.module.css | 129 ----- .../evm-multichain-dapp/styles/globals.css | 90 --- examples/evm-multichain-dapp/tsconfig.json | 20 - examples/fast-refresh-demo/.gitignore | 36 -- examples/fast-refresh-demo/README.md | 29 - .../components/Button.module.css | 32 -- .../fast-refresh-demo/components/Button.tsx | 14 - .../components/ClickCount.tsx | 11 - examples/fast-refresh-demo/global.css | 14 - examples/fast-refresh-demo/next-env.d.ts | 5 - examples/fast-refresh-demo/package.json | 19 - examples/fast-refresh-demo/pages/_app.tsx | 6 - examples/fast-refresh-demo/pages/index.tsx | 70 --- .../fast-refresh-demo/styles/home.module.css | 11 - examples/fast-refresh-demo/tsconfig.json | 20 - examples/hello-world-esm/.gitignore | 36 -- examples/hello-world-esm/README.md | 27 - examples/hello-world-esm/next-env.d.ts | 5 - examples/hello-world-esm/package.json | 20 - examples/hello-world-esm/pages/about.tsx | 3 - examples/hello-world-esm/pages/day/index.tsx | 3 - examples/hello-world-esm/pages/index.tsx | 9 - examples/hello-world-esm/tsconfig.json | 20 - examples/hello-world/README.md | 6 +- examples/hello-world/app/layout.tsx | 11 + examples/hello-world/app/page.tsx | 3 + examples/hello-world/pages/about.tsx | 3 - examples/hello-world/pages/day/index.tsx | 3 - examples/hello-world/pages/index.tsx | 9 - examples/page-transitions/.gitignore | 36 -- examples/page-transitions/README.md | 1 - examples/parameterized-routing/.gitignore | 36 -- examples/parameterized-routing/README.md | 1 - examples/progressive-render/.gitignore | 36 -- examples/progressive-render/README.md | 41 -- .../progressive-render/components/Loading.tsx | 18 - examples/progressive-render/next-env.d.ts | 5 - examples/progressive-render/package.json | 19 - examples/progressive-render/pages/index.tsx | 41 -- examples/progressive-render/tsconfig.json | 20 - examples/using-preact/.gitignore | 36 -- examples/using-preact/README.md | 35 -- examples/using-preact/next-env.d.ts | 5 - examples/using-preact/next.config.js | 8 - examples/using-preact/package.json | 22 - examples/using-preact/pages/about.tsx | 3 - examples/using-preact/pages/index.tsx | 20 - examples/using-preact/pages/ssg.tsx | 13 - examples/using-preact/pages/ssr.tsx | 13 - examples/using-preact/tsconfig.json | 22 - examples/using-router/.gitignore | 36 -- examples/using-router/README.md | 30 - .../using-router/components/CustomLink.tsx | 47 -- examples/using-router/components/Header.tsx | 14 - examples/using-router/next-env.d.ts | 5 - examples/using-router/package.json | 16 - examples/using-router/pages/about.tsx | 10 - examples/using-router/pages/index.tsx | 10 - examples/using-router/tsconfig.json | 20 - examples/with-aphrodite/.gitignore | 36 -- examples/with-aphrodite/README.md | 29 - examples/with-aphrodite/package.json | 14 - examples/with-aphrodite/pages/_document.js | 43 -- examples/with-aphrodite/pages/index.js | 36 -- .../.env.local.example | 4 - examples/with-apollo-neo4j-graphql/.gitignore | 36 -- examples/with-apollo-neo4j-graphql/README.md | 71 --- .../apollo/client.ts | 52 -- .../apollo/schema.ts | 10 - .../apollo/type-defs.ts | 17 - .../components/footer.tsx | 37 -- .../components/header.tsx | 35 -- .../with-apollo-neo4j-graphql/movie-sample.md | 510 ----------------- .../with-apollo-neo4j-graphql/next-env.d.ts | 5 - .../with-apollo-neo4j-graphql/next.config.js | 13 - .../with-apollo-neo4j-graphql/package.json | 20 - .../with-apollo-neo4j-graphql/pages/_app.tsx | 13 - .../pages/actor/[name].tsx | 114 ---- .../pages/api/graphql.ts | 10 - .../with-apollo-neo4j-graphql/pages/index.tsx | 159 ------ .../pages/movie/[title].tsx | 112 ---- .../public/favicon.ico | Bin 15086 -> 0 bytes .../public/vercel.svg | 4 - .../styles/globals.css | 16 - .../with-apollo-neo4j-graphql/tsconfig.json | 20 - .../with-apollo-neo4j-graphql/types/index.ts | 19 - .../with-apollo-neo4j-graphql/util/neo4j.ts | 19 - examples/with-app-layout/.gitignore | 36 -- examples/with-app-layout/README.md | 27 - examples/with-app-layout/next-env.d.ts | 5 - examples/with-app-layout/package.json | 19 - examples/with-app-layout/pages/_app.tsx | 17 - examples/with-app-layout/pages/index.tsx | 3 - examples/with-app-layout/tsconfig.json | 20 - .../with-aws-amplify-typescript/.gitignore | 36 -- .../with-aws-amplify-typescript/README.md | 3 - examples/with-aws-amplify/.gitignore | 36 -- examples/with-aws-amplify/README.md | 230 -------- examples/with-aws-amplify/next-env.d.ts | 5 - examples/with-aws-amplify/package.json | 21 - examples/with-aws-amplify/public/favicon.ico | Bin 15086 -> 0 bytes examples/with-aws-amplify/public/vercel.svg | 4 - examples/with-aws-amplify/src/pages/_app.tsx | 6 - examples/with-aws-amplify/src/pages/index.tsx | 133 ----- .../with-aws-amplify/src/pages/todo/[id].tsx | 100 ---- .../src/styles/Home.module.css | 123 ---- .../with-aws-amplify/src/styles/globals.css | 18 - examples/with-aws-amplify/tsconfig.json | 20 - examples/with-chakra-ui-typescript/.gitignore | 36 -- examples/with-chakra-ui-typescript/README.md | 3 - examples/with-cookie-auth/.gitignore | 36 -- examples/with-cookie-auth/README.md | 7 - examples/with-deta-base/.env.local.example | 1 - examples/with-deta-base/.gitignore | 36 -- examples/with-deta-base/README.md | 79 --- examples/with-deta-base/package.json | 14 - examples/with-deta-base/pages/_app.js | 7 - examples/with-deta-base/pages/_document.js | 18 - .../with-deta-base/pages/api/todos/[tid].js | 27 - .../with-deta-base/pages/api/todos/index.js | 25 - examples/with-deta-base/pages/index.js | 143 ----- examples/with-deta-base/public/deta.svg | 7 - examples/with-deta-base/public/favicon.ico | Bin 15086 -> 0 bytes examples/with-deta-base/public/vercel.svg | 4 - .../with-deta-base/styles/Home.module.css | 249 -------- examples/with-deta-base/styles/globals.css | 26 - examples/with-dotenv/.gitignore | 36 -- examples/with-dotenv/README.md | 6 - .../with-env-from-next-config-js/.gitignore | 36 -- .../with-env-from-next-config-js/README.md | 55 -- .../next.config.js | 39 -- .../with-env-from-next-config-js/package.json | 13 - .../pages/index.js | 9 - examples/with-expo/.gitignore | 36 -- examples/with-expo/App.js | 3 - examples/with-expo/README.md | 84 --- examples/with-expo/babel.config.js | 4 - examples/with-expo/next.config.js | 8 - examples/with-expo/package.json | 24 - examples/with-expo/pages/_document.js | 2 - examples/with-expo/pages/index.js | 21 - examples/with-expo/public/demo.png | Bin 128647 -> 0 bytes .../.gitignore | 36 -- .../README.md | 1 - .../with-firebase-authentication/.gitignore | 36 -- .../with-firebase-authentication/README.md | 3 - examples/with-geist-ui/.gitignore | 36 -- examples/with-geist-ui/README.md | 25 - examples/with-geist-ui/next-env.d.ts | 5 - examples/with-geist-ui/package.json | 22 - examples/with-geist-ui/pages/_app.tsx | 12 - examples/with-geist-ui/pages/_document.tsx | 38 -- examples/with-geist-ui/pages/index.tsx | 87 --- .../with-geist-ui/public/geist-banner.png | Bin 42007 -> 0 bytes examples/with-geist-ui/tsconfig.json | 20 - examples/with-glamorous/.gitignore | 36 -- examples/with-glamorous/readme.md | 3 - .../with-global-stylesheet-simple/.gitignore | 36 -- .../with-global-stylesheet-simple/README.md | 3 - examples/with-global-stylesheet/.gitignore | 36 -- examples/with-global-stylesheet/README.md | 3 - examples/with-google-analytics-amp/.gitignore | 36 -- examples/with-google-analytics-amp/README.md | 27 - .../components/Header.js | 21 - .../components/Page.js | 10 - .../components/amp/AmpAnalytics.js | 19 - .../components/amp/AmpIncludeCustomElement.js | 20 - .../with-google-analytics-amp/lib/gtag.js | 17 - .../with-google-analytics-amp/package.json | 13 - .../with-google-analytics-amp/pages/_app.js | 8 - .../pages/_document.js | 70 --- .../with-google-analytics-amp/pages/about.js | 9 - .../pages/contact.js | 39 -- .../with-google-analytics-amp/pages/index.js | 9 - examples/with-graphql-faunadb/.gitignore | 36 -- examples/with-graphql-faunadb/README.md | 3 - examples/with-grommet/.babelrc | 4 - examples/with-grommet/.gitignore | 36 -- examples/with-grommet/README.md | 33 -- examples/with-grommet/package.json | 18 - examples/with-grommet/pages/_app.js | 9 - examples/with-grommet/pages/_document.js | 30 - examples/with-grommet/pages/index.js | 13 - examples/with-loading/.gitignore | 36 -- examples/with-loading/README.md | 35 -- examples/with-loading/next-env.d.ts | 5 - examples/with-loading/package.json | 20 - examples/with-loading/pages/_app.tsx | 54 -- examples/with-loading/pages/about.tsx | 10 - examples/with-loading/pages/forever.tsx | 10 - examples/with-loading/pages/index.tsx | 3 - examples/with-loading/tsconfig.json | 20 - examples/with-markdown/.gitignore | 36 -- examples/with-markdown/README.md | 1 - examples/with-material-ui/.gitignore | 36 -- examples/with-material-ui/README.md | 6 - examples/with-mobx-react-lite/.gitignore | 36 -- examples/with-mobx-react-lite/README.md | 3 - .../.gitignore | 36 -- .../with-mobx-state-tree-typescript/README.md | 3 - examples/with-netlify-cms/.gitignore | 36 -- examples/with-netlify-cms/README.md | 35 -- .../with-netlify-cms/components/layout.js | 33 -- examples/with-netlify-cms/content/about.md | 8 - ..._the_problem_you_want_to_solve_boiiiiii.md | 7 - ...9-06_why_did_the_chicken_cross_the_road.md | 9 - examples/with-netlify-cms/content/home.md | 8 - examples/with-netlify-cms/next.config.js | 10 - examples/with-netlify-cms/package.json | 16 - examples/with-netlify-cms/pages/about.js | 17 - examples/with-netlify-cms/pages/blog/index.js | 57 -- .../pages/blog/post/[slug].js | 59 -- examples/with-netlify-cms/pages/index.js | 17 - .../public/static/admin/config.yml | 46 -- .../public/static/admin/index.html | 13 - ...uck_at_staglands_akatarawa_new_zealand.jpg | Bin 172034 -> 0 bytes .../public/static/img/puppy-and-adult-dog.jpg | Bin 140871 -> 0 bytes examples/with-next-auth/.gitignore | 36 -- examples/with-next-auth/README.md | 3 - examples/with-next-css/.gitignore | 36 -- examples/with-next-css/README.md | 3 - examples/with-next-i18next/.gitignore | 36 -- examples/with-next-i18next/README.md | 5 - examples/with-next-multilingual/.gitignore | 36 -- examples/with-next-multilingual/README.md | 5 - examples/with-next-offline/.gitignore | 36 -- examples/with-next-offline/README.md | 3 - examples/with-next-routes/.gitignore | 36 -- examples/with-next-routes/readme.md | 1 - examples/with-now-env/.gitignore | 36 -- examples/with-now-env/README.md | 3 - examples/with-patternfly/.gitignore | 36 -- examples/with-patternfly/README.md | 58 -- examples/with-patternfly/next.config.js | 8 - examples/with-patternfly/package.json | 16 - examples/with-patternfly/pages/_app.js | 4 - examples/with-patternfly/pages/index.js | 36 -- examples/with-pretty-url-routing/.gitignore | 36 -- examples/with-pretty-url-routing/README.md | 1 - examples/with-prisma/.gitignore | 36 -- examples/with-prisma/README.md | 7 - examples/with-react-helmet/.gitignore | 36 -- examples/with-react-helmet/README.md | 30 - examples/with-react-helmet/package.json | 14 - examples/with-react-helmet/pages/_app.js | 22 - examples/with-react-helmet/pages/_document.js | 40 -- examples/with-react-helmet/pages/about.js | 13 - examples/with-react-helmet/pages/index.js | 3 - examples/with-react-md/.gitignore | 36 -- examples/with-react-md/README.md | 43 -- .../components/Layout/Layout.jsx | 59 -- .../with-react-md/components/Layout/index.js | 1 - .../components/Layout/navItems.jsx | 25 - .../with-react-md/components/LinkUnstyled.jsx | 34 -- examples/with-react-md/package.json | 17 - examples/with-react-md/pages/_app.jsx | 17 - examples/with-react-md/pages/index.jsx | 10 - examples/with-react-md/pages/route-1.jsx | 10 - examples/with-react-md/styles/_variables.scss | 13 - examples/with-react-md/styles/app.scss | 11 - examples/with-react-query/.gitignore | 36 -- examples/with-react-query/README.md | 5 - examples/with-redux-observable/.gitignore | 36 -- examples/with-redux-observable/README.md | 60 -- .../components/UserInfo.js | 50 -- examples/with-redux-observable/package.json | 19 - examples/with-redux-observable/pages/_app.js | 12 - examples/with-redux-observable/pages/index.js | 28 - examples/with-redux-observable/pages/other.js | 10 - .../store/actionTypes.js | 5 - .../with-redux-observable/store/actions.js | 21 - examples/with-redux-observable/store/epics.js | 44 -- examples/with-redux-observable/store/store.js | 73 --- examples/with-redux-persist/.gitignore | 36 -- examples/with-redux-persist/README.md | 39 -- .../with-redux-persist/components/clock.js | 26 - .../with-redux-persist/components/counter.js | 20 - .../components/data-list.js | 53 -- .../with-redux-persist/components/examples.js | 15 - examples/with-redux-persist/package.json | 17 - examples/with-redux-persist/pages/_app.js | 19 - examples/with-redux-persist/pages/index.js | 24 - examples/with-redux-persist/store.js | 131 ----- examples/with-redux-saga/.gitignore | 36 -- examples/with-redux-saga/README.md | 47 -- examples/with-redux-saga/actions.js | 53 -- examples/with-redux-saga/components/clock.js | 30 - .../with-redux-saga/components/counter.js | 26 - examples/with-redux-saga/components/page.js | 30 - examples/with-redux-saga/package.json | 21 - examples/with-redux-saga/pages/_app.js | 7 - examples/with-redux-saga/pages/index.js | 32 -- examples/with-redux-saga/pages/other.js | 24 - examples/with-redux-saga/reducer.js | 59 -- examples/with-redux-saga/saga.js | 29 - examples/with-redux-saga/store.js | 31 - examples/with-redux-thunk/.gitignore | 36 -- examples/with-redux-thunk/README.md | 49 -- examples/with-redux-thunk/actions.js | 23 - examples/with-redux-thunk/components/clock.js | 30 - .../with-redux-thunk/components/counter.js | 20 - .../with-redux-thunk/components/examples.js | 13 - examples/with-redux-thunk/package.json | 17 - examples/with-redux-thunk/pages/_app.js | 12 - examples/with-redux-thunk/pages/index.js | 21 - .../pages/show-redux-state.js | 25 - examples/with-redux-thunk/reducers.js | 43 -- examples/with-redux-thunk/store.js | 42 -- examples/with-redux-thunk/types.js | 5 - .../with-redux-toolkit-typescript/.gitignore | 36 -- .../with-redux-toolkit-typescript/README.md | 1 - examples/with-redux-toolkit/.gitignore | 36 -- examples/with-redux-toolkit/README.md | 1 - examples/with-redux-wrapper/.gitignore | 36 -- examples/with-redux-wrapper/.npmrc | 2 - examples/with-redux-wrapper/README.md | 47 -- .../with-redux-wrapper/components/AddCount.js | 32 -- .../with-redux-wrapper/components/Clock.js | 24 - .../with-redux-wrapper/components/Page.js | 17 - examples/with-redux-wrapper/package.json | 18 - examples/with-redux-wrapper/pages/_app.js | 7 - examples/with-redux-wrapper/pages/index.js | 33 -- examples/with-redux-wrapper/pages/other.js | 33 -- .../with-redux-wrapper/store/count/action.js | 7 - .../with-redux-wrapper/store/count/reducer.js | 16 - examples/with-redux-wrapper/store/store.js | 37 -- .../with-redux-wrapper/store/tick/action.js | 18 - .../with-redux-wrapper/store/tick/reducer.js | 18 - examples/with-sentry-simple/.gitignore | 41 -- examples/with-sentry-simple/README.md | 1 - examples/with-skynexui-components/.gitignore | 36 -- examples/with-skynexui-components/README.md | 29 - .../with-skynexui-components/package.json | 15 - .../with-skynexui-components/pages/_app.js | 17 - .../with-skynexui-components/pages/index.js | 36 -- examples/with-stomp/.env | 1 - examples/with-stomp/.gitignore | 36 -- examples/with-stomp/README.md | 27 - examples/with-stomp/package.json | 14 - examples/with-stomp/pages/index.js | 21 - examples/with-stomp/useClient.js | 21 - examples/with-stomp/useStomp.js | 29 - examples/with-styled-jsx-postcss/.gitignore | 36 -- examples/with-styled-jsx-postcss/README.md | 1 - examples/with-sw-precache/.gitignore | 36 -- examples/with-sw-precache/README.md | 1 - examples/with-tailwindcss-emotion/.babelrc | 14 - examples/with-tailwindcss-emotion/.gitignore | 36 -- examples/with-tailwindcss-emotion/README.md | 58 -- .../components/ButtonReact.js | 43 -- .../components/ButtonStyled.js | 49 -- .../with-tailwindcss-emotion/package.json | 24 - .../with-tailwindcss-emotion/pages/_app.js | 20 - .../with-tailwindcss-emotion/pages/index.js | 14 - .../postcss.config.js | 8 - .../tailwind.config.js | 18 - examples/with-tesfy/.gitignore | 36 -- examples/with-tesfy/README.md | 35 -- examples/with-tesfy/components/nav.js | 11 - examples/with-tesfy/package.json | 17 - examples/with-tesfy/pages/_app.js | 26 - examples/with-tesfy/pages/features.js | 23 - examples/with-tesfy/pages/index.js | 43 -- examples/with-tesfy/utils/getDatafile.js | 42 -- examples/with-tesfy/utils/getTesfyProps.js | 13 - examples/with-tesfy/utils/getUserId.js | 31 - examples/with-tesfy/utils/index.js | 3 - examples/with-trpc/.gitignore | 36 -- examples/with-trpc/README.md | 13 - examples/with-turbo/.gitignore | 36 -- examples/with-turbo/README.md | 3 - examples/with-turbopack/.gitignore | 5 - examples/with-turbopack/.npmrc | 1 - examples/with-turbopack/README.md | 31 +- .../app/api/categories/category.d.ts | 6 - .../app/api/categories/getCategories.ts | 49 -- .../app/api/categories/route.ts | 53 -- .../app/api/products/product.d.ts | 37 -- .../with-turbopack/app/api/products/route.ts | 143 ----- .../app/api/reviews/getReviews.ts | 27 - .../app/api/reviews/review.d.ts | 6 - .../with-turbopack/app/api/reviews/route.ts | 42 -- .../[categorySlug]/[subCategorySlug]/page.tsx | 23 - .../app/context/[categorySlug]/layout.tsx | 36 -- .../app/context/[categorySlug]/page.tsx | 23 - .../app/context/context-click-counter.tsx | 44 -- .../app/context/counter-context.tsx | 24 - .../with-turbopack/app/context/layout.tsx | 60 -- examples/with-turbopack/app/context/page.tsx | 30 - .../[subCategorySlug]/error.tsx | 26 - .../[categorySlug]/[subCategorySlug]/page.tsx | 25 - .../error-handling/[categorySlug]/error.tsx | 23 - .../error-handling/[categorySlug]/layout.tsx | 41 -- .../error-handling/[categorySlug]/page.tsx | 27 - .../[categorySlug]/template.tsx | 5 - .../app/error-handling/error.tsx | 23 - .../app/error-handling/layout.tsx | 41 -- .../app/error-handling/page.tsx | 34 -- .../app/error-handling/template.tsx | 5 - examples/with-turbopack/app/favicon.ico | Bin 15086 -> 0 bytes .../[categorySlug]/[subCategorySlug]/page.tsx | 18 - .../app/hooks/[categorySlug]/layout.tsx | 42 -- .../app/hooks/[categorySlug]/page.tsx | 20 - .../app/hooks/[categorySlug]/template.tsx | 6 - .../_components/router-context-layout.tsx | 29 - .../app/hooks/_components/router-context.tsx | 40 -- examples/with-turbopack/app/hooks/layout.tsx | 44 -- examples/with-turbopack/app/hooks/page.tsx | 32 -- .../with-turbopack/app/hooks/template.tsx | 6 - examples/with-turbopack/app/isr/[id]/page.tsx | 29 - examples/with-turbopack/app/isr/layout.tsx | 29 - examples/with-turbopack/app/isr/loading.tsx | 5 - examples/with-turbopack/app/isr/page.tsx | 30 - examples/with-turbopack/app/isr/template.tsx | 6 - examples/with-turbopack/app/layout.tsx | 36 +- .../[categorySlug]/[subCategorySlug]/page.tsx | 22 - .../app/layouts/[categorySlug]/layout.tsx | 39 -- .../app/layouts/[categorySlug]/page.tsx | 24 - .../app/layouts/[categorySlug]/template.tsx | 6 - .../with-turbopack/app/layouts/layout.tsx | 41 -- examples/with-turbopack/app/layouts/page.tsx | 27 - .../with-turbopack/app/layouts/template.tsx | 6 - .../app/loading/[categorySlug]/page.tsx | 45 -- .../with-turbopack/app/loading/layout.tsx | 41 -- .../with-turbopack/app/loading/loading.tsx | 17 - examples/with-turbopack/app/loading/page.tsx | 35 -- .../with-turbopack/app/loading/template.tsx | 6 - examples/with-turbopack/app/not-found.tsx | 13 - .../[subCategorySlug]/not-found.tsx | 16 - .../[categorySlug]/[subCategorySlug]/page.tsx | 27 - .../app/not-found/[categorySlug]/layout.tsx | 50 -- .../not-found/[categorySlug]/not-found.tsx | 13 - .../app/not-found/[categorySlug]/page.tsx | 29 - .../app/not-found/[categorySlug]/template.tsx | 5 - .../with-turbopack/app/not-found/layout.tsx | 45 -- .../app/not-found/not-found.tsx | 13 - .../with-turbopack/app/not-found/page.tsx | 54 -- .../with-turbopack/app/not-found/template.tsx | 5 - examples/with-turbopack/app/page.tsx | 43 +- .../route-groups/(checkout)/checkout/page.tsx | 3 - .../app/route-groups/(checkout)/layout.tsx | 23 - .../app/route-groups/(checkout)/template.tsx | 6 - .../app/route-groups/(main)/layout.tsx | 46 -- .../app/route-groups/(main)/page.tsx | 38 -- .../app/route-groups/(main)/template.tsx | 6 - .../route-groups/(marketing)/blog/page.tsx | 3 - .../app/route-groups/(marketing)/layout.tsx | 46 -- .../app/route-groups/(marketing)/template.tsx | 6 - .../[categorySlug]/[subCategorySlug]/page.tsx | 22 - .../(shop)/[categorySlug]/layout.tsx | 38 -- .../(shop)/[categorySlug]/page.tsx | 23 - .../(shop)/[categorySlug]/template.tsx | 6 - .../app/route-groups/(shop)/layout.tsx | 42 -- .../app/route-groups/(shop)/template.tsx | 6 - .../app/route-groups/layout.tsx | 9 - examples/with-turbopack/app/snippets/page.tsx | 46 -- .../snippets/search-params/active-link.tsx | 30 - .../app/snippets/search-params/client.tsx | 82 --- .../app/snippets/search-params/page.tsx | 105 ---- examples/with-turbopack/app/ssg/[id]/page.tsx | 34 -- examples/with-turbopack/app/ssg/layout.tsx | 22 - examples/with-turbopack/app/ssg/loading.tsx | 5 - examples/with-turbopack/app/ssg/page.tsx | 31 - .../app/ssg/random-post-tab.tsx | 32 -- examples/with-turbopack/app/ssg/template.tsx | 6 - examples/with-turbopack/app/ssr/[id]/page.tsx | 23 - examples/with-turbopack/app/ssr/layout.tsx | 29 - examples/with-turbopack/app/ssr/loading.tsx | 5 - examples/with-turbopack/app/ssr/page.tsx | 29 - examples/with-turbopack/app/ssr/template.tsx | 6 - .../app/streaming/_components/add-to-cart.tsx | 56 -- .../_components/cart-count-context.tsx | 36 -- .../app/streaming/_components/cart-count.tsx | 8 - .../app/streaming/_components/header.tsx | 50 -- .../app/streaming/_components/pricing.tsx | 85 --- .../_components/recommended-products.tsx | 65 --- .../app/streaming/_components/reviews.tsx | 43 -- .../streaming/_components/single-product.tsx | 76 --- .../app/streaming/edge/layout.tsx | 42 -- .../app/streaming/edge/product/[id]/page.tsx | 67 --- .../with-turbopack/app/streaming/layout.tsx | 39 -- .../app/streaming/node/layout.tsx | 41 -- .../app/streaming/node/product/[id]/page.tsx | 65 --- .../with-turbopack/app/streaming/page.tsx | 38 -- .../app/styling/css-modules/page.tsx | 27 - .../app/styling/css-modules/styles.module.css | 54 -- .../app/styling/global-css/page.tsx | 25 - .../app/styling/global-css/styles.css | 54 -- .../with-turbopack/app/styling/layout.tsx | 46 -- examples/with-turbopack/app/styling/page.tsx | 23 - .../app/styling/styled-components/layout.tsx | 5 - .../app/styling/styled-components/page.tsx | 69 --- .../styling/styled-components/registry.tsx | 29 - .../app/styling/styled-jsx/layout.tsx | 5 - .../app/styling/styled-jsx/page.tsx | 85 --- .../app/styling/styled-jsx/registry.tsx | 23 - .../app/styling/tailwind/page.tsx | 24 - .../with-turbopack/app/styling/template.tsx | 6 - examples/with-turbopack/lib/demos.ts | 101 ---- examples/with-turbopack/lib/getBaseUrl.ts | 7 - .../lib/page-directory/get-products.ts | 86 --- .../lib/page-directory/products.json | 110 ---- .../lib/page-directory/reviews.json | 20 - examples/with-turbopack/next-env.d.ts | 0 examples/with-turbopack/next.config.js | 6 - examples/with-turbopack/package.json | 47 +- examples/with-turbopack/pages/_app.tsx | 24 - examples/with-turbopack/pages/_document.tsx | 38 -- examples/with-turbopack/pages/cert/index.tsx | 31 - .../pages/cert/product/[id].tsx | 91 --- examples/with-turbopack/postcss.config.js | 6 - ...alexander-andrews-brAkTCdnhW8-unsplash.jpg | Bin 119158 -> 0 bytes .../public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg | Bin 97041 -> 0 bytes .../public/favicon/android-chrome-192x192.png | Bin 6112 -> 0 bytes .../public/favicon/android-chrome-512x512.png | Bin 23061 -> 0 bytes .../public/favicon/apple-touch-icon.png | Bin 3803 -> 0 bytes .../public/favicon/browserconfig.xml | 9 - .../public/favicon/favicon-16x16.png | Bin 426 -> 0 bytes .../public/favicon/favicon-32x32.png | Bin 862 -> 0 bytes .../public/favicon/mstile-150x150.png | Bin 3924 -> 0 bytes .../public/favicon/safari-pinned-tab.svg | 33 -- .../public/favicon/site.webmanifest | 19 - examples/with-turbopack/public/grid.svg | 5 - .../guillaume-coupy-6HuoHgK7FN8-unsplash.jpg | Bin 111468 -> 0 bytes .../public/nextjs-icon-light-background.png | Bin 31283 -> 0 bytes .../public/patrick-OIFgeLnjwrM-unsplash.jpg | Bin 111044 -> 0 bytes .../prince-akachi-LWkFHEGpleE-unsplash.jpg | Bin 36336 -> 0 bytes .../yoann-siloine-_T4w3JDm6ug-unsplash.jpg | Bin 114615 -> 0 bytes examples/with-turbopack/styles/globals.css | 3 - examples/with-turbopack/tailwind.config.ts | 90 --- examples/with-turbopack/tsconfig.json | 15 +- examples/with-turbopack/ui/address-bar.tsx | 92 --- examples/with-turbopack/ui/boundary.tsx | 82 --- examples/with-turbopack/ui/buggy-button.tsx | 23 - examples/with-turbopack/ui/button.tsx | 20 - examples/with-turbopack/ui/byline.tsx | 40 -- examples/with-turbopack/ui/click-counter.tsx | 16 - examples/with-turbopack/ui/component-tree.tsx | 162 ------ examples/with-turbopack/ui/count-up.tsx | 25 - examples/with-turbopack/ui/external-link.tsx | 20 - examples/with-turbopack/ui/footer.tsx | 41 -- examples/with-turbopack/ui/global-nav.tsx | 102 ---- examples/with-turbopack/ui/header.tsx | 43 -- .../with-turbopack/ui/mobile-nav-toggle.tsx | 64 --- examples/with-turbopack/ui/next-logo.tsx | 54 -- .../ui/page-directory/layout.tsx | 59 -- .../ui/page-directory/product-pricing.tsx | 32 -- .../ui/page-directory/product.tsx | 77 --- .../ui/page-directory/reviews.tsx | 22 - .../ui/page-directory/similar-products.tsx | 21 - examples/with-turbopack/ui/ping.tsx | 8 - .../with-turbopack/ui/product-best-seller.tsx | 7 - examples/with-turbopack/ui/product-card.tsx | 63 --- .../ui/product-currency-symbol.tsx | 27 - examples/with-turbopack/ui/product-deal.tsx | 36 -- .../ui/product-estimated-arrival.tsx | 24 - .../ui/product-lightening-deal.tsx | 28 - .../ui/product-low-stock-warning.tsx | 13 - examples/with-turbopack/ui/product-price.tsx | 52 -- examples/with-turbopack/ui/product-rating.tsx | 17 - .../with-turbopack/ui/product-review-card.tsx | 19 - .../ui/product-split-payments.tsx | 17 - .../with-turbopack/ui/product-used-price.tsx | 19 - .../with-turbopack/ui/rendered-time-ago.tsx | 56 -- examples/with-turbopack/ui/rendering-info.tsx | 35 -- .../ui/rendering-page-skeleton.tsx | 18 - examples/with-turbopack/ui/section-link.tsx | 18 - examples/with-turbopack/ui/skeleton-card.tsx | 16 - examples/with-turbopack/ui/tab-group.tsx | 17 - examples/with-turbopack/ui/tab-nav-item.tsx | 25 - examples/with-turbopack/ui/tab.tsx | 30 - examples/with-turbopack/ui/vercel-logo.tsx | 11 - 650 files changed, 46 insertions(+), 19749 deletions(-) delete mode 100644 examples/amp-first/.gitignore delete mode 100644 examples/amp-first/README.md delete mode 100644 examples/amp-first/amp.d.ts delete mode 100644 examples/amp-first/components/Layout.tsx delete mode 100644 examples/amp-first/components/amp/AmpCustomElement.tsx delete mode 100644 examples/amp-first/components/amp/AmpScript.tsx delete mode 100644 examples/amp-first/components/amp/AmpState.tsx delete mode 100644 examples/amp-first/next-env.d.ts delete mode 100644 examples/amp-first/package.json delete mode 100644 examples/amp-first/pages/index.tsx delete mode 100644 examples/amp-first/pages/offline.tsx delete mode 100644 examples/amp-first/public/install-serviceworker.html delete mode 100644 examples/amp-first/public/manifest.json delete mode 100644 examples/amp-first/public/serviceworker.js delete mode 100644 examples/amp-first/public/static/amp-script/hello.js delete mode 100644 examples/amp-first/public/static/favicon.ico delete mode 100755 examples/amp-first/public/static/images/icons-192.png delete mode 100755 examples/amp-first/public/static/images/icons-512.png delete mode 100644 examples/amp-first/tsconfig.json delete mode 100644 examples/amp-story/.gitignore delete mode 100644 examples/amp-story/README.md delete mode 100644 examples/amp-story/amp.d.ts delete mode 100644 examples/amp-story/next-env.d.ts delete mode 100644 examples/amp-story/package.json delete mode 100644 examples/amp-story/pages/index.tsx delete mode 100644 examples/amp-story/tsconfig.json delete mode 100644 examples/authsignal/.gitignore delete mode 100644 examples/authsignal/passwordless-login/.env.local.example delete mode 100755 examples/authsignal/passwordless-login/.gitignore delete mode 100755 examples/authsignal/passwordless-login/README.md delete mode 100644 examples/authsignal/passwordless-login/components/dashboard.module.css delete mode 100644 examples/authsignal/passwordless-login/components/dashboard.tsx delete mode 100644 examples/authsignal/passwordless-login/components/index.ts delete mode 100644 examples/authsignal/passwordless-login/components/layout.tsx delete mode 100644 examples/authsignal/passwordless-login/components/login.module.css delete mode 100644 examples/authsignal/passwordless-login/components/login.tsx delete mode 100644 examples/authsignal/passwordless-login/lib/authsignal.ts delete mode 100644 examples/authsignal/passwordless-login/lib/cookies.ts delete mode 100644 examples/authsignal/passwordless-login/lib/index.ts delete mode 100755 examples/authsignal/passwordless-login/next.config.js delete mode 100644 examples/authsignal/passwordless-login/package.json delete mode 100755 examples/authsignal/passwordless-login/pages/_app.tsx delete mode 100644 examples/authsignal/passwordless-login/pages/api/finalize-login.ts delete mode 100644 examples/authsignal/passwordless-login/pages/api/login.ts delete mode 100644 examples/authsignal/passwordless-login/pages/api/logout.ts delete mode 100644 examples/authsignal/passwordless-login/pages/globals.css delete mode 100755 examples/authsignal/passwordless-login/pages/index.tsx delete mode 100755 examples/authsignal/passwordless-login/public/favicon.ico delete mode 100755 examples/authsignal/passwordless-login/public/vercel.svg delete mode 100755 examples/authsignal/passwordless-login/tsconfig.json delete mode 100644 examples/blog-starter-typescript/.gitignore delete mode 100644 examples/blog-starter-typescript/README.md delete mode 100644 examples/custom-server-typescript/.gitignore delete mode 100644 examples/custom-server-typescript/README.md delete mode 100644 examples/data-fetch/.gitignore delete mode 100644 examples/data-fetch/README.md delete mode 100644 examples/data-fetch/next-env.d.ts delete mode 100644 examples/data-fetch/package.json delete mode 100644 examples/data-fetch/pages/index.tsx delete mode 100644 examples/data-fetch/pages/preact-stars.tsx delete mode 100644 examples/data-fetch/tsconfig.json delete mode 100644 examples/data-fetch/types/github.d.ts delete mode 100644 examples/evm-multichain-dapp/.gitignore delete mode 100644 examples/evm-multichain-dapp/README.md delete mode 100644 examples/evm-multichain-dapp/config/abis/erc20.json delete mode 100644 examples/evm-multichain-dapp/config/blockchains.json delete mode 100644 examples/evm-multichain-dapp/config/chainIds.ts delete mode 100644 examples/evm-multichain-dapp/config/networks.ts delete mode 100644 examples/evm-multichain-dapp/config/rpc.ts delete mode 100644 examples/evm-multichain-dapp/config/wallets.ts delete mode 100644 examples/evm-multichain-dapp/hooks/useWeb3.ts delete mode 100644 examples/evm-multichain-dapp/next-env.d.ts delete mode 100644 examples/evm-multichain-dapp/next.config.js delete mode 100644 examples/evm-multichain-dapp/package.json delete mode 100644 examples/evm-multichain-dapp/pages/_app.tsx delete mode 100644 examples/evm-multichain-dapp/pages/index.tsx delete mode 100644 examples/evm-multichain-dapp/public/favicon.ico delete mode 100644 examples/evm-multichain-dapp/public/vercel.svg delete mode 100644 examples/evm-multichain-dapp/styles/Home.module.css delete mode 100644 examples/evm-multichain-dapp/styles/globals.css delete mode 100644 examples/evm-multichain-dapp/tsconfig.json delete mode 100644 examples/fast-refresh-demo/.gitignore delete mode 100644 examples/fast-refresh-demo/README.md delete mode 100644 examples/fast-refresh-demo/components/Button.module.css delete mode 100644 examples/fast-refresh-demo/components/Button.tsx delete mode 100644 examples/fast-refresh-demo/components/ClickCount.tsx delete mode 100644 examples/fast-refresh-demo/global.css delete mode 100644 examples/fast-refresh-demo/next-env.d.ts delete mode 100644 examples/fast-refresh-demo/package.json delete mode 100644 examples/fast-refresh-demo/pages/_app.tsx delete mode 100644 examples/fast-refresh-demo/pages/index.tsx delete mode 100644 examples/fast-refresh-demo/styles/home.module.css delete mode 100644 examples/fast-refresh-demo/tsconfig.json delete mode 100644 examples/hello-world-esm/.gitignore delete mode 100644 examples/hello-world-esm/README.md delete mode 100644 examples/hello-world-esm/next-env.d.ts delete mode 100644 examples/hello-world-esm/package.json delete mode 100644 examples/hello-world-esm/pages/about.tsx delete mode 100644 examples/hello-world-esm/pages/day/index.tsx delete mode 100644 examples/hello-world-esm/pages/index.tsx delete mode 100644 examples/hello-world-esm/tsconfig.json create mode 100644 examples/hello-world/app/layout.tsx create mode 100644 examples/hello-world/app/page.tsx delete mode 100644 examples/hello-world/pages/about.tsx delete mode 100644 examples/hello-world/pages/day/index.tsx delete mode 100644 examples/hello-world/pages/index.tsx delete mode 100644 examples/page-transitions/.gitignore delete mode 100644 examples/page-transitions/README.md delete mode 100644 examples/parameterized-routing/.gitignore delete mode 100644 examples/parameterized-routing/README.md delete mode 100644 examples/progressive-render/.gitignore delete mode 100644 examples/progressive-render/README.md delete mode 100644 examples/progressive-render/components/Loading.tsx delete mode 100644 examples/progressive-render/next-env.d.ts delete mode 100644 examples/progressive-render/package.json delete mode 100644 examples/progressive-render/pages/index.tsx delete mode 100644 examples/progressive-render/tsconfig.json delete mode 100644 examples/using-preact/.gitignore delete mode 100644 examples/using-preact/README.md delete mode 100644 examples/using-preact/next-env.d.ts delete mode 100644 examples/using-preact/next.config.js delete mode 100644 examples/using-preact/package.json delete mode 100644 examples/using-preact/pages/about.tsx delete mode 100644 examples/using-preact/pages/index.tsx delete mode 100644 examples/using-preact/pages/ssg.tsx delete mode 100644 examples/using-preact/pages/ssr.tsx delete mode 100644 examples/using-preact/tsconfig.json delete mode 100644 examples/using-router/.gitignore delete mode 100644 examples/using-router/README.md delete mode 100644 examples/using-router/components/CustomLink.tsx delete mode 100644 examples/using-router/components/Header.tsx delete mode 100644 examples/using-router/next-env.d.ts delete mode 100644 examples/using-router/package.json delete mode 100644 examples/using-router/pages/about.tsx delete mode 100644 examples/using-router/pages/index.tsx delete mode 100644 examples/using-router/tsconfig.json delete mode 100644 examples/with-aphrodite/.gitignore delete mode 100644 examples/with-aphrodite/README.md delete mode 100644 examples/with-aphrodite/package.json delete mode 100644 examples/with-aphrodite/pages/_document.js delete mode 100644 examples/with-aphrodite/pages/index.js delete mode 100644 examples/with-apollo-neo4j-graphql/.env.local.example delete mode 100644 examples/with-apollo-neo4j-graphql/.gitignore delete mode 100644 examples/with-apollo-neo4j-graphql/README.md delete mode 100644 examples/with-apollo-neo4j-graphql/apollo/client.ts delete mode 100644 examples/with-apollo-neo4j-graphql/apollo/schema.ts delete mode 100644 examples/with-apollo-neo4j-graphql/apollo/type-defs.ts delete mode 100644 examples/with-apollo-neo4j-graphql/components/footer.tsx delete mode 100644 examples/with-apollo-neo4j-graphql/components/header.tsx delete mode 100644 examples/with-apollo-neo4j-graphql/movie-sample.md delete mode 100644 examples/with-apollo-neo4j-graphql/next-env.d.ts delete mode 100644 examples/with-apollo-neo4j-graphql/next.config.js delete mode 100644 examples/with-apollo-neo4j-graphql/package.json delete mode 100644 examples/with-apollo-neo4j-graphql/pages/_app.tsx delete mode 100644 examples/with-apollo-neo4j-graphql/pages/actor/[name].tsx delete mode 100644 examples/with-apollo-neo4j-graphql/pages/api/graphql.ts delete mode 100644 examples/with-apollo-neo4j-graphql/pages/index.tsx delete mode 100644 examples/with-apollo-neo4j-graphql/pages/movie/[title].tsx delete mode 100644 examples/with-apollo-neo4j-graphql/public/favicon.ico delete mode 100644 examples/with-apollo-neo4j-graphql/public/vercel.svg delete mode 100644 examples/with-apollo-neo4j-graphql/styles/globals.css delete mode 100644 examples/with-apollo-neo4j-graphql/tsconfig.json delete mode 100644 examples/with-apollo-neo4j-graphql/types/index.ts delete mode 100644 examples/with-apollo-neo4j-graphql/util/neo4j.ts delete mode 100644 examples/with-app-layout/.gitignore delete mode 100644 examples/with-app-layout/README.md delete mode 100644 examples/with-app-layout/next-env.d.ts delete mode 100644 examples/with-app-layout/package.json delete mode 100644 examples/with-app-layout/pages/_app.tsx delete mode 100644 examples/with-app-layout/pages/index.tsx delete mode 100644 examples/with-app-layout/tsconfig.json delete mode 100644 examples/with-aws-amplify-typescript/.gitignore delete mode 100644 examples/with-aws-amplify-typescript/README.md delete mode 100644 examples/with-aws-amplify/.gitignore delete mode 100644 examples/with-aws-amplify/README.md delete mode 100644 examples/with-aws-amplify/next-env.d.ts delete mode 100644 examples/with-aws-amplify/package.json delete mode 100644 examples/with-aws-amplify/public/favicon.ico delete mode 100644 examples/with-aws-amplify/public/vercel.svg delete mode 100644 examples/with-aws-amplify/src/pages/_app.tsx delete mode 100644 examples/with-aws-amplify/src/pages/index.tsx delete mode 100644 examples/with-aws-amplify/src/pages/todo/[id].tsx delete mode 100644 examples/with-aws-amplify/src/styles/Home.module.css delete mode 100644 examples/with-aws-amplify/src/styles/globals.css delete mode 100644 examples/with-aws-amplify/tsconfig.json delete mode 100644 examples/with-chakra-ui-typescript/.gitignore delete mode 100644 examples/with-chakra-ui-typescript/README.md delete mode 100644 examples/with-cookie-auth/.gitignore delete mode 100644 examples/with-cookie-auth/README.md delete mode 100644 examples/with-deta-base/.env.local.example delete mode 100644 examples/with-deta-base/.gitignore delete mode 100644 examples/with-deta-base/README.md delete mode 100644 examples/with-deta-base/package.json delete mode 100644 examples/with-deta-base/pages/_app.js delete mode 100644 examples/with-deta-base/pages/_document.js delete mode 100644 examples/with-deta-base/pages/api/todos/[tid].js delete mode 100644 examples/with-deta-base/pages/api/todos/index.js delete mode 100644 examples/with-deta-base/pages/index.js delete mode 100644 examples/with-deta-base/public/deta.svg delete mode 100644 examples/with-deta-base/public/favicon.ico delete mode 100644 examples/with-deta-base/public/vercel.svg delete mode 100644 examples/with-deta-base/styles/Home.module.css delete mode 100644 examples/with-deta-base/styles/globals.css delete mode 100644 examples/with-dotenv/.gitignore delete mode 100644 examples/with-dotenv/README.md delete mode 100644 examples/with-env-from-next-config-js/.gitignore delete mode 100644 examples/with-env-from-next-config-js/README.md delete mode 100644 examples/with-env-from-next-config-js/next.config.js delete mode 100644 examples/with-env-from-next-config-js/package.json delete mode 100644 examples/with-env-from-next-config-js/pages/index.js delete mode 100644 examples/with-expo/.gitignore delete mode 100644 examples/with-expo/App.js delete mode 100644 examples/with-expo/README.md delete mode 100644 examples/with-expo/babel.config.js delete mode 100644 examples/with-expo/next.config.js delete mode 100644 examples/with-expo/package.json delete mode 100644 examples/with-expo/pages/_document.js delete mode 100644 examples/with-expo/pages/index.js delete mode 100644 examples/with-expo/public/demo.png delete mode 100644 examples/with-firebase-authentication-serverless/.gitignore delete mode 100644 examples/with-firebase-authentication-serverless/README.md delete mode 100644 examples/with-firebase-authentication/.gitignore delete mode 100644 examples/with-firebase-authentication/README.md delete mode 100644 examples/with-geist-ui/.gitignore delete mode 100644 examples/with-geist-ui/README.md delete mode 100644 examples/with-geist-ui/next-env.d.ts delete mode 100644 examples/with-geist-ui/package.json delete mode 100644 examples/with-geist-ui/pages/_app.tsx delete mode 100644 examples/with-geist-ui/pages/_document.tsx delete mode 100644 examples/with-geist-ui/pages/index.tsx delete mode 100644 examples/with-geist-ui/public/geist-banner.png delete mode 100644 examples/with-geist-ui/tsconfig.json delete mode 100644 examples/with-glamorous/.gitignore delete mode 100644 examples/with-glamorous/readme.md delete mode 100644 examples/with-global-stylesheet-simple/.gitignore delete mode 100644 examples/with-global-stylesheet-simple/README.md delete mode 100644 examples/with-global-stylesheet/.gitignore delete mode 100644 examples/with-global-stylesheet/README.md delete mode 100644 examples/with-google-analytics-amp/.gitignore delete mode 100644 examples/with-google-analytics-amp/README.md delete mode 100644 examples/with-google-analytics-amp/components/Header.js delete mode 100644 examples/with-google-analytics-amp/components/Page.js delete mode 100644 examples/with-google-analytics-amp/components/amp/AmpAnalytics.js delete mode 100644 examples/with-google-analytics-amp/components/amp/AmpIncludeCustomElement.js delete mode 100644 examples/with-google-analytics-amp/lib/gtag.js delete mode 100644 examples/with-google-analytics-amp/package.json delete mode 100644 examples/with-google-analytics-amp/pages/_app.js delete mode 100644 examples/with-google-analytics-amp/pages/_document.js delete mode 100644 examples/with-google-analytics-amp/pages/about.js delete mode 100644 examples/with-google-analytics-amp/pages/contact.js delete mode 100644 examples/with-google-analytics-amp/pages/index.js delete mode 100644 examples/with-graphql-faunadb/.gitignore delete mode 100644 examples/with-graphql-faunadb/README.md delete mode 100644 examples/with-grommet/.babelrc delete mode 100644 examples/with-grommet/.gitignore delete mode 100644 examples/with-grommet/README.md delete mode 100644 examples/with-grommet/package.json delete mode 100644 examples/with-grommet/pages/_app.js delete mode 100644 examples/with-grommet/pages/_document.js delete mode 100644 examples/with-grommet/pages/index.js delete mode 100644 examples/with-loading/.gitignore delete mode 100644 examples/with-loading/README.md delete mode 100644 examples/with-loading/next-env.d.ts delete mode 100644 examples/with-loading/package.json delete mode 100644 examples/with-loading/pages/_app.tsx delete mode 100644 examples/with-loading/pages/about.tsx delete mode 100644 examples/with-loading/pages/forever.tsx delete mode 100644 examples/with-loading/pages/index.tsx delete mode 100644 examples/with-loading/tsconfig.json delete mode 100644 examples/with-markdown/.gitignore delete mode 100644 examples/with-markdown/README.md delete mode 100644 examples/with-material-ui/.gitignore delete mode 100644 examples/with-material-ui/README.md delete mode 100644 examples/with-mobx-react-lite/.gitignore delete mode 100644 examples/with-mobx-react-lite/README.md delete mode 100644 examples/with-mobx-state-tree-typescript/.gitignore delete mode 100644 examples/with-mobx-state-tree-typescript/README.md delete mode 100644 examples/with-netlify-cms/.gitignore delete mode 100644 examples/with-netlify-cms/README.md delete mode 100644 examples/with-netlify-cms/components/layout.js delete mode 100644 examples/with-netlify-cms/content/about.md delete mode 100644 examples/with-netlify-cms/content/blogPosts/2019-09-06_its_not_the_problem_you_want_to_solve_boiiiiii.md delete mode 100644 examples/with-netlify-cms/content/blogPosts/2019-09-06_why_did_the_chicken_cross_the_road.md delete mode 100644 examples/with-netlify-cms/content/home.md delete mode 100644 examples/with-netlify-cms/next.config.js delete mode 100644 examples/with-netlify-cms/package.json delete mode 100644 examples/with-netlify-cms/pages/about.js delete mode 100644 examples/with-netlify-cms/pages/blog/index.js delete mode 100644 examples/with-netlify-cms/pages/blog/post/[slug].js delete mode 100644 examples/with-netlify-cms/pages/index.js delete mode 100644 examples/with-netlify-cms/public/static/admin/config.yml delete mode 100644 examples/with-netlify-cms/public/static/admin/index.html delete mode 100644 examples/with-netlify-cms/public/static/img/1200px-whio_blue_duck_at_staglands_akatarawa_new_zealand.jpg delete mode 100644 examples/with-netlify-cms/public/static/img/puppy-and-adult-dog.jpg delete mode 100644 examples/with-next-auth/.gitignore delete mode 100644 examples/with-next-auth/README.md delete mode 100644 examples/with-next-css/.gitignore delete mode 100644 examples/with-next-css/README.md delete mode 100644 examples/with-next-i18next/.gitignore delete mode 100644 examples/with-next-i18next/README.md delete mode 100644 examples/with-next-multilingual/.gitignore delete mode 100644 examples/with-next-multilingual/README.md delete mode 100644 examples/with-next-offline/.gitignore delete mode 100644 examples/with-next-offline/README.md delete mode 100644 examples/with-next-routes/.gitignore delete mode 100644 examples/with-next-routes/readme.md delete mode 100644 examples/with-now-env/.gitignore delete mode 100644 examples/with-now-env/README.md delete mode 100644 examples/with-patternfly/.gitignore delete mode 100644 examples/with-patternfly/README.md delete mode 100644 examples/with-patternfly/next.config.js delete mode 100644 examples/with-patternfly/package.json delete mode 100644 examples/with-patternfly/pages/_app.js delete mode 100644 examples/with-patternfly/pages/index.js delete mode 100644 examples/with-pretty-url-routing/.gitignore delete mode 100644 examples/with-pretty-url-routing/README.md delete mode 100644 examples/with-prisma/.gitignore delete mode 100644 examples/with-prisma/README.md delete mode 100644 examples/with-react-helmet/.gitignore delete mode 100644 examples/with-react-helmet/README.md delete mode 100644 examples/with-react-helmet/package.json delete mode 100644 examples/with-react-helmet/pages/_app.js delete mode 100644 examples/with-react-helmet/pages/_document.js delete mode 100644 examples/with-react-helmet/pages/about.js delete mode 100644 examples/with-react-helmet/pages/index.js delete mode 100644 examples/with-react-md/.gitignore delete mode 100644 examples/with-react-md/README.md delete mode 100644 examples/with-react-md/components/Layout/Layout.jsx delete mode 100644 examples/with-react-md/components/Layout/index.js delete mode 100644 examples/with-react-md/components/Layout/navItems.jsx delete mode 100644 examples/with-react-md/components/LinkUnstyled.jsx delete mode 100644 examples/with-react-md/package.json delete mode 100644 examples/with-react-md/pages/_app.jsx delete mode 100644 examples/with-react-md/pages/index.jsx delete mode 100644 examples/with-react-md/pages/route-1.jsx delete mode 100644 examples/with-react-md/styles/_variables.scss delete mode 100644 examples/with-react-md/styles/app.scss delete mode 100644 examples/with-react-query/.gitignore delete mode 100644 examples/with-react-query/README.md delete mode 100644 examples/with-redux-observable/.gitignore delete mode 100644 examples/with-redux-observable/README.md delete mode 100644 examples/with-redux-observable/components/UserInfo.js delete mode 100644 examples/with-redux-observable/package.json delete mode 100644 examples/with-redux-observable/pages/_app.js delete mode 100644 examples/with-redux-observable/pages/index.js delete mode 100644 examples/with-redux-observable/pages/other.js delete mode 100644 examples/with-redux-observable/store/actionTypes.js delete mode 100644 examples/with-redux-observable/store/actions.js delete mode 100644 examples/with-redux-observable/store/epics.js delete mode 100644 examples/with-redux-observable/store/store.js delete mode 100644 examples/with-redux-persist/.gitignore delete mode 100644 examples/with-redux-persist/README.md delete mode 100644 examples/with-redux-persist/components/clock.js delete mode 100644 examples/with-redux-persist/components/counter.js delete mode 100644 examples/with-redux-persist/components/data-list.js delete mode 100644 examples/with-redux-persist/components/examples.js delete mode 100644 examples/with-redux-persist/package.json delete mode 100644 examples/with-redux-persist/pages/_app.js delete mode 100644 examples/with-redux-persist/pages/index.js delete mode 100644 examples/with-redux-persist/store.js delete mode 100644 examples/with-redux-saga/.gitignore delete mode 100644 examples/with-redux-saga/README.md delete mode 100644 examples/with-redux-saga/actions.js delete mode 100644 examples/with-redux-saga/components/clock.js delete mode 100644 examples/with-redux-saga/components/counter.js delete mode 100644 examples/with-redux-saga/components/page.js delete mode 100644 examples/with-redux-saga/package.json delete mode 100644 examples/with-redux-saga/pages/_app.js delete mode 100644 examples/with-redux-saga/pages/index.js delete mode 100644 examples/with-redux-saga/pages/other.js delete mode 100644 examples/with-redux-saga/reducer.js delete mode 100644 examples/with-redux-saga/saga.js delete mode 100644 examples/with-redux-saga/store.js delete mode 100644 examples/with-redux-thunk/.gitignore delete mode 100644 examples/with-redux-thunk/README.md delete mode 100644 examples/with-redux-thunk/actions.js delete mode 100644 examples/with-redux-thunk/components/clock.js delete mode 100644 examples/with-redux-thunk/components/counter.js delete mode 100644 examples/with-redux-thunk/components/examples.js delete mode 100644 examples/with-redux-thunk/package.json delete mode 100644 examples/with-redux-thunk/pages/_app.js delete mode 100644 examples/with-redux-thunk/pages/index.js delete mode 100644 examples/with-redux-thunk/pages/show-redux-state.js delete mode 100644 examples/with-redux-thunk/reducers.js delete mode 100644 examples/with-redux-thunk/store.js delete mode 100644 examples/with-redux-thunk/types.js delete mode 100644 examples/with-redux-toolkit-typescript/.gitignore delete mode 100644 examples/with-redux-toolkit-typescript/README.md delete mode 100644 examples/with-redux-toolkit/.gitignore delete mode 100644 examples/with-redux-toolkit/README.md delete mode 100644 examples/with-redux-wrapper/.gitignore delete mode 100644 examples/with-redux-wrapper/.npmrc delete mode 100644 examples/with-redux-wrapper/README.md delete mode 100644 examples/with-redux-wrapper/components/AddCount.js delete mode 100644 examples/with-redux-wrapper/components/Clock.js delete mode 100644 examples/with-redux-wrapper/components/Page.js delete mode 100644 examples/with-redux-wrapper/package.json delete mode 100644 examples/with-redux-wrapper/pages/_app.js delete mode 100644 examples/with-redux-wrapper/pages/index.js delete mode 100644 examples/with-redux-wrapper/pages/other.js delete mode 100644 examples/with-redux-wrapper/store/count/action.js delete mode 100644 examples/with-redux-wrapper/store/count/reducer.js delete mode 100644 examples/with-redux-wrapper/store/store.js delete mode 100644 examples/with-redux-wrapper/store/tick/action.js delete mode 100644 examples/with-redux-wrapper/store/tick/reducer.js delete mode 100644 examples/with-sentry-simple/.gitignore delete mode 100644 examples/with-sentry-simple/README.md delete mode 100644 examples/with-skynexui-components/.gitignore delete mode 100644 examples/with-skynexui-components/README.md delete mode 100644 examples/with-skynexui-components/package.json delete mode 100644 examples/with-skynexui-components/pages/_app.js delete mode 100644 examples/with-skynexui-components/pages/index.js delete mode 100644 examples/with-stomp/.env delete mode 100644 examples/with-stomp/.gitignore delete mode 100644 examples/with-stomp/README.md delete mode 100644 examples/with-stomp/package.json delete mode 100644 examples/with-stomp/pages/index.js delete mode 100644 examples/with-stomp/useClient.js delete mode 100644 examples/with-stomp/useStomp.js delete mode 100644 examples/with-styled-jsx-postcss/.gitignore delete mode 100644 examples/with-styled-jsx-postcss/README.md delete mode 100644 examples/with-sw-precache/.gitignore delete mode 100644 examples/with-sw-precache/README.md delete mode 100644 examples/with-tailwindcss-emotion/.babelrc delete mode 100644 examples/with-tailwindcss-emotion/.gitignore delete mode 100644 examples/with-tailwindcss-emotion/README.md delete mode 100644 examples/with-tailwindcss-emotion/components/ButtonReact.js delete mode 100644 examples/with-tailwindcss-emotion/components/ButtonStyled.js delete mode 100644 examples/with-tailwindcss-emotion/package.json delete mode 100644 examples/with-tailwindcss-emotion/pages/_app.js delete mode 100644 examples/with-tailwindcss-emotion/pages/index.js delete mode 100644 examples/with-tailwindcss-emotion/postcss.config.js delete mode 100644 examples/with-tailwindcss-emotion/tailwind.config.js delete mode 100644 examples/with-tesfy/.gitignore delete mode 100644 examples/with-tesfy/README.md delete mode 100644 examples/with-tesfy/components/nav.js delete mode 100644 examples/with-tesfy/package.json delete mode 100644 examples/with-tesfy/pages/_app.js delete mode 100644 examples/with-tesfy/pages/features.js delete mode 100644 examples/with-tesfy/pages/index.js delete mode 100644 examples/with-tesfy/utils/getDatafile.js delete mode 100644 examples/with-tesfy/utils/getTesfyProps.js delete mode 100644 examples/with-tesfy/utils/getUserId.js delete mode 100644 examples/with-tesfy/utils/index.js delete mode 100644 examples/with-trpc/.gitignore delete mode 100755 examples/with-trpc/README.md delete mode 100644 examples/with-turbo/.gitignore delete mode 100644 examples/with-turbo/README.md mode change 100755 => 100644 examples/with-turbopack/.gitignore delete mode 100644 examples/with-turbopack/.npmrc delete mode 100644 examples/with-turbopack/app/api/categories/category.d.ts delete mode 100644 examples/with-turbopack/app/api/categories/getCategories.ts delete mode 100644 examples/with-turbopack/app/api/categories/route.ts delete mode 100644 examples/with-turbopack/app/api/products/product.d.ts delete mode 100644 examples/with-turbopack/app/api/products/route.ts delete mode 100644 examples/with-turbopack/app/api/reviews/getReviews.ts delete mode 100644 examples/with-turbopack/app/api/reviews/review.d.ts delete mode 100644 examples/with-turbopack/app/api/reviews/route.ts delete mode 100644 examples/with-turbopack/app/context/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/context/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/context/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/context/context-click-counter.tsx delete mode 100644 examples/with-turbopack/app/context/counter-context.tsx delete mode 100644 examples/with-turbopack/app/context/layout.tsx delete mode 100644 examples/with-turbopack/app/context/page.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/[subCategorySlug]/error.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/error.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/error-handling/[categorySlug]/template.tsx delete mode 100644 examples/with-turbopack/app/error-handling/error.tsx delete mode 100644 examples/with-turbopack/app/error-handling/layout.tsx delete mode 100644 examples/with-turbopack/app/error-handling/page.tsx delete mode 100644 examples/with-turbopack/app/error-handling/template.tsx delete mode 100644 examples/with-turbopack/app/favicon.ico delete mode 100644 examples/with-turbopack/app/hooks/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/hooks/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/hooks/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/hooks/[categorySlug]/template.tsx delete mode 100644 examples/with-turbopack/app/hooks/_components/router-context-layout.tsx delete mode 100644 examples/with-turbopack/app/hooks/_components/router-context.tsx delete mode 100644 examples/with-turbopack/app/hooks/layout.tsx delete mode 100644 examples/with-turbopack/app/hooks/page.tsx delete mode 100644 examples/with-turbopack/app/hooks/template.tsx delete mode 100644 examples/with-turbopack/app/isr/[id]/page.tsx delete mode 100644 examples/with-turbopack/app/isr/layout.tsx delete mode 100644 examples/with-turbopack/app/isr/loading.tsx delete mode 100644 examples/with-turbopack/app/isr/page.tsx delete mode 100644 examples/with-turbopack/app/isr/template.tsx delete mode 100644 examples/with-turbopack/app/layouts/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/layouts/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/layouts/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/layouts/[categorySlug]/template.tsx delete mode 100644 examples/with-turbopack/app/layouts/layout.tsx delete mode 100644 examples/with-turbopack/app/layouts/page.tsx delete mode 100644 examples/with-turbopack/app/layouts/template.tsx delete mode 100644 examples/with-turbopack/app/loading/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/loading/layout.tsx delete mode 100644 examples/with-turbopack/app/loading/loading.tsx delete mode 100644 examples/with-turbopack/app/loading/page.tsx delete mode 100644 examples/with-turbopack/app/loading/template.tsx delete mode 100644 examples/with-turbopack/app/not-found.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/[subCategorySlug]/not-found.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/not-found.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/not-found/[categorySlug]/template.tsx delete mode 100644 examples/with-turbopack/app/not-found/layout.tsx delete mode 100644 examples/with-turbopack/app/not-found/not-found.tsx delete mode 100644 examples/with-turbopack/app/not-found/page.tsx delete mode 100644 examples/with-turbopack/app/not-found/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(checkout)/checkout/page.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(checkout)/layout.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(checkout)/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(main)/layout.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(main)/page.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(main)/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(marketing)/blog/page.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(marketing)/layout.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(marketing)/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/[categorySlug]/[subCategorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/[categorySlug]/layout.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/[categorySlug]/page.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/[categorySlug]/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/layout.tsx delete mode 100644 examples/with-turbopack/app/route-groups/(shop)/template.tsx delete mode 100644 examples/with-turbopack/app/route-groups/layout.tsx delete mode 100644 examples/with-turbopack/app/snippets/page.tsx delete mode 100644 examples/with-turbopack/app/snippets/search-params/active-link.tsx delete mode 100644 examples/with-turbopack/app/snippets/search-params/client.tsx delete mode 100644 examples/with-turbopack/app/snippets/search-params/page.tsx delete mode 100644 examples/with-turbopack/app/ssg/[id]/page.tsx delete mode 100644 examples/with-turbopack/app/ssg/layout.tsx delete mode 100644 examples/with-turbopack/app/ssg/loading.tsx delete mode 100644 examples/with-turbopack/app/ssg/page.tsx delete mode 100644 examples/with-turbopack/app/ssg/random-post-tab.tsx delete mode 100644 examples/with-turbopack/app/ssg/template.tsx delete mode 100644 examples/with-turbopack/app/ssr/[id]/page.tsx delete mode 100644 examples/with-turbopack/app/ssr/layout.tsx delete mode 100644 examples/with-turbopack/app/ssr/loading.tsx delete mode 100644 examples/with-turbopack/app/ssr/page.tsx delete mode 100644 examples/with-turbopack/app/ssr/template.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/add-to-cart.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/cart-count-context.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/cart-count.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/header.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/pricing.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/recommended-products.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/reviews.tsx delete mode 100644 examples/with-turbopack/app/streaming/_components/single-product.tsx delete mode 100644 examples/with-turbopack/app/streaming/edge/layout.tsx delete mode 100644 examples/with-turbopack/app/streaming/edge/product/[id]/page.tsx delete mode 100644 examples/with-turbopack/app/streaming/layout.tsx delete mode 100644 examples/with-turbopack/app/streaming/node/layout.tsx delete mode 100644 examples/with-turbopack/app/streaming/node/product/[id]/page.tsx delete mode 100644 examples/with-turbopack/app/streaming/page.tsx delete mode 100644 examples/with-turbopack/app/styling/css-modules/page.tsx delete mode 100644 examples/with-turbopack/app/styling/css-modules/styles.module.css delete mode 100644 examples/with-turbopack/app/styling/global-css/page.tsx delete mode 100644 examples/with-turbopack/app/styling/global-css/styles.css delete mode 100644 examples/with-turbopack/app/styling/layout.tsx delete mode 100644 examples/with-turbopack/app/styling/page.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-components/layout.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-components/page.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-components/registry.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-jsx/layout.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-jsx/page.tsx delete mode 100644 examples/with-turbopack/app/styling/styled-jsx/registry.tsx delete mode 100644 examples/with-turbopack/app/styling/tailwind/page.tsx delete mode 100644 examples/with-turbopack/app/styling/template.tsx delete mode 100644 examples/with-turbopack/lib/demos.ts delete mode 100644 examples/with-turbopack/lib/getBaseUrl.ts delete mode 100644 examples/with-turbopack/lib/page-directory/get-products.ts delete mode 100644 examples/with-turbopack/lib/page-directory/products.json delete mode 100644 examples/with-turbopack/lib/page-directory/reviews.json mode change 100755 => 100644 examples/with-turbopack/next-env.d.ts delete mode 100755 examples/with-turbopack/next.config.js delete mode 100644 examples/with-turbopack/pages/_app.tsx delete mode 100644 examples/with-turbopack/pages/_document.tsx delete mode 100644 examples/with-turbopack/pages/cert/index.tsx delete mode 100644 examples/with-turbopack/pages/cert/product/[id].tsx delete mode 100644 examples/with-turbopack/postcss.config.js delete mode 100644 examples/with-turbopack/public/alexander-andrews-brAkTCdnhW8-unsplash.jpg delete mode 100644 examples/with-turbopack/public/eniko-kis-KsLPTsYaqIQ-unsplash.jpg delete mode 100644 examples/with-turbopack/public/favicon/android-chrome-192x192.png delete mode 100644 examples/with-turbopack/public/favicon/android-chrome-512x512.png delete mode 100644 examples/with-turbopack/public/favicon/apple-touch-icon.png delete mode 100644 examples/with-turbopack/public/favicon/browserconfig.xml delete mode 100644 examples/with-turbopack/public/favicon/favicon-16x16.png delete mode 100644 examples/with-turbopack/public/favicon/favicon-32x32.png delete mode 100644 examples/with-turbopack/public/favicon/mstile-150x150.png delete mode 100644 examples/with-turbopack/public/favicon/safari-pinned-tab.svg delete mode 100644 examples/with-turbopack/public/favicon/site.webmanifest delete mode 100644 examples/with-turbopack/public/grid.svg delete mode 100644 examples/with-turbopack/public/guillaume-coupy-6HuoHgK7FN8-unsplash.jpg delete mode 100644 examples/with-turbopack/public/nextjs-icon-light-background.png delete mode 100644 examples/with-turbopack/public/patrick-OIFgeLnjwrM-unsplash.jpg delete mode 100644 examples/with-turbopack/public/prince-akachi-LWkFHEGpleE-unsplash.jpg delete mode 100644 examples/with-turbopack/public/yoann-siloine-_T4w3JDm6ug-unsplash.jpg delete mode 100755 examples/with-turbopack/styles/globals.css delete mode 100644 examples/with-turbopack/tailwind.config.ts mode change 100755 => 100644 examples/with-turbopack/tsconfig.json delete mode 100644 examples/with-turbopack/ui/address-bar.tsx delete mode 100644 examples/with-turbopack/ui/boundary.tsx delete mode 100644 examples/with-turbopack/ui/buggy-button.tsx delete mode 100644 examples/with-turbopack/ui/button.tsx delete mode 100644 examples/with-turbopack/ui/byline.tsx delete mode 100644 examples/with-turbopack/ui/click-counter.tsx delete mode 100644 examples/with-turbopack/ui/component-tree.tsx delete mode 100644 examples/with-turbopack/ui/count-up.tsx delete mode 100644 examples/with-turbopack/ui/external-link.tsx delete mode 100644 examples/with-turbopack/ui/footer.tsx delete mode 100644 examples/with-turbopack/ui/global-nav.tsx delete mode 100644 examples/with-turbopack/ui/header.tsx delete mode 100644 examples/with-turbopack/ui/mobile-nav-toggle.tsx delete mode 100644 examples/with-turbopack/ui/next-logo.tsx delete mode 100644 examples/with-turbopack/ui/page-directory/layout.tsx delete mode 100644 examples/with-turbopack/ui/page-directory/product-pricing.tsx delete mode 100644 examples/with-turbopack/ui/page-directory/product.tsx delete mode 100644 examples/with-turbopack/ui/page-directory/reviews.tsx delete mode 100644 examples/with-turbopack/ui/page-directory/similar-products.tsx delete mode 100644 examples/with-turbopack/ui/ping.tsx delete mode 100644 examples/with-turbopack/ui/product-best-seller.tsx delete mode 100644 examples/with-turbopack/ui/product-card.tsx delete mode 100644 examples/with-turbopack/ui/product-currency-symbol.tsx delete mode 100644 examples/with-turbopack/ui/product-deal.tsx delete mode 100644 examples/with-turbopack/ui/product-estimated-arrival.tsx delete mode 100644 examples/with-turbopack/ui/product-lightening-deal.tsx delete mode 100644 examples/with-turbopack/ui/product-low-stock-warning.tsx delete mode 100644 examples/with-turbopack/ui/product-price.tsx delete mode 100644 examples/with-turbopack/ui/product-rating.tsx delete mode 100644 examples/with-turbopack/ui/product-review-card.tsx delete mode 100644 examples/with-turbopack/ui/product-split-payments.tsx delete mode 100644 examples/with-turbopack/ui/product-used-price.tsx delete mode 100644 examples/with-turbopack/ui/rendered-time-ago.tsx delete mode 100644 examples/with-turbopack/ui/rendering-info.tsx delete mode 100644 examples/with-turbopack/ui/rendering-page-skeleton.tsx delete mode 100644 examples/with-turbopack/ui/section-link.tsx delete mode 100644 examples/with-turbopack/ui/skeleton-card.tsx delete mode 100644 examples/with-turbopack/ui/tab-group.tsx delete mode 100644 examples/with-turbopack/ui/tab-nav-item.tsx delete mode 100644 examples/with-turbopack/ui/tab.tsx delete mode 100644 examples/with-turbopack/ui/vercel-logo.tsx diff --git a/examples/amp-first/.gitignore b/examples/amp-first/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/amp-first/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/amp-first/README.md b/examples/amp-first/README.md deleted file mode 100644 index 535a6bfee87a4..0000000000000 --- a/examples/amp-first/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# AMP First Boilerplate ⚡ - -This example sets up the boilerplate for an AMP First Site. You can see a [live version here](https://my-next-app.sebastianbenz.vercel.app). The boilerplate includes the following features: - -- AMP Extension helpers (`amp-state`, `amp-script`, ...) -- AMP Serviceworker integration -- App manifest -- Offline page - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/amp-first&project-name=amp-first&repository-name=amp-first) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example amp-first amp-first-app -``` - -```bash -yarn create next-app --example amp-first amp-first-app -``` - -```bash -pnpm create next-app --example amp-first amp-first-app -``` - -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits. You will also see AMP validation errors in the console. - -## Todo - -Things you need to do after installing the boilerplate: - -1. Update your app manifest in [`public/manifest.json`](public/manifest.json) with your app-specific data (`theme_color`, `background_color`, `name`, `short_name`). -2. Update the `THEME_COLOR` variable defined in [`components/Layout.js`](components/Layout.js). -3. Update favicon and icons in [`public/favicon.ico`](public/favicon.ico) and [`public/static/images/icons-*.png`](public/static/images). -4. Set the default language in [`pages/_document.js`](pages/_document.js). -5. Review the AMP Serviceworker implementation in [`public/serviceworker.js`](public/serviceworker.js). - -## Tips & Tricks - -- **Using AMP Components:** you can import AMP components using `next/head`. Checkout `components/amp/AmpCustomElement` for a simple way to import AMP components. Once the component is imported, you can use it like any other HTML element. -- **amp-bind & amp-state:** it's no problem to use `amp-bind` and `amp-state` with Next.js. There are two things to be aware of: - - 1. The `[...]` binding syntax, e.g. `[text]="myStateVariable"`, is not supported in JSX. Use `data-amp-bind-text="myStateVariable"` instead. - 2. Initializing `amp-state` via JSON string is not supported in JSX: - - ```html - - - - ``` - - Instead you need to use `dangerouslySetInnerHTML` to initialize the string. can use the [`/components/amp/AmpState.js`](components/amp/AmpState.js) component to see how it works. The same approach works for `amp-access` and `amp-consent` as well: - - ```html - - ``` - -- **amp-list & amp-mustache:** mustache templates conflict with JSX and it's template literals need to be escaped. A simple approach is to escape them via back ticks: `` src={`{{imageUrl}}`} ``. -- **amp-script:** you can use [amp-script](https://amp.dev/documentation/components/amp-script/) to add custom JavaScript to your AMP pages. The boilerplate includes a helper [`components/amp/AmpScript.js`](components/amp/AmpScript.js) to simplify using `amp-script`. The helper also supports embedding inline scripts. Good to know: Next.js uses [AMP Optimizer](https://github.com/ampproject/amp-toolbox/tree/master/packages/optimizer) under the hood, which automatically adds the needed script hashes for [inline amp-scripts](https://amp.dev/documentation/components/amp-script/#load-javascript-from-a-local-element). - -## Deployment - -For production builds, you need to run (the app will be build into the `.next` folder): - -```shell -$ yarn build -``` - -To start the application in production mode, run: - -```shell -$ yarn start -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/amp-first/amp.d.ts b/examples/amp-first/amp.d.ts deleted file mode 100644 index d70f506154f78..0000000000000 --- a/examples/amp-first/amp.d.ts +++ /dev/null @@ -1,107 +0,0 @@ -// Allow AMP elements to be a property on JSX.IntrinsicElements - -// Only the intrinsic elements defined here will be accepted, and only with the attributes defined here -declare namespace JSX { - interface AmpImg { - alt?: string - src?: string - width?: string - height?: string - layout?: string - } - interface AmpInstallServiceWorker { - src: string - 'data-iframe-src': string - layout: string - } - interface AmpState { - id?: string - children?: any - src?: string - } - interface AmpScript { - id?: string - children?: any - layout?: string - width?: string - height?: string - script?: any - src?: string - } - interface AmpCarousel { - children: React.ReactNode - layout?: - | 'fill' - | 'fixed' - | 'fixed-height' - | 'flex-item' - | 'intrinsic' - | 'nodisplay' - | 'responsive' - width: string - height: string - type: 'slides' | 'carousel' - role?: 'region' | 'list' | 'listitem' - controls?: '' - loop?: '' - autoplay?: '' - delay?: string - id?: string - } - interface AmpList { - layout?: - | 'fill' - | 'fixed' - | 'fixed-height' - | 'flex-item' - | 'nodisplay' - | 'responsive' - temlate?: string - width?: string - height?: string - credentials?: 'omit' | 'include' - children: React.ReactNode - src?: string - binding?: string - } - interface IntrinsicElements { - 'amp-img': AmpImg - 'amp-install-serviceworker': AmpInstallServiceWorker - 'amp-state': AmpState - 'amp-script': AmpScript - 'amp-carousel': AmpCarousel - 'amp-list': AmpList - } -} - -// Only the intrinsic elements defined here will be accepted, attributes don't matter -// declare namespace JSX { -// interface IntrinsicElements { -// 'amp-img': any -// 'amp-install-serviceworker': any -// 'amp-state': any -// 'amp-script': any -// 'amp-carousel': any -// 'amp-list': any -// } -// } - -// All intrinsic elements will be accepted -// declare namespace JSX { -// interface IntrinsicElements { -// [elemName: string]: any -// } -// } - -// Allow custom AMP attributes on HTML elements -declare namespace React { - interface ScriptHTMLAttributes { - target?: string - } - - interface HTMLAttributes { - submitting?: string - type?: string - on?: string - } -} diff --git a/examples/amp-first/components/Layout.tsx b/examples/amp-first/components/Layout.tsx deleted file mode 100644 index 86f68fdfb26ac..0000000000000 --- a/examples/amp-first/components/Layout.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import Head from 'next/head' -import { AmpIncludeAmpInstallServiceworker } from './amp/AmpCustomElement' - -// Your app's theme color -const THEME_COLOR = '#005af0' - -type LayoutProps = { - title: string - children?: React.ReactNode - description: string -} - -/** - * A sample page layout installing the AMP Serviceworker by default. - */ -const Layout: React.FC = ({ title, children, description }) => ( - <> - - {title || ''} - - - - - - - - - {children} - - - - - - -) - -export default Layout diff --git a/examples/amp-first/components/amp/AmpCustomElement.tsx b/examples/amp-first/components/amp/AmpCustomElement.tsx deleted file mode 100644 index 0c02ae55668c4..0000000000000 --- a/examples/amp-first/components/amp/AmpCustomElement.tsx +++ /dev/null @@ -1,535 +0,0 @@ -/** - * @file An AMP Component import helper. This file is auto-generated using - * https://www.npmjs.com/package/@ampproject/toolbox-validator-rules. - */ -import Head from 'next/head' - -interface Props { - name: string - version: string -} - -export function AmpIncludeCustomElement(props: Props) { - return ( - - -`} - Instead you need to use dangerouslySetInnerHTML to - initialize the string. can use the{' '} - /components/amp/AmpState.js component to see how it - works. The same approach works for amp-access and{' '} - amp-consent as well - - - Demo: -

- - - <> - {{ - message: 'Hello World', - }} - - - - - - -
-

amp-list & amp-mustache

-

- Mustache templates conflict with JSX and it's template literals need - to be escaped. A simple approach is to escape them via back ticks:{' '} - src={`{{imageUrl}}`}. -

- - - - - -
- -
-

amp-script

-

- Checkout the{' '} - - amp-script - {' '} - helper here: components/amp/AmpScript.js for embedding - custom JavaScript. -

- - - - - -

- The helper also supports embedding inline scripts. Good to know: - Next.js uses{' '} - - AMP Optimizer - {' '} - under the hood, which automatically adds the needed script hashes - for{' '} - - inline amp-scripts - - . -

- - - -
- - - - -) - -// amp-script requires absolute URLs, so we create a property `host` which we can use to calculate the script URL. -export const getServerSideProps: GetServerSideProps = async ({ req }) => { - const getProtocol = (req: any) => { - if (req.connection.encrypted) { - return 'https' - } - const forwardedProto = req.headers['x-forwarded-proto'] - if (forwardedProto) { - return forwardedProto.split(/\s*,\s*/)[0] - } - return 'http' - } - - // WARNING: This is a generally unsafe application unless you're deploying to a managed platform like Vercel. - // Be sure your load balancer is configured to not allow spoofed host headers. - return { props: { host: `${getProtocol(req)}://${req.headers.host}` } } -} - -export default Home diff --git a/examples/amp-first/pages/offline.tsx b/examples/amp-first/pages/offline.tsx deleted file mode 100644 index ec987b8882d63..0000000000000 --- a/examples/amp-first/pages/offline.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import Layout from '../components/Layout' - -export const config = { amp: true } - -const Home = () => ( - -

Offline

-

Please try again later.

-
-) - -export default Home diff --git a/examples/amp-first/public/install-serviceworker.html b/examples/amp-first/public/install-serviceworker.html deleted file mode 100644 index cffb15dd6caa8..0000000000000 --- a/examples/amp-first/public/install-serviceworker.html +++ /dev/null @@ -1,7 +0,0 @@ - -installing service worker - diff --git a/examples/amp-first/public/manifest.json b/examples/amp-first/public/manifest.json deleted file mode 100644 index a4371e83d0db7..0000000000000 --- a/examples/amp-first/public/manifest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "short_name": "My page", - "name": "My fantastic page", - "icons": [ - { - "src": "/static/images/icons-192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "/static/images/icons-512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "display": "standalone", - "scope": "/", - "theme_color": "#005af0", - "background_color": "#ffffff" -} diff --git a/examples/amp-first/public/serviceworker.js b/examples/amp-first/public/serviceworker.js deleted file mode 100644 index d5f58a9fda3a6..0000000000000 --- a/examples/amp-first/public/serviceworker.js +++ /dev/null @@ -1,28 +0,0 @@ -/* global importScripts, AMP_SW */ -importScripts('https://cdn.ampproject.org/sw/amp-sw.js') - -/* - This configures the AMP service worker to enhance network resiliency and - optimizes asset caching. This configuration will: - - - Cache AMP scripts with a stale-while-revalidate strategy for a longer duration - than the default http response headers indicate. - - Cache valid visited AMP documents, and serve only in case of flaky network conditions. - - Cache and serve an offline page. - - Serve static assets with a cache first strategy. - - Checkout https://github.com/ampproject/amp-sw/ to learn more about how to configure - asset caching and link prefetching. -*/ -AMP_SW.init({ - assetCachingOptions: [ - { - regexp: /\.(png|jpg|woff2|woff|css|js)/, - cachingStrategy: 'CACHE_FIRST', // options are NETWORK_FIRST | CACHE_FIRST | STALE_WHILE_REVALIDATE - }, - ], - offlinePageOptions: { - url: '/offline', - assets: [], - }, -}) diff --git a/examples/amp-first/public/static/amp-script/hello.js b/examples/amp-first/public/static/amp-script/hello.js deleted file mode 100644 index 448ebac5466fa..0000000000000 --- a/examples/amp-first/public/static/amp-script/hello.js +++ /dev/null @@ -1,4 +0,0 @@ -const btn = document.querySelector('button') -btn.addEventListener('click', () => { - document.body.textContent = 'Hello World!' -}) diff --git a/examples/amp-first/public/static/favicon.ico b/examples/amp-first/public/static/favicon.ico deleted file mode 100644 index 4965832f2c9b0605eaa189b7c7fb11124d24e48a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 ?Bec8qQW|GhJ%Q zH|!z2QdnsmhAV1KQ5{nP>);B{>1W?p=A58iHZ8K7b6#B~#3bur$dt`3Du-Nj1?vu$(01$}V?oUOGMrT+~s|c)dHa=hRgtk5U59*R}tdztIkp#k%<~T3$YtjR^vBE z`h;N!h`!leu!5JAI<*I-nw)>5&TQ~#?QKnk1Vc$~q6Up=YiszxGMM8McL~2H<@_o- zB91w4J`pcpl4ucXmOs*?ts-PG*a_iJBPxq2@td~c?K!+VEM#{8P#xg`6OK`JXGnfo$FF&7!9Pj zWa(J-^7zd`m&D?8_9j!EZg_{@7LG}t`N8sm7c04!j+jh!_!wsSKV0wug1x-0FB!-; zHEXxfLk_yNUYbbK%y4i0`$^R~Tr0reKe}}PrVrX?%8#Qco+`w9saNXq%{CtT8l(@? z-=A02UGyQ4I2us&t4ZL-NA6ly%)ksSj`U!()N^1AU+S+@Kk3@w9kX+-DHDvtk?we2 zB>uSiGi#)Dsx9zmR4kR8FDU+s#_j2eB;8uwny`C$B>!jG>7R5JefIq980U%tTzN3$ cpJ2;n1gQoTru^Xl+yMYq=C)=H=MaSd0AQ3*YXATM diff --git a/examples/amp-first/public/static/images/icons-512.png b/examples/amp-first/public/static/images/icons-512.png deleted file mode 100755 index dd1ff4acfde5343557ecb51f89de3772195c20c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9553 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 O6KSgIsWd4;;{OM`fPzH; diff --git a/examples/amp-first/tsconfig.json b/examples/amp-first/tsconfig.json deleted file mode 100644 index 114d0ab4942b1..0000000000000 --- a/examples/amp-first/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true - }, - "include": ["next-env.d.ts", "amp.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] -} diff --git a/examples/amp-story/.gitignore b/examples/amp-story/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/amp-story/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/amp-story/README.md b/examples/amp-story/README.md deleted file mode 100644 index 680ef72e35031..0000000000000 --- a/examples/amp-story/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Google AMP Story - -This example shows how to create an AMP page with `amp-story` using Next.js and the AMP feature. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/amp-story&project-name=amp-story&repository-name=amp-story) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example amp-story amp-story-app -``` - -```bash -yarn create next-app --example amp-story amp-story-app -``` - -```bash -pnpm create next-app --example amp-story amp-story-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/amp-story/amp.d.ts b/examples/amp-story/amp.d.ts deleted file mode 100644 index 37f3315282f35..0000000000000 --- a/examples/amp-story/amp.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -// Allow AMP elements to be a property on JSX.IntrinsicElements - -// Only the intrinsic elements defined here will be accepted, and only with the attributes defined here -declare namespace JSX { - interface AmpImg { - alt: string - src: string - width?: string - height?: string - layout: string - } - interface AmpVideo { - width: string - height: string - layout: string - poster: string - children: React.ReactNode - autoplay: string - loop?: string - } - interface AmpStory { - standalone: string - title: string - publisher: string - 'publisher-logo-src': string - 'poster-portrait-src': string - children: React.ReactNode - } - interface AmpStoryPage { - id: string - children: React.ReactNode - } - interface AmpStoryGridLayer { - template: 'fill' | 'vertical' | 'horizontal' | 'thirds' - children: React.ReactNode - } - interface AmpStoryBookend { - src: string - layout?: - | 'fill' - | 'fixed' - | 'fixed-height' - | 'flex-item' - | 'intrinsic' - | 'nodisplay' - | 'responsive' - } - interface IntrinsicElements { - 'amp-img': AmpImg - 'amp-video': AmpVideo - 'amp-story': AmpStory - 'amp-story-grid-layer': AmpStoryGridLayer - 'amp-story-page': AmpStoryPage - 'amp-story-bookend': AmpStoryBookend - } -} - -// Only the intrinsic elements defined here will be accepted, attributes don't matter -// declare namespace JSX { -// interface IntrinsicElements { -// 'amp-img': any -// 'amp-video': any -// 'amp-story': any -// 'amp-story-grid-layer': any -// 'amp-story-page': any -// 'amp-story-bookend': any -// } -// } - -// All intrinsic elements will be accepted -// declare namespace JSX { -// interface IntrinsicElements { -// [elemName: string]: any -// } -// } diff --git a/examples/amp-story/next-env.d.ts b/examples/amp-story/next-env.d.ts deleted file mode 100644 index 4f11a03dc6cc3..0000000000000 --- a/examples/amp-story/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/amp-story/package.json b/examples/amp-story/package.json deleted file mode 100644 index 9fa64a28dc61a..0000000000000 --- a/examples/amp-story/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@types/node": "^18.0.0", - "@types/react": "^18.0.14", - "@types/react-dom": "^18.0.5", - "typescript": "^4.7.4" - } -} diff --git a/examples/amp-story/pages/index.tsx b/examples/amp-story/pages/index.tsx deleted file mode 100644 index 0676d56db01bf..0000000000000 --- a/examples/amp-story/pages/index.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import Head from 'next/head' - -export const config = { amp: true } - -const Home = () => { - return ( - <> - - Example AMP Story in Next.js - - - - - - - diff --git a/examples/with-netlify-cms/public/static/img/1200px-whio_blue_duck_at_staglands_akatarawa_new_zealand.jpg b/examples/with-netlify-cms/public/static/img/1200px-whio_blue_duck_at_staglands_akatarawa_new_zealand.jpg deleted file mode 100644 index 44c1757cbc068131c9e7e3b57492c22b4e9d3460..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172034 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�oeu8sAoHT zz%!qb{Y7*vs*`6c!zSq-GQknqaK%gT6H<;vckyEvlk@=)P=iAA1fuC+E#Uaz}E+o5akusY?FsFELsK;u>#g(Mj zosq}h+_~NJiX|RPeK;84^Ce!$FbMikHhO~JIg4m_UN$=IW&HmDl?Id0Q)^-0WI+?6 zM!Rv&JBkNZh>IYWtUT2|oy*hdQblj5T3nDOFK*m|$}$JB#T@atV9t@1VZisPxGEh< z*pp3r$Bm-9kr{g^QZe}UrI#A4+CHGK65I{Eq|uN_{6$+LjsVAK!9T*sgZR?@PQiT4 zf!~!UrABdml~P0P8}_H=!oTBI(zF~8w4&gT{z9%Pt=Q_8!fih0In{^oo_{Lj#>HOF zSXoBa7{UIOCXa0`yiA}xG9kjc92$#h>4n7VqEgcQ3YK0|fm9tE#S+DO*4nmsBW1`Q zl0Vh+R*CghA9cY5WDt7PxX`ab4;p0jp(K?fA2bW zwVa^zs&%yT42&F8%{F7WeAC7>v@2zt63LoVeKCylO|958AX2SRE=e@<(i5?4vX?mq zw}7xCG#fgp;)}A8U9x-B6K+GLNO5X11sWm9=~`JLuo$Lk7{zq1g+iHO$7+r+3u2ni zg9d^q6}nX9wlx!5$I~@CAp)@h017AtVTv{ugtzWcQrK?;N)Vou+g6AaAXQ3ank$mZ z4n4(2dSQz$_9x6I9ca>|4C0XJmv~S~bqF45_YFcd)TwN699z9D~!P7-K3qpynVRYR#bnB5ayAIS3rmsGE$6EhWnHO`{&Z zpM##2S-X_WAsOIPtKqm158+7Ug@lBGQf=7C)SNB_3o`^CG55Zd;sEtF#SK$gVm7w`Sv-m1F1tsn!}MD1hMCDqAt65On#b5nJ(5s0wJf zWn6P!mI|RH33CBZdm34ArE(8ieqoo`St1RCZVW~d;EK{zza{AePUcH)uJ*#@>Lv0Oy45Q8#KETW)y7Y3(=9Z~a-fsJqZz3!4x`6xgITzrVJJ;hZtm}vM(S5R zYo;cX=B8L?lxkWQK`Ol0Hh8r8c4d>oIo!ANV+=@YRdae1f2C>7Jb;nKUG&{CV~hf#sfkK!)1XD9j{AEiRk6)iB7@GmZN~#VQweX-u~j+E z3j&dHTi>9sMN5{Bwiz~;7m_{2ET2zU#^eJZH22J6gFR?ls2W7*YVAe%7Mdf|W!Ru` zpL#Z3vL`srC`cU}jE{;T8eHuFpTd)yhMB6tZnV{tc1O-?xvFVtoT}BvXEC8K#a8d` zM&{boCf6Q}yDQe#A{jRfuQg=TV_87lK^^Hc%w4b-KT0OfSztU23gt;BqJ_FR;Eq2? z$*S(P88T%(Jn(6Tl`NCWLw(-VR;_NnP~(%ubtyT)rO=v8LlxAXSPa?iOEonT{U6DnB8j;EL!HXqzD<pEJJ!_g$uOcAMq?YvBT0-_M7~xVJc`m%B3$*w49?OX0W}VL zwqoI;>n*iccQtdcxOosW9)mT>^tLeEuIzw&*Fe*?1Xyh zMIPZuJmQz!`Z`w%O^RY!vJC|x+-uI>zWmph=Bo$pV`z5;BPSIc#OInSFi!%#_GWzM zwD+VEJ1HCP(dQ*{Xk>+uf&~(O?HJ0HFdp+xahfjCT2@^2%?S#E`88tFtvu9IwCAr% z5R06t2cp5F*{;AiN)t{(fqQnV6|92-y=-bKG$!m*d8dQM+=|YXrU;ml zz3Ifvq?4X2Rk%o$l14>OB3y@E1jiwba5$mox+RF9+VxnM+%}H?07@1srI7M-Ta&68 zDn`1E+?z;VzVwo9O`&WqSr~hCeB#c>28p%1 z@{ZBYDL!kLVd9Z*dyt?oAW*XE+Z2u5Ql^-??K$L7Hzxp`oC?yv08|-ssymVcbL~qm zCy~dg=rS0{dFxX7V5#ROx%odMfn3bq=ZY^))D|_#enl?5M&}g;p$1hC!uK@M$m6sI zlk7qJM%L2z#ab?y9gI*0yPuv183Xbktx|NWkMWDxq$ISCNydKeNhJL`Ry9~I@3q^_ zX&9F{m}y>wTb1tOo+6Rl!~-xqEUWzwYO`z4Yao(H#>-Mq{lY)#*!FLao`$*P z@Z4Bl2%XyAT=}rbqaj<|c4a;5mQGNW9oX8OZI_P|+{1W=d7QpF{Tu65 z-|_pKXr4c`kurc3?FV*0%)J}xd8X%1lIuqjLdaFrk4GU%irR z7gF9|DF&94kZtqGwQ=}Va5+K5s$NvD^BxfH(&*@zGV8*gxNjyYt>28yWpa z@}uu3jyS%@a|DXT!HteHj>j~gL%*~-eD-%?Jis!5o=y&UrdOKHt>&8_odH{gP`;oK z(3A67O>w(j8Nu?ZeVI$i0|a(1ib&2e{{VwTf9e_IofWO$Xc!I{9MJGv!EtV~MI?=I zMoOMRJ;rH`ww|q~AGD?qCm0}#t|?^M9MOYH#~M`d>J1w^1d&e!=Xd*2Ee-T{5=$hJ zJYeyFL1FSKL=miJHPhx;r@#eCz+v;))b`rUkzGB$prtv-BZW2D9K9)aaZ3w!;y#K< z0e^Ei+ zNVA4lKApr!m}aL5{S6q9R@?&4TVgJJZHi zg=&qYmGj7`w}N>TdADQMhL$b8xuk4lYOR5hQY`r3^`T2(*Msv&*h!{gCVl7zvl%P} z7??FO4DfnYBe5D32*geXG0i!$yDYdTr44ZiV16lcN^RuboO8`D;eSB(Kc8a^f+>B& zl<0V%WWLG9?zN-b7Z}cQP?S@889#H=T=R;B_Q(LOCSBaGQ&B7P&uW@YX_@b$WnHJ! zM8y$h;)RY*Mri0*ZQ`vMrYJ4MN4TgK0iH!Nl;qH);Pj}?II)m4@PILaN-to}eZ@Rt z8#$`*=<5cdJn2IMSTbrxR4CgS5Y)h zeT_m1ZULxE8*f5%O(o6`TGl(fwgISQg|K;{3baQxTy4X%J&qdh(~iFM70mo&y$Z8% zea%HHj!POjGYXLfR98Hw&qiZ7^bI`yD6j z*8!DrS1k?vqBHMRQ%%{P(a|kJn3Qo^&1|d>0+w3d0H9}zWemZG#WtO>IuYtxYB+C5 zst&!R1)D0p>#5y1+HqAqT0b&F#dGAwyIquosg#>rGD!e&UcHCQgr+LdYi6Ty$26~9 zw;LF*Tu{x6hBY9`rpWY31Zn~6R@-Z(@f=sR>+oRN%nrk3SgU{|FD!?U%JvIR6$QLCj_XdKxr)L?~lRoTsu57YyJXpzY#O-7Zd2Y0-?i>;^#aiwV zW7GK3%ZpQzK+SWcqNsZ-TYR?M1$pjs#%TNNNdn|A2A0Qa+x=B3#jT@I2BKNffKqC= zG>;UZ73Vyfy-REie4c8vs#=34dk<>o_>4}hoRKD)`5vYe-2#;W9MTIoO1goZRg%&J zv=*yibf{>P*}}W1i-`8Az!m8K0CooyE#=VVb56zYxzulFv31g5`ZJvLuUp+t4&0DMd(6w4&@d7YY6~M>1Zc3d%nNdHP)lJVlE86_ zW2er6kRFDdJWA1=e&W(^)mlL{qm9n3vN50^1 z2ad+NCW~smN{j(ZFLb4a%f^5e=9p<$J3tM^Uj`qN__15GJ4h9Jb*-)>FsLJeS|rK{ z=dD4i+#!VE_O6#(G8bKIK3lNeO0MpWcx|j3C&5NY4Y4(M$)O;4(jt| zIZ9NDqQiST!(kc%cQ+^S{{VW%n>hn(ed01|d%IsT`5*!56{)sZfGT;aWS1AO1ImWh zasrurWK$%UAZ;H(RhxO3J~{TQ4U^$UMkvO1N{!kEl=_WIEd2+HE+VHGG*AF0bJm_O zW@x7BmdvLh;80eu@_L%F>bo+1sW+Iac8(9lESgLqQG%+w`t+^L4{?x)aa&r%WFWWQ z>rNwa6l0(#^r}bI*sn!uT|MDoTC!CUaA}qG$~Hor^GPqH+nkDoqZKU&vJ04z$u&;# zmZ-W_goy#oGbPXJweK8@+<(EA{&>U=aKx4 zQoKQVYpzLcacF|e_E+&;7MV>)FIAP6W9%)4}b+t7OooMiyRE&=~lHAktDe`%YTSA-B_?4 zSCDFtZ+R_+^F_2YT|g&1eJaB(;gZgN_(DbnEYu)ffuzRbG8-78{l%jfaHZ@G_H!D@ z21386GM=dZ>U$pD>YAD-*<}q7X>HdaK`A8L=lDnZYQ+@Mq1hu~cE=d}ds9OMcXp-s zC}ilzobisdl8Tt{lYLpG(w)7pWo`)W}9xCv4pG&rRRXt9~Jt zdkd^g`=f4n2LvB)@vH_*?X@MUtM*{t3tPI-a&sw@qkAkW@0G z4&P6Xhw!d{t7_LG8DTIPA^!li<`c^MbKC>a{uJ}Vy4z}2jc0b{q$=J^xb^N)lB|0i zetl>Q`>5g{X@)hHEERa<;4+?|{{YSnK3Q@~NQNl!mlh(?L6&5O>}ENiZsF5+$o|~b zt5NVf$!@0GYupqjHD=;L><_r@?^UY}V&2DBpKM6_0Hi=$zkKVl)=`iKKa1G^0H|_0 z)z-trL+qCpQ@oN0#xhT@W;2nFtU8}@$f@H{lxjutxyD?gRCGptKT$~T7~4(v1f8R9 z#Qb(N+x$}g!Yjyj6+|pbA@r#3SK^WC_s@6YCu_n?YS~#fjI#D@eD$k!{Bdcv_VUdi zp9I{OCqI|r+M^h>p878-rq!;%d?#SH_X9fqpy;L`vSRzI;zug%2;;Ym6irU`lNVYpdP77_p>Dbbh*DoWx2{d6&cDk|r z^G>g{nCFE`B87Y$1KY3RNb)(Whk@2L2D$koi(RvlRgJc=em#5wv<9zaU~fLmZ-nxq zHvyOEf1$0eG$=}_U{Q}DNjwTN-p)v^g0zTPaf6JUdmoC?rN_97H0c)Ltns>u zfx&eJdH(=X_B41AT+GaHvkq7eGJY#zZc7(LSng0{j?BN*e<~8?j^a=im#Q}I{?$(e z>>^b=_Q}Mfqk+SL{b_EgBvUMF_p!+&Vwzg{v)YLmtCQI9RQ~`^>f3hN|@hpUV*vA5vS_%_;XiVxD@?{asL2OZ=aq>`gNeJZq`O24%S|) z-m`dGRYiTJN3!6bttX2K*L{ z?0tn@cL@d$2DtNjSjeli2Hl5zp0rd_g~z=yy0gj8Ui7)`*-t}UpE11;Lu)-jR~bCh zL3jw@)lpQT%`vr*kOgIxtr?-CT#ez6PL$5V;XweJuDK+8Vu-Vmw{@}#5{3R#%Nf(d(jDz zRg0q&u?-%25lHoTat;XQoB5QtQ{_m_X|*ITOsYvM$0i9NiYD6cErMt}_a1v^sG$;H zR%?zet&GcDZX5tQ*QJ9X75mg4nJ737Pa=piWOG-OQbMHAs3}(^au7^$vTW=jei zg1IM}TcL~_qCWR}og`A8uJi#OqEAZ7xCbQhOr5QOFrW>PXv<^-07WQiuyPGBu(@5s zCZ!!nEHY~~WzH!UrKjW_wQ5-v*AxxZL5amuaq@tUX{uT6CnA$H9$ORG*GSZ~)s{1n z&swGHHm2Jnw`!Yi9h$6I2**7Q1#kfbip2A}f-rcX{@l)nkepy zm`I|6y_6uuX(|@Y2ndIouj_LRU><0TtKF>H}XvyDV%_2}|PlH`YLGs?*WQ^mQ=Gr!$ zm{wLkuWxF1Z>v3on+{5Q*E|%XC6Y@)yV5!f+J|g|k?l)0t2J9sZ(C z;})%k2E8~!5?qP4?v7Ec6CKm-fJ0u%gT<_*z$6X0;!3$8-pA~DW!Io?y~1SO--z^P)#a; z;DQAvXqxwTME1`RfW zgpuwhqm~`bp4DE}f{MlBlv9dBG8r6#IL%yj3u4M}DH~hulQ`zNvfa}ftX*#aSLAb= ze`bKjG1h|nI~D~+Hnl>D&w8A7Edr<-%h4<=BB#Q|qHHz1z%bkiq7pl~V}y#UbM9%%X^SeBD~!+*+6#9hG_r$xW^%JIL9heV(a}gx9q3^$BIC7aZniLL zR~CYYmZabl){K%;6B*)>L3}aS6(PJ0pH@d|9MaGolHEkp5;-{iXjRjFK)5;fr#4t{ z4<9^NuiQqZfUEFLShmbs!m-8&aZB|!byK$>9`&?Zk|^f{j?^vO?R40FhxkWIGOjuT zLUx#}gaf$zbggGrop~gmVN86Oz|PTC-x=#`p=nO`;641HtO!4c-Os@ObVq--%eU z9azTS%ad5pAV$9m%ao1`I~;+GfPb0%>7R!!BC)%))L4aunn+>Xakv%0KU`wO-B9l^r+S!K10!I8sNAu}UuWpeQ!#4r2 zRCmTJlIeP$%jk@3OS33E_UZkq>owHxFPSJg+#3V=S5_>Xt(@6nqe%~L(WLWs5E04a zzd!-}>z11)x76K}1Q^X*(itr>`qL6{{ZS!*!*-f$Hf{O>M=)kV>xEVB!CPySGXO>?mLQ4 zYXCYt(B15o(HUJOiy}xp-4ApJs`jXDOz8Bu8hEn)*7n6+BT}Fi47>n8iBGmT$nB7O zRS~SEm57JTbV7WxanHf_Zr;bOU-f+%uB@ZFwPY6{fiISS?j59V1EI*z*QEoZXoAw^ zWn5vG1y~$>aqU7_`AXUZa`BBODUK_fOIv&RQNqRpi4>dwIKdwr{NtJ3g(jGEuFBJIO&#zw9cx=GKCTMbr>NY4-T3 zG_5SpV-3Z=;;ajKdD`!RoD6>#2M77mn~xA)GJT)S^P!4e(HT%H?a$pl-_X&NIL4oo zLQYcF=wor8f7^BS<543P=oqemJePo2fMm+dFHwS))O*cdp<;>_&O1 z^;v8*`}o$%IU{O5&!X6{p>ssO5QDAv9~~Div9ex6Mak;t5jhM|B#KcyE3xr3LF7)DgHS zt-&jdjQiE1^GijtTeJ+U6M0ZGk8_V|XwGeNkAWqQ3Dmrfbv+8&=zXa&p@v9Noc{oN zn@hX4dw(K1GO5Czybt9<_)}AgYXfXpZ$q4C@;v_lN}p2Gl30ZH&`I{_&gFRJKuP%r z8LpVpT;OueJNa`Ms7a(K=OecOoY2l;RVs%vZpPLet~(s^DzZF7Ew#yl{uj5Mda0)K z-`icXpHP^n$pf#`vHDdbmNMv^u}V7%m7>^ELg?%2Qk_uyim$By0BO6L8L+bEa;gY$dXAvb`Y@HfTTER#^$3uZIWbM{J&(N(w=qad zNiNn0la41bT#5*LAezkXz+C3N6`aU&REmA2s!Pei z6yR8^p*R%L!OLKBqL(_lE(py_X&~bi?*9Nz##jthZa~)e2O|Jh;_dJj{9Gy)OevL=*b1mC`2Tll?9#t zB;@y{SNEXg2I7;Zp^3&10P{;1Y{ym8?)S&Z=8Y0`VrrA6>L7qaQ%BW602Uakw?IsJ zc**6Hp0!HXwl+bjueGqDhT&Dq%}h?mnn^xd2)6Dp0U&g$uCFkN5)Ls|d&`AXZh8vm z{w2Kyj?>LcH;ABpMVH!vU_d!FzL{*&<=Z6ERX$|HzG~y7L;@(O<&Ow@dnYK^RjdbQ zNX{!4aTi=;7^f=`5sY;;9G1j@*sm((%b_??S(4QC$2IS>otPBfX!fzlsBi(UtXUfj zRRAmu%02p2ZKo60IHyoXtV!afDyOCmbw&-l8;zBtV$mF-ITYtey^<#Z&q|)+H5}tK zzG%vvrxm3ZwjY*V?R8=0j%Y1YR0I~yQ;w+C!ws5Md#t?5RWb!iSm%>SRf*X0O<2t% zfOs9~dF}&@=bUD%X)A`v%}X5by9TNM0I$VT4AE%N?g*bb?_D29xC|D#4UNHx{i^Tb z{Y_a{Ey$q-#!WMxtm+d)^SL336{I%KvhkiNjiNH}!-1jF?Oy0K#5;EeUGwwm5peD$Xq zmCP|ooQxV&uU00 z#k6K8@dU%oAa|wEwmGQoq%+)~Y}Q;{yfL2~PXMac>y@|!uR+>k(~G8E^U5zsSnO68*yT1&_uIjb#%%9}|QR#CK!Qz)(o zP$=P_76QR8q5vzJg(uw!lesjGSqYU?WbQbl-S#YN&<@pim9gTG`$|o+ZzS_pIHX3~ z&wiAHPQi$K;-;G5!_T#LVv>wW$y+T^q)QPjM>Sd33}wo$KC~42*-?PU^QCte&ocr~ z6h0$7cyUIA9h0dDbCHovw9P}-GIwu0rixZNZ$ zdfo!~Qa=Gtw7YM#72lF7t*2YGlJqrx(qZ!ALPt)u(G_fTJJYoIV@&NCqt-EzjNnq_ zy7Kua85I@Ar{%!sHPelzEUYHw(res*1Y?h_4Sza`)qSXIDNAyBILZ3b?M`#&N>jI<*_tiD?l&&6u@j1B_<@F;CY>yidqmHDqH$H1u0 zb)k|O-RjZW+q|=!A`G7A=mm4X7F@|blc-)^U{4?$ls6Hl@Ss1APq`+ac(Up}KFSne zT4~Sj)C`=C{{V+ILAzNsxrKx*t!o3BZV5OnsxyzNAI`e4MMgH(-$q-1LaQ9!U8TG4 zMUvn&U}Kd=ZM(l7YCFYAV~*a)gfcKL-GK}TKb>ao+wIqI#{vbNmPzDA7!jyGkUs%H zH1b%!&)tT&gh)y5OJonmqZP;UI$OTG8|l#9YFbtKS0>)Xt04Mh{{SKS(s*wj=V?%} z^US*tb;$q5!CJ5!!x48^?{#Dfoap>ff`8}2^c@?y%pK&M448->&=DCga@1L$> zGTg`)IqpqgbnCJH6AXi2jB|{Farjos`X3jP_L3Bt z?bzg?!5PjDIjZ&To3Du?z#nGvNpMG9%t!MXskED?x{vLW5xPs2bM6CYkERHwRyQqu z46;cPRtvR*b|8>(@Osr%NS)K6#hj|Exf~YHAo16&6D;Uei@A&ugS_nr=);fBsxsY4 zYavI=^Tv9bX{74HGbCc>C3haHYrncd_C0Wa8p>;?7Z=(g)GqI!)GisOD{?K&k(^;A zE1th3bYX%Bs_llob|iJVm^5?xOp;&}n;BL(q!FK5@~861{HS^L2fQmJ=mcXC z?t&TuH^YJ6Ka!>0!%nbkBsM%KX+%KHlxp_(ItJfy8& zH8^c1w@Kk|`h~%fHWBGP^V8y!HvKiw_#Hl8;~Q-$?(_ku#Wpq{S?Dp+wYt%6t!;kN z(YTLpRnz#C_a5W1_NlZDTHe=3)UBRC6`&F#hsIwx$HC}-I=c8nR)YTkN^3}EPqYq1 za}P^obON+t3G1grPbNrjwPioTTFPnHL9XEQAq)sAGQ<0iih1J8YYVyU?`)3aI6H!= zAc5cDjP$CnhzwEcmvJm#W|AiV0Jqa_I^*B#MEG9mB%5*b4AG6lZy|?#kLybbIWLzX z$13}30`M8N(vT{lSc8`8KRg+Ee1-y_+3#>q3 z&V;s$fBik9O zuA3{{>S)SYA2}F1bNKsH&lD(o5r1VILh3RZoiMD!Jmdp|`Bd>-BgsCBWomL!Yp`z{ z+Osqgq$}l;PV^q4J9QbM^ou#Q3rB8;r7l;dLFI9e3g}g({h&hd-zoFs9Xf9L`TCE>kFk4sWC55) z$BnGm4e?UVEG-$gDC+3h8`~s(4J(We80C4{R z#GeGx+pUq$3Cj){yeSg1dS*&R=-$)tu#c~EWX9w~3qIO2=9baxhJAlJ4$oH&D(uYN4 zjoY+}cwzkw7qb;hy(U;E1*KU70zHmuPd?{Nn$gh-iCZu3JAPElR=1L3C4&hsMg(;~ z-j^ioyQ7(QJC1t@b00GeYSY&-DwY+6q14uNhl(>Y%r_~S~d>TF?asd^@ z)jA1y@a_Kq?$;;lSDSl~@c~??N|EDi0Ct+TT51l8H&x*@l>wsFI95VB)jwXhZ(FFR zuwQRZPc;qldC7n}*2x}m0(8n{z2imKAc|{isAr#gA5hbQW3*t@5u;mxFj_9x7+=>cf$B)jee_>aT9OTmb%OewD4AMBe zHH%@CM58@@s~0!nBW7m6#b)X~hk?#IQhUoeFHYQ$J*i}y(nF?!ZuL(vkd4WqV7v8T zoYN@0IQawu2%_WAHn7~h`_YUV6qirCbwCj2io3pagpy8cYb`CJZb8LMe`W*?k;W)Z zXvm`Kn$*iXA#OU>mfDu}$YM<{@lts=Dn~=!gVQp_hH4m_qcP?E@kBX2MNst{hMGpt z&2&Lvw-%v~wNrdWqrIHP)0mr|rBSXkPC)tz?8omjR{b5x$K^=0n_bVy?^hi%$OXnZ zrJU8!E`#EboB}waWN$_VYj12-@Oo6TL$r!s5tr%+(w`i(wy7^FaV(L zAoTR8{{ZWD&}dB8UQZdU!*(2GPR%VQ&k)E||)!1xo8m+u-GlB;-CFy2; z5XKJLnHP~#eVvj$%rRI)&q@+!Jc&||({5e~h7JaO=mGb>D43Jtqa&RypHDpShU;F3 zQ;i%A*{Wn07oKS{a5K`H+rnoXi(-n+Hqwfw!}7PX!Khv=k@`B)+b3x*Hm5o2X??@U z(uiUuk8(Rzo5R*?3Icg!$)e=*PlEB=_8u@xNX^x|hz8!Y8ap880M)MI6?l45c`a3# zf-3p3B$GuHQ36foS}k5(A; zrU-WcR+&o0WQ@e}38|9d*>;wpi9F(>-pbh(y8z+@RUwZg`_^t%rCq7kl{M+w25Fv` zaUKD4l6~rRx(|SFCF13(O~eY9P?Q|t^q`=WJ8jQXijG*Q%8(G_O+w==dh<-TV?%IZn)T3NV0 zBQ2M<*s$P{NU!Aqh~pGE)XTzorI$B8V|DBENuFud857FujEYfnAr3$^M6)*2%`28n zzH`=+?NN#ZwI~*nHP2kNDQDaKsQW1ui782RW(X1k|2KbOylnxkYNZ;;ye&vW;P1_JW6dQBHEcRf zUTFr#ClwfWl;w>EiZjhKw1^cPRAnhi?S_brxnW*gP0T%oHAuipp3*erk?~p>-Gw48 zHU)))5y_`f-Hn?=U{cnJw|Ylfmf8}M65T7M+FCY)=A7*$1CltTvQGCmYX~F-<*D7o ziji&@=}R<=e=_1pPjgx~X%2@rfuo6;js`fOW;Ojsl7f>g!+%0ncR=BD2W( zZhk4_4mw5-p5fKc*-Rb4q(_ zNiO7eEZ{Q_VtOys_4;GpqtmpBH0@7MmidB0L7qVTZ99D<9mzPr>s_&PO)id(FyaX= zs4evkR$F8(6UNZ1w+9&7IPJ|dYiM;}6S5CXcDA7H{{S}F)Q{&##Gh)@qtnD;W|Hl8 zzCQA|9McPF*2}~U!OJbkctKHtwUYxMh^1Tapvzr$7pq*wrt01y7X3sKl)>l;U+Yy1 z1HV*=02zG2Cp`$D0_IG)<~pQ1s*J`AFBTVEYm%*ZShA! ziB@O>=O#~Cz{h-l{V%f;bTSa(PPpJK9M}IIX4Nl zwy$*@FY>F`hHl{0G+6E(6=h{Ruyc&{&&F$$>4NPpA^SOTB1wQx@gsZJR?u{xuvkQJ zceYv79CB*do1${;SK>+GuqF$bShEe$KW@D<+JT6)@xzf6mhI>wPId<4BR@aRoXoaK zKiKZ_ARzfg$F4td{-I0fuuFS+O_cF@GbvUW%HaP1BSEKjQAssGQcZQFNhAdfmTbl; zAt>HY(9P&Q;`+Y#5?{#@h+hk>(gkl*VJg{H5Pq|*lxZr;(NRL7EWji7t0n=6kB>Kc4|TI)~Sa}#tg7$7kE zu756SqSq}OTw0U6qao{`WAwqrKk-F_eZA$k%v1W|mmDc#Gx;){(rZl;;#o{{9k1o) zH_kxXdK2ya=_PWP)U0Hq9?NE{ZyoM~YjY7IQEoC9__mIpTxb6P;T1%T%F+>nNIY@D zHEFw^_S)Lt$Z(sN%@MaCFya3IA~WZaB zx3-!!FBhwEP2p3yBdHiX;;P!+tX6l|2$6slgGLpDDN+I8jh9QCC3-fow7=0;?WXyhnILJ0jSEv$tPsxs(L-N$OWJ%lf# zO?zQD5j-q>sieUqb`8+u9S#j{Jon`d&xX7)&W8hPPS;b!(W9}cO@2Fd)?1M82(w~=Bu6=(!weG zYNE>Hxx&f^>7V@3HPs9}?d3?mwZ|jmANWP5k9T<00*!$BD4of7uD@!W0k(`Bi*LyEx=|9YL_BB}77AdZiWy{YQCv?YxFE-WT{e8n^>N=Sf(kuk^x zdLM#6Dnp=ZQ;YJqGDy)o5?nC^6W=|#tL2>0y|ew6Wh)^kAa(ZR93R4fgGq+oZ#pQ+ z!6nr7AoV{q&l7S^EJc+h(?YYTU0Q0MMx`R$2lYj8hXsalh8>8bZ>0}EELr;G9=|p1 zM^B9228v0fbyCmpGarL7cQCmX!SmbDN*WE z?UT^d5=4$fv3=I$t}&BPol$O|5h(+KwT23xgHyvM*{~1-Mh6@pdJkbCcp1)H1#^&k z5&r-^sXnO#$X;|sG3RWc4&L=-jnR>VFlfgN2T?*r8MmL!Kv_w{XOV;NNhM)LdqyH1 zO+i1qViW0})zK_;#V8IkerlDg>7u~Lb!@-%a{#>^y5`&fTy-?*&@tp-Q1=lo-J+o=j+t4K zITx=|YYG{8KGe$MFw&2Y)`gS|RJja5AB<<3)=4(hGqxKdgf7I2HUW%M9zE#D!EU{2 zTm<#@qvDk0XWE6BHaN#xIu#il^`#=?X`*eXW?{`TU}&@0#)NatX71WHRyd%nXDf`F zVDl`CfmCkL5mvmj+aom#1S%xKr}wc21l4Z&n%Z6u8L0B(Lv~tp=wfg;0nIc201b(N zI2BFPb(KZ|k2Pbp)fPn?TB_!xfk98Fs)9hsq*}xq5RvzB(ySkB1$u)^bs`-OFhxdB z*e4nBjj@(OP;@!PS2X!dHware=xeEKT5?Ue;|8d=`b3LxO0OBIMlLKjW7{d07*pwL z7g&X6jiV!QBZ`8?-gwt(=|xVjvkow7nO(w|zf>Z!wGlqtV2ZWr>ZUa#0E$KqC**u| zrgn1eZVwgWOEjS?BB5G$xS&lM)IWLj~N(9q#0{w{vd*-sju36LGAw z4rnc5-Er>CUe&`PNCs=q=f8@Q%GCMMcd6f zvYjS~2k*sIH2WSIIUG}0@cY}&N-hOQ1P>Bnhc(uM$X40wK@E1TILI7&y&l2w96EML)`ESOxbCRDw9D(p{~b z*4He08XS;L1xmJHp*NY+nw}6wJJ_(0qw0U9 z4FpR7Jmt?*M(VPqy5JnQy(x-sG4ocHDN#vimgUJ(N#ps@P(SZY8zOHUP_1VuY^XT* zrO1=$M#eVF<{oK;cKF6PpfuEFU>`L0Gz4SXqsK;M5n%xakAV_I1kg_#sGUT`Z6Bu%C-SUb-^Xp}h;DWr1xKdXNq0DVl5yAy?1WTR5|anA z(%Nv+Nx(gQ%|oiJR*Qug6=}VZEg{(m0kKq_S{Y}Ql1cY8nbJ|D2s?Jb5_X<&I|IO` zDnj)Fg|xTwvQG!x)RM}GPUjp~6qAf}R>|IMfu7Z?T_E@Ws@6J0+Fy=l<76(J6>ZT8JWPPcufB9qT(n~>)ujQkG%^oPWni)uI5aM{2lp4lDD zxX#0j79ULDe349UC%XRt8=6~8JmhUG!|t4M`1ky&J&nR>8b+x%oRVH#O0YY>PQ3mZ zB%l5@+mYSZ>S!vj=m(*9SBivuKYsNN^-`ggj;-BbKlT1^gJbH$@ z^Ia$e1W*qnt`G90vlMxzh~xK8;YVOHdQ-cLXHg-vbykJMOb1fA$YJ@?=CCUj%(IYW zcznd$-?99uUnZy)ld+$UcMT^?nG_^yp$HuZ98jJOooBn1C2T9kO8y+yz9Q8ky3us# zr35iRNF6c;DPDvox0W}AkQXXQ8OA{$)~ed(nJcJKZoQ5t4Y)8KSD1aq2?TzW4vD3! zUWlem@GM!Ec*q;QTzsxUuT3*Z-i)&<1KjzTf+ zdK!V5Sp7wIdE(emYhF-gVKj&(1p;^Z~ z6Sc7{!-ltGfapgnpX6&>T~0fT2_u>%0r49aIT`F2_V{kcgH`K0$+X==a)JU93UtTC zMJT7D+@&Nqn^vAR5-YUOZCF&x+$r3-KHw5Qgo?DsBzGPfNux!`!BjmI{nEcf)A1EW zz6)_YjbrM9K7KWjh7MzXq>ikKg*Ncb^Iv9#73U(LOpuj<<&1HjxCXy2*x^NkLg*`9wq+(zaT|l zSFfQz*Xiw78%S-gBf6alWO7nb?Ah!2*FU^hu)mhxU>GA{?L9}hq?B5w7)?vl>|J!N zPSVR+kI3fAQIJ%B*pT}lW9>}aMTb$Hu3jkonGQ=pHsF7oZ@1E`*7nU~qP{4tmDLw)5?{ecy)s@+y#$i{mg#Hn~T#En3%2w!288aV&$Y zDI0JO2ybIdWzuc#^y4ho!rh&Mg)9J*1Jk&4E%V-y+(RAqzdVldw9deg>SNCwh6~Y# zIU|GCin_9GO7z1Fk{!J5kYuhtM_xOMnu>Ok?58HG**1j`lI;v7@E;2zV+4-b?cS|A z){4;D$$bL7>Y)aBl`zqd^I?BHjCpm@Jwt$`W*Kj#Bo-w7sT@fe>zhf z=mYtH;5Ymf_}puY(*{L5 z_#=bQ$9h3DR~nA1B=SWB9%}|wRq~bca5m$NoOkMewQbVgEiOxFWOKFnS8NO(>PKQI zLA$AR8KqYhvdJ1l6^udxR23oU4E`2YfK#kI4L2RO0K>aY9P{MQ_3$Aa!ph z=r~>c$TNk{xa>Y^%HATiySi9b;yH%=GH$~m?hm*hL)k|Z00Zs9=W6V#4<{{RZ zrfX(Z9UV%vWqoSHjC8^Iq3`1nT{3_~E$Tpf4%jqYjFys_U~D7c4m}~e2KGHiw-q1) z;wDmoaC3qDBc*Q44Q9-)8OnwO)N#f={*-0Y%%l}#@3$lHKT6gMcM)bOK$<>d2ch?0 z#=Ng-aTk^g1_K5${21z2`hh`(8pkY-!O(*L0LC-aQ>$f5$Z)_W2SLVazilC6xo^5~ z7>=~sIYcr9mDyE~1r9l&f@Q+nhqj$V+DVYeM;Q03mxGU!q{jmt-cO-h-FtqOOTQ}F z26-C;sUXze7S;`=_t__4Ba`l)--Rnz(V5e-2+tHH$j?DhLvfWEJXX&rBQ+)fW*cim zFKWcH5ua)fSxGn*FcU~a^fd{HsN=0~YBTq!=S5h~aA~VnVLZbWw&q{~_omk)lS!`A zsjhil4yau_oRdMzAv_MXG|i0AxX&h`5r`&C)C(S46l;ufd7<60(wTtXH9ZAxO97Ey zg|I$NO|%rPMg`nJIioFQ+Cj|+KN-bC9IUPeYbQ($wLx$KjGk!wd4cNHREly)B+)5- zw<9$CkSMaxDup#))OJabd(c;!zm^X<6fM2znetETT-jyG(ivzH;?3in6(7`% z5^^gDQHMO#iWLr5rBez?Y!Vs^f`dD&QF*+OdQ$gd%f(=NR~_m2?!`>r@qFSypkGcd zFw399i;1#uPa>Vz!m=oA4wam5Lnc+%Ou^_XE4?%nDn~VPp2#mCaX`;(C{?OvXE)UC z8W%VeHK8G@=c!o-Cydew>^!$61$dtkf>63viOxH;Nd)8p&ouJFaLOvIT%qQfY4;^@ zo|PYjgZY)<&uF^asMrZKPSAa+1-F*1|7J@&zNf+rJHpo$mt% zY~WJKB{Ivwu6d_wgFy!b0Z?3FV>RO33W`?TF;kXCDl0mqWt@>&(57PL2;>}5+Ja;f z1rMb}!s9rtf?l%lmWze5Z-@h0-dc|!@mpCENcvQl@_H+;BhfioL)NXrhrp#4appn! zRfk=1hNT)*d*$i*R~{e5PpdLpJ0_86uu2|W842%J3yYGFWDb<3(Heb0k3`QEV3ri} za7K8m{3b3J7?YZ(MPv8ZmsvtW(`b@N6b`lMq=G3nl?ro3$t-(8$lKSNql3oVmt&^a zWQuUK!>JGDdsTD9$8N z$2BFknvpjAR?@@^f;$=u8{1}-;-yuf=-}L^J*qipHoPgR;*~<@z9}}TDf2<MygFww}Sl|kM z9C=Oo8*4{IB$dTkWl~f`-`k} zX1c)aO%ZpX$pFf(aZhwtSa@(M&Hn&TJUJwE?@@*%^!pD-DY=eV{Ur`*X|tYbK*j+* zYpUI8QA*&D2&kmc;wzOyGk%C4~K>kOD-ny}d0 z!cb)}ew2~JPh)nDPTm}r+D*qKR>sm*Qm8Ae-D&YUl0e2PwRL9-J`@bsPs>SY7IUkp zCI=1=wFh%=wmrw%x)sipCK(G!^*uC42?c9HEjE}ATYc%2$7m^cq4#QdPSIw#Qm|^B7{RUuGUi<0R5eA`udXlkXGK ztrn_eQGiZ+)v=&S74{n>>5LjaE3i;);-|c{Q6U9Q0?_R~o&c#%4lS^)bWGPLc1B71 z*0Z^gZmm^1U{;b78NtnSxwL0&fX%rzC5#O4mBSWHSZG>^4_p4@!Zx+=o2TH6N2I%ob!K$<^g*;aI zoF76eF)OS)NjXF2AIFe_aZQRx*H?`XH06GLh1^CtU)oO{-{+L;aI z!T1UzUAS0N%D3f@dRYy)w?ib%H=cOwMmo|NDno5DC0NY23=E7r(K2gG0)>qFhZRHBKw+uB+@$gOhH=PROm^Kx3$uGjzSKb_ z)*pVA&NchMH4R4QEGExF7UTd4Imf?W%DN7teRUEwWkeX9AUkeQ?e#1AJdeMj&Dfz%*QjzB;Kt-2VV7A1TEd62_L=@3&^Q@sO9xZfDFZ)4$gJqL={yEcPVx&l9l375r39LM zShA99k`Ud7k)w^IRtX+duRI*KDW-=iz08or7%Z4M{5kza399MxT25aWjsEE!x&YHa zEWgoOF~y9xJmwwSi1s)*{{Z|=Wv4<*Xk)6}ED@m?49qysAb-I{$8(fY2_TNuSJoys zH)2#_v&$PvKN-j8nq{Nh39T1<0L#bD4bAJk@KE^`-rEO zO#&&f8oEh1x+T#l#Og+WI|EFMjLbW?0v-tJgC=2WQ)p_j2!eopKs+;OdiaF z2zZ-@L(zqAx-0U#gDlI?=Q;lXe#hVIL9Yf{RtsxpL^BnUqG9SIpRuA^QVj)mW?U#m6X$ccP5z?qh#8~+p*4bkL^Y2n#HxWWK9DZl$AzR83P;>@6I@; zi5;D-)A_6ABcCoskaHV<2|ow&Kb=7)oR{Ul!=qM~G0b?zanuif^t@!c9ZD~;r-o#( zzK1suEEBArWMVQv$mHYP4!G(*l<{x0m%EAD?lpHI5x3(F*pfRQ#<}ghGd!zp5NOLV z9Den{u1&|<4v#=UcAsLgL4 z-zWg8&X{a=J$d*v@=89bc@izP#vTTmwSs9Dl1i}2AY|LT^0?rC{6EOmI_pxJS)*ws zE>jAmo`dUG-7@}J^u+;G#^Y-iIag!U75DmnMypr41Xi~VG0Q`rQ2W6F=t2JgFJtUQ zE@*j=Lt)EKr`Y35@ea!f<&=U~i2?MUJ^LT82CidRw|FD+ozh7_#uw7Z>-S0gzLm#s z&sz(0jAo<U_du3Aarcw{aM!p9hK(bV=~?l@p- z!J@sy0zb4i_8fnyGw%aPl7-V6OTJ!Or zr)D2RK`uKPyD@!nELTplY;Q0Ijzk+)P)`AeW5?zxo|ABb6)~|=IT`+6?MUromgeDY z%NBpWfR0#q$GQ0H#Ssmw#}I4`IUs~Qk?uY|J9hR30hUiP3%DHsQzGOHaNHd2gY4PV;Mg< zrgO==Ys5oD*d+I@;KVb@mB>)U_s>dEa{P=E7#ykgG=1}8RuPTK(Ek7sA3Sm?e6ceC zNbAl=B9)Ab=7p@XC;>h>N?U* zc@cz4S-Nzn)+~`*?%Fx#wpJPAtxC3HSYq4FW?43lwSd_e=~!hZv-$uP$z#Z%FOVu4 zZeuv5`hwwkq-u~#t>FQ{q0R;{c&W7!iF4k7k%%3|L!yMTOTqT2itgl4#zN0Tqa2Dx zVrZ0%d(k8iF;OdkYj%`llUnTr8s#`X^c+ar@^jXWcFF5oMHWRAD`^m5jP|IRj!6_v z%9RuvKd6q?k*pfxEyR;S2J&AZ^rmw#5uEm=H*5gN?^BvqVXc+;Ba=?82cO72YK;W` zTj!ir$3dJBxjYe6#FGPKWwtS|CWX3Sfcw*T0irzpDHX|Qb_8%LlXU3{fs*8`;GUIh z(Wgeh7^+;$f=T=-u8(w69Gr?s>Fi?i+gd&_X?4tCeJfb6eHqU+4A&u!NuepE!jL7+ zxFe2fMa`dlQ+Jas!Q!+kAFT$HMxvv6Vh&C)X*BZ5YI+j2eYmy^r;0^?VUSMT)D{TE z@`zIR5yh;kFW#;H0K}Se>1I4vRQz2O6psw30PsLVl(D7wAT+f)_ zHLigeG7RUfZL8s=U^?<^Is*?dd*-;XJ+I7pc6HlJ#D$JK)B9O|(H36@f;qb>s5l3qSU+aQ;M3TZ!GAsK(>v!E+Rou6Zgt zQfV!vGUK*uXNIY0*yPr%U305X96?oB4{Do6)MS~6l=MAm#QI{JVsXwX6{ViS%nNnt zT+am4QfzgW(;QqB#&-uZ6+S<4mkISf^iCQN>oBBH8z=Yh)Jh zzsv+4$F&E|Q$f=$?8sXnfkUREVw=lixa~=P((Jh1nhtqR{{T=q_otlhAgX23d!yxU zT%3+-r++-Yd0-ARM`?H9sES7VX0_F!1Q(B$JYtnTXe5@GD8X{WC#`1gG@VNA6<%j$ z1Pp==6>EIJjpm+HqzV^mnhn9j`XbAhMdSoKo$JhRR*R59;pdP21bE;eUgtuWqG(iw;9O9#r6|_-G#J5nW&P7LMYv#%b zUIEQCmfy~CoR4~8X=Jd#NFJkHvE_6GD=5t%3BU&*?^dl60`aNMD}n*Ik~{HMJr!0y z4@#^udewqVgHp9AFyl0=+h%S@TC{27QZ(a7{=pC1M&+Ks^UjSdI@fQb^HG7rCt9G!wGPV>5l8J-(2m z28O)VS~uAq;>WEWA%@P>D-by6-j-X#9JdWDql4EqR~{?sQ7Tq%X0lwkc^3fmsdZ=> zq4ML}v_0+lMiE+qTi%V+p_!CD!Nz);NVb9XVv8*!3=1R3`S!&%lFQ4CA1xG*erc$g z6k!MZ(3j4|8`_$_nbWn&mWT2-gttSk`#%~&l{?J8OMG}xohUQGSivKRzN zT3iIQkPx1_+rj&)baR$-=y=aKfKBJH6Rl@x)#GTqS@bpR}j|7HD z@(*#il5_LUe;SHeZ7lDcV_=FiEV(%#WRO1`W|?WRD%{F*=mT~$j(~Ces)OQt*Z%<2 z7x?vqlpyr!{j>SiXD$&!L35KXUL4fJ!#uZ+yWQSGqxd)+AD>!}&Vlgbrq#G(lQqQo z$0XxwFX~v*Js!?mSe{8`KW1hM#BzDs&G_V~rN81*Y4hpvAR%J7d6)ysBd{a%6pC(@ z_!>zz=xwRpiS>PA+CsaM*~B5a=OZ9|@PAsa=vSX-o>z9-q+pNfQBLy9c+(%egsyYR z$vuAxD@@Z()s@`qg37zFI}mDC+tBSL9hMIe{`dpwSg&p^?W|>vVg~5?6V(3z%+)6nTHUvi{{Xg2M$6wE=AM1pCk1h7l4_RkZ#?lx zAIVddU^xSi<^3pYS#~=hbq$<+H~b(Pa|PO6d5JSNT}wuK{vS{6NV1-00^s8~KGZFE zGPbFWyy=8Qh9e*l+2vSs`f@&omXjQp48Ux1LoYoky`uvGWaJgY0yB~C_00w>MAJDg z5nBombaTkh$M+O$Na>m?PZ}^i18!f8^T*U@@}`z@x*`STT|lL`mlMTgvC5c{2phea zbNP4t>wOyPIUzC2jolOjgZO;YEo{wd$@OR(>`wd@L)6k3CwQiet~nx}E&KVC$8{F_ zNfTt@N98K~`-(%b#2E+-6^&3_lTr^`md^oo(7Hfg1w08{HkQsBzuj=4ZDMZ`qLX5r5P6rpza6{b#BMx9-oaO zv{kT1)8=rdCp$c=K*d&kA-{kgS zeYwZsT;oYuVw_D9oPpE)!`h{}dyDI_EQ&zrfSiCknVBMAPI=l1 z&H?tRt?p!41+rt4!x8V)AC8}h&2Duo4;zgg9?V+a%+onRHt$-JIU%vh{{S!}8Sjx$ zYxT2+c?2hFo#U=J z8@=(^`x@UfUsEV-y66|zGr>IX>p4=s>ki)p@$xFOuB`Vuij{@HU{O`Ezk|p= z=i9z2+2QG-wYH8MnN};TkdGq)ym9F#q5j6E*Y5P!vAKn!i6#Uquie=H0KnNFb0?#8 z&m3eLX~N@4niEQP&<}&;b8RGU0|AvKx)Gj?Kdn5xhmuN{MqD@?5)W{F{{WdEHBsj)jfzOTsXug&WAJLY{ZJ#7RK-7Gwo+r08%fM} zDljwHxA|Cm^gRz+n%hT$N#tv|Ro9rDnp*^fCv`@{~vBytWjOfMq)O@<+z zqMWG^6TWu-#i2TjY)0+Vo4bt4QqQ65#|+8qlPQgeElg#C$-roP_QcC z;EJ*MBH+EOw#?aR&PURz@IYde5Z;r{M?>st$Kjy1dcbZ%OgYK!deX^S11@TWwM`rc zB%YK^aj2<^fTE!utWZG~-=#>ZD`y_nuS#$jb-*;L{Elgq@9E}~-W|uOq>>mzc^398 zX>74%o;as-C^-}yvGRDXe3}^wlH6|Kb*as>4%B6=dz|se_ok7;7z}}momvT9F*0&! zXD6K1g6;q_j-6>Vz0~&^JkS#s8P8hVMo2Dc_Y7v1T{$H4TQd?4PDKqc;-uti26+fH<3ZH%n90KmM=8L; zq0&)gt)pQ?FRvdC?AN#3=xO4#0mB8w1$7#pIIIhh2U;3yk(13UdkD7n)HytJNvE_b`-1W+#L}yb z9<{4Nt~zG3jqF~E@SLj!agUnK#Ka-N;*PzsIO$cLO{TWaa#U7%xGH1vv=69Gaz!t+ zy#inf9{^Ok`%95OGnG`Gk~hom)q`6C&ZiT708&=QTj^wn=wP%U(C*D(B&MjK& zOT6;r-4vkXp7qzC9GsNnzb8U`l^;`E-N$eTmUuM{{3^?mI#(+2PmK_uisDh`1Kih5 zw!2&SGKZRcUlGgGF3x#D$7BgSXt)hqMRJNu=cOjp?QWvD0svju;3)4_3vD_b8qi$o z?i%EbtQp{aX_|BNQP&u$B68B)LR%hGBz^beKT3~Iy0wkXtPW+7j(0K7HC)!UiSNM* z#S@@WQD|t<$g*z1Q=HPde7P#$)M&;q=y!kSi@mBgqYmEn9PcDi0Hl^bH2UH==730m zHyeQzwg}Q`Bz92ScpULolJ(qQeG{9LWOllurX!Y&S*@GY2&5XEGY2ZD88h0KNb*2b zhCbNOdPe0PF*;NCmc@*%fH6F3Kd$C9n~> zA;}aKStO6Br+&yTEs1U9kP?ogj`bbPGBbK}kF9TZyI(5V z`d0RG62vh)^v!d&;;0)&w(MiUe2i1;JB7K2X&|uuX+^|a)ZpOK^qOl~_aW$OLVQ@u zV|_y0MA;n=N&*=7Kd9gea3)*JK*JpVhL$3*m9h>;9M@EmYS0>JV{WVE91NUwt#4RG zZZbeE?O1>_I8sRmwMVRst^m)s%?P?i`iX8GNGdren%>sXNTBVgn$l$(WKgGqI#P{F#hICd5kgAVkP{ap0BM!A#>EXw zVvUgDxjyweM(xn^?Oc?sYOwp8lJiDKLI|m+fo6**t|@EV%62dxb*SrmkKM1$JHFU! zR3e=o*5h&l26?71YGA{$o0^+Yhs=ze4mqmp+p|cx&t7QTinJ{c;*n+`^%NcHRA$CK z>sXPZi1KJ#l1uuz=CpPXB=(KCGyMMmDqnWw+yPH*EeqSKpyZBEwrg9RIye(|1WMsPzp?%2JVxw|r1GNV5&@F`s%In|6j)821y-1ITch%})1ZN3}bQbgVRD zU8*@4=qR|Yk~Qa+{RI}Si!Z4@iD+7Hv`>P2FSR(9PTbUba0_dl*d%d7T-=0m3lD4x zXQ-rr!y+oYv8^tqi(xVl6i|(H5)#J>2XjD7TK$2`2**GMGe$9_WWB+z0Jw5V3m$R- z_N<8GkOYZ$AB@pv7@$x#sP`w-XuD^R%k%<%NT=gnj@F25^yWp%#sePZspXoO6+<{5 zjVhMlfx$n8YLc<_I10Y(X`FRbL9iD;{6M7hYJwm_vHB>eQ&21m z5ucK4Jc+SxF&_D`#~{c(d$<+D{84U+tmT_?kz2ENpT?=YlAkDIH1Pa;4Ft>Ndf2?KH_OlU#&cu~$;OucU+dW~9>fD|lzQwuU47A>sx8gVV< zv{#YsRaBLTZQODRJpKx5rQ$fEvAK@s+>bJ3X$q6dgXzcRn$DxN1?tlv@l>GSqixCZ z)UfyMk^0i}H`NoTbsKursd4OovF3n=220nD zU%a^-bR*nBJHPQk)TE0k@1npAC743D4i^d#}lZ|JFkC_ zgWOj4amdkc+tdKWak~ev!Kw7dk`3Q!T*td)$a*rjLq@}S1hHJ(77{WkVA=cXKdvx; zIw0MH4MN)D)LS`Z4I3za!McyYpUBWww+rTkkUqs?!Mly$*w!trf=f6cH;O;;_i10^op5F)Ff<}EWQwk7j)NKciX%wY_bQ~om?mwC3C70%03#n`!Bg+})sEI^%A6HoNg4V1 z_NyfsY>%osDpOeMFvYgoOn^w_0&&+L)8`b5>e}U|2_ioWgpZ%PIuD$GELTFixm!Dy zMrzm~ z_?JCvc`cf2d3KVeO1z4vjAzp#pX=M2c(Ft023H<(lFAQUpJVUG^r)RSg*FU4__rH(0j!-JE_&2nERQmBR)cKWJuCeT4N zLqq|`Y*PEC_XHBOB!sZ(NT|eYPD!X35_9uYbUfCiftp*{ zf&8t*Bv8{s$tRj(SYx#faUki|i+V7wMFTjYW*i@SK4Fu^4AJg9)cDv1k|!L{?FQrR zP7S_tNaCTE009{0sH351i$}U^XWB`tg_f*LV=Yw(tQy|IX$%QbmP9V>mH{VN#@oYqLj z##{`O%>i+8%Kdn)u4PgQ98#N!3pO*w2B;P>g5;O$nr~?^IL%hALEJmj%RT_0%rcfR z>%~`fdmZ7hGAhEPF~?e9E6`5nT&SxE@%^0bX}g_vaB82f zT>uz^%^7>B0U740`nBUoNC%4Gm;93Ag^n?8%*E~tA9}QSWx*?+)l4sgk@c$=hi(GO zocHFsGD4Cx~2hVkuoy20V9U_2im&hiA7v`I`U)U?F3jEQe8)! zLfoS1Efou8X__uENl#LgC+<1NB5=>>8PsTWPrP#tUtYP7Mx)%CZ%$zANdgT z`O$_SeV0nep}kbJk}QnIZ~z^RZ>8z?EHWb43F`b&HoAqH&Lh+9vz`o?fC1pJm{FbOg}p_UdG}wi3TkcJBUkB=?ZXGaZH8 zf0$?a&{rD7@v??P<&5>`6_!ZdKk_Q!7f2ge)o&Kr+B;zibi+7b&{Lfn?s+YcywNGg zMH$5)@dd~hO41)wasUIG0^iQ`&kV1DjmS-GiP~x2hmul>(7i2i z*5$`XMyq1vbSJfMAO$iG2gMC2Fv*o2Dj6=$(lA9;Z?bjlM{%vKA3r1Bl|drNK?j4>Q*=``xkJmSAh3FS_6 z@moPU$Op|d<<$t{(mib}2=c>_YuA?%ykuw9Qp^-U=WZzk^7@Znw2kpWQM6{@;BFjZ zy{AsEIw@{*L(3wNK?ICeG}uX;6z$XEr!>1p-;&#R8pmeRAkTVI05EO?q2iem{{Uf? z2+Hl?eA261fbg_rbJW!`%{ZhqP*h=Nk0T`eP!n5imxabnInx40hN8V;B%~o6bHzbN z(i_+>lB6*U#wjJtFLQdZTdCaVpMh2wL2&9l@kLs}4W{=%8dmDZwOTPvQA#u=EG?Bk zhz?2jq&K%_R~W`K-m|OAG}k*pIQgaR8zbQIXwF^?^iRyA9fviEu68JjFT8!LSmq2o zm_}IjG;9z>XssjRrEWQ?@a47z^%C61$-x|+O&O=fxmN?Py-9LbM+m%=%NpIB+n`wf z@%W;&I(`NU(ZIV#-20mJPPY;&#&hy%B#}ugZjp)nX|9S#YB6_kE+z8NHIrpZz+ZMuZrM0$CSp~h?p|!h?U%8eC zr7LS0uH@e!ErH*qIMXar01E?}M&~}Xg|{w=$P6;$1KNV0bcYd+l*&&iA5c&|*ygos z%XrrThyMU*qNDE3#rP|?P&r@`8IODl-Y70Y9r2YPJW=xB#G@cFZ(&QOxslkCfk$oU zKcy>C@E$q}v9(z)7tLks@0zIo(v~>9TbTar3MRxJ6>lgq7pDIsRg^rOwZ6;!;ugQb_1RoKoJ+PK7$o;dqhA z8_Y==@_U1V59L7W5wy2qSeKDw1y>!8IQ-2!i4LWzvR)?1wg}XA7~}i?btbiC3Ahro zY{1$!_agv*DjnM%>q47J{K?V@quck8=bBDrk2ABgWl#bAbZ zgb>q4GPpfXGmqy*UEKcwhHBQ&voY;Lr1ch&9{h5@p|J)bI0)y{AP`KGEcC} zxuPCwNxLCnw8SsNermOPqYGk$UT3Nspq;|$iP5EipO#3#zsG_E}jz^!!8P) z*gSQhgA^Az`()70z$*+aqqcfxw}l10#&;7F4X4~^`&71~BM~ovTM9|3E)^5d#0Fvf z`eKFX7rHgQA?((C4Z~TfJkH)cSWgA`ww;`}|u>SxM zJ%`~-uApIaDFuB!54BDqxU+P*iHnBklhEh?00;4`tFf!V=6Djq-Q|e{n_Ge1hjH~C zN8?DNf<;LgT=_Y{!8j^U2OpI-Tj2Mr9l#N!{+3b!!w!e@Ka~}240mxfB2O+z@&^Fm zkLYuXDFHfL09V-rsS}wRA%@BO$lt~DjNtuEKqC7z3MWIcnx&xkv5@>JQF)cL(N_-03col#MVlN|XFU+v`MWq8nR}FyN26=zm|t5yfRH z8c8%8tV=z^DB2nmw`(cR(tn}H2eB242xPU8%pA*akdrQXPU?TC`cpY!A|m$aBnKp* zY%>GNBkRHXjMaMn>PW5{;?hmgx{&LQtOsz*_2(nLX`Z$$UFi-^nfA#Vc;pi81R=&f zInF+u^{F1-;vQp=q7oJV0MVYmQObSO?p7|8(l9mnD* z8>rFVLc2_gLmYH<`up_!>q+|oX@u#z^g5D60BA0iy-}V)Vck#ZkLOPxP!{&DD+ar~iu?U(5xZK01R9~t~}O|Pewt<__Zl13yfiUGp`o=5!1`4yC%Y%L(0 zYm}Dj&+~lf-0naOGiX{V~mC{Ft(*{Y9#P@%e>DcaKDz@K3k34S2p|6_+tf z77iTcfgSVQez^CctV1=bG!v;;$=Jva>~L}YSMe2-cC$FQxD6E1jK)W)SbG9_{0~mY z6l^ql`WR&j+jm1a&je*3xCglY^uJ8FGRHIy?9Ps3CI0apv-8{VrnZceqj>~OzsDFE z&*9k8Y2mg>g~gPPqC=JrG65a9=x8$pBaDJN_xjP+%2CyG>CXe$8c^iKwK3B4hiGwLLp-{e=XFzZBlSa?OO>@1F@NjenLl#i0#g;!mr-dTyy zYKB?(9xKT9OMvZx$*Cb+wn(K~db7Ufr;s57C#6a%wmWu1FBv%Em0cWznr(FWUX-fk zhSQEHx1b7)0iPzk@P$H1;-{H{fI1q6S+@WM4N$Z$p8yj=yLY0l0Vk&vD*&L>lJa5) zd<+U1q~^DofE@Lxlw?xfx&@gab*)N{ovJ`ED@Uj3CP=^_3W3unkwhXI#EG;PHAuSw ztSGy)fIaB=)p3p~Q%n$WXxk}wbv3Tt041ZT<4>Gc@eTO)sfrFoH3blk4S3Ct^`yv7 zMre6rka7-cb}&ejcTdK*epd#Bw*c=g>djlvK&(f>5o{`NkN%pRDOx+_75?(+RE51ezCxYXQ)RNuoQgcJV zNc9C*%HxAo%l$QEBo*yVmg~)tfuaOrL7Y}lQdS03V$=T5^rGNg4aS+@LAN**0UHp~ z&UG4QYQS{~I3qk&a^?3(M`~|>Ck#$$D~-=m_*in4vpoU0D%5V9J4G-c@lai+4M%SK zWErlBu1TVE*<;guLp_Atm3WEu3|C08hfVPomZYq5f;j{XgH^-(Hi`mT{{T>zImr>m z0Q}84&~!T;Do^@L`LKTSvnkKzMJZx-zhlvlC)owR?CEZ`NFmck$C5y$4?*%O_4`1( zhf1}y@aCE}+uER3+x$)3)w{sjbe7P~sk;VXHbBm}#(J8bT|Y{;ovyD6T;6AP=K$dR zRilkbxy4g@{{TO@t|@68`@&ukywr-%bcP#lqkkD6HGXB$bVz`fWtK%43OFB?SM|MP zQ@x+;_8_DufKsBd(O|SwbE!yXm#)@18UD11C^s0Ze(#|vM6pM$T;JtvVG%$$-opd% zpzm7VG9KzfJik2$;YqG_nO;L2Yvsl`81}7|#G@mYKK*EO_jmk$#=m2EbqS`Jh!iTR z;+!8gNR;E!Ky04WvrmQ?P|b4QuAwNQsjbDlix&Ynk zhrPwbyLOGLIW&?z%Ol81+&hy~Sn47&-e~}_{3=pP{e+Za-i5ljKW(*(dDs}7dsD49 zPYEfQ7HGi12ce`o%-?9$qDyc~{Cw52!!RUpAGwS%CbViYY4xF!q^uc8w7lG(al2xy zw)YXFO5XINQ`4EF%D*GjrjR}Skw2F%;5v2aYO;chIrHf-WQWqYnf0IG7oBekr`n1K2?VR`_*$- zj7CntIpZVVt$I`hkUWeIJf`bLY5rS~Bp^3RM+~lw$uwMdJJ@6m!0>7^sc1S{EaC=1 zgWgI+Cnt9G%Pjs%cow(;pPGhO`Q?6K2{&kGfAVGxpxaw$^dOl9mk)$M%v!H25yF-cO+Rv09V^s5$^D3A@qsLgM5A%;dw zU^l5L=l=lo85NoLA&)-THMC)a4oDf|j&w=x9Ig%rN*?oUWPA{7CvgMt8~`@llh&8b z0+L6?O$^22817CgFiT60I?O!iIewoNQa%m zm|DP*z!?`TM_=nev`lUp+kiS|nZ>Q4{Lqf=w#o~2C-SA!$$(1bowx$55?aJr<(2X? z$6zWuTPrU!%|4^@YJ6oWG3Z&RT8l{h$%yk9W`~}4o<@-8VChylr-ZOYhBJ?vf_t}( z0>K0s&vX9OYSnlZE!!(G%Hl%aTatQkXvn!-m)jT1nm(0 zGfTuSUcxnn)l10}oN^a!Wo+&e7Ldl~SvkNR1v|31y_V>SRxc=f9`t4P<-~F2P#>V} zMmW+|CmJeK#_>hIWpdczRZay3r(4X^vjrjFsmDrjF1M&WxHf}ka56DWq19ai?zfCJ z1d{_znnMSX7~FE_si=%dA9>opCzD0Ku3PUyjqQP2jYbDtO91)6=~QVwAka74VUK~9 zB80lXci=Hh^aHJW_fgZtgngNbJbFhpi%D%6vbM5*3Qa3_q{jULx0CmQ&%5$}DvYm~ z**Q4w+z-mEen^%t-Na)jp~v^7{{Y}K$tiY_74{@naMrd4#qgN(x!9E*lyOV79Y>ZB zC<;G__NMpxMDK`%@v8eRM;C_YbN>M5A_KP_C@4y(2`w&qzDM(#~|>%;M)pDqYly~(P4mtBTWRF9pWGGmS`Aq;-J(Xs5~Lsg(x4ydM|ZK5 zsc05EMtB3qfhh#%AA5=l>&=zqY4~OVf$6{?8hNOxx3W`exyF52@9j#pxl%=jc+{f+ z6_*_j-j%9_i?$i2EK{M$7z|L8+Z{hzM}CgdDN=Uel^^BLYMR2}#RmBEyT9fsj1YOK z42l6x-xZdbzYfLPbn+y@qP-gm6$N>v`5P3GL4gz$67_M*Lwccva~l1qUz^+pAhcT>SR_ZiJ^XeNhJxjcs| z+p*BMKbCQi#--8h_o3*Ah7A$QmAmPw|8unm)$8r6r=4mc%0m%-FkVjkt z$sYLbDYVrJ?K>2%mV!X6PIw0cvF}V{(woXDxCPExJ&5i;qX+P%Ci3cAr6ti=4W#zY zdY_EdgG{^g;|u^M67aIb&ZbvfFZl+-IlfkweX5F|Cy{XS``x)CxK%I5m@?(H!#&OP7v8BU(SLJh7dsNZpT> zZgKHUrhBT!xJD>?|A?nz`OChM|HWB`4b4nMf4H*Sw;BtQMgpB){3 z@IO6s@0wL*sY`gSrAQKxUNO}q2RnzhPd{AI*HeD!t`YqMmX<%i41@gWdV@y%m?qBl z6}k$eWH$s%hd2?*(2@A$5%e|fQ$A+a1xs?L{HNpobTqe5h+Mu`X@!nKQ;@CP4E8;0 zdF~o#cqGOF!pKGn5J18B=t23ddN6*P_LAJ9UnH?R4^7lO6>nlke{9h=u*)2VIYe`l z(sAiBFVD}tEz=}Lh(&rp1el2*c~4bfJJixhP?((MFbM$UH?t3~y)~F5+svU)9>6!Z zwrHC4K#^r#Y7wt!>R6AZG*cMN=YAIhQ{hWWZFIqQrO^{sSa+>aLR+f)|( zkH#uLB*{0Ns(}~{stEl>3BB$WzRqJTqa{lp=~~-NBb&;RO5~PYo_0~DEM#x0w&?RR(x$9nat zG7v|4KyF!^y*ATiDnTZ=xi&gTI_B4Maw#>%lI|q*r*quyPPD#R0}odejxCG@1YrhO zy%f`xj}$bL1X2Y@pD}ZuDVx7D;1!3cb5LBi1_uJ8TY$qA=3v0n_9zsJ%*Qng#4rsoF^-_n^Wl1q zwW^Q-w&04EIEg)YtvZ@2*-IX@9R%BM#WCG80l3};~fio72QRVkSPwNg;bTRRH?xRlWJD^LPc`s zk0qgzM81&j#RgBOJ;gZGY$TFTK<0y!PMIUi4&5rast~^-$d|ZA{Rc#nIW86}-AIrSV14g_RbLVK z*5wLm9u>0@sXG*fzysc_pR+wBmsDGgPH(i$3LA-JesPX~dkoQ6_!p`F07dQjo|8#C zWw*uG>tShaY#c}Brd)iU)le~9YKpH6zFLm1IuT2?EBST3QtJNpMu$&H4#0ZI0sd7K zo*-EnBeexB*U~Y?TP&6F@U{7dEv**I3%g5Z`!Zw9$0YZ!Y7iEUo;$kPog}=Y zvY(0~%Gz6LLp!k}p%u@~-$L4KuwUIM-Gle5R8Z&?3>X*XGVSKLTyw_in|o<{ z{{W!L`<)gGkkN?W?zbOGulSPKBrfbSM^ZbE#-W!{K&*!&1Gj1t9d0|g-qun)^x;c? z5Uz;ij9&>bF2F7I1_5x#BA(f5ZUUBb#Z`3+XSJVr{{Xh<@-$_$vnD$c`Bdc>7fcVb z?fxXm5mYCUxlJr-q`8om&ON9-GDeaxjrWqRmKHGmm^lMIYSB(;4@GJHK9j)}8#dAo zb4P0tq;h33={-Iu5gSM_pbu=EQcX3WRgxKusxbVHl*>uJ^54pnoOI187L%)GKwGK)pnVX?F ztGa17;u$a!85(uARX zhp;^!S!A8ZW}_~Uupo@_nufySB)c)jm>}mk>M4ceHgKS4JON9MB&b%ckZJMeH6=&` z;<6KDySr03Au(I}m=o5ak`39<)}C>wntcb^GCW!BKx$9`+mrI4mf@{f^XaTT@0!DB zIrphKa*q~CMctwk7WL#-bct3dnL!(og8|f@Ygq$ew2VRyeW(jdz3(F1uGJam9cdxy zYRahU*=uRV*#Vb0;CxV%$}LIQgDu8!TWL=uR*KA^G3TF}-e|?u$_>QhoMQkA>9-|* zMoPLhx4maVS&FLu6cXPF?qo0j0BJg9y3`tG5DXKZ^}5h$v)YWT z;BDHf&A=avd#KfJH?pyfdV6A)Qd{>MqZ)nX z(?n&GM)iHsMc7+tF|rEU3qMz~hrk zX4IW!*d-vI)wCePriYW&BV>U|^qYBZbq1M^KyPj-wvtFyqTz2G!rObe1dcP>m0W6b z`RfEKvJ>}@ObX7ieJpUY$C7#gDK?z55MJr_vFB>_`cuu{r5Ps6QeMRrC}coiIN;Qx z;yG8<7UTZ_$BIxII1yfKFR(nCYouMrK3$X&I%l;M-P2%tRu%Rrri*dfp9{rn7LjbD z*7^7*j<}G@gUcEDrOf~nZk5RR%~DFfqAA}-^4P-{F$F*TRDW6>o~J6kMZoOb(s?{p9CBfkC_T8ObBgj%J~?g}gDgoJ{{XG|t!}QRauO*O5Py|FybQ^wWIir_7=-v`+-Qdwa!`a0qR(D zL%pJ&6_}Imc%YjV*-7!`!q4J4t}p7r6S^6c6IbR?K%Gdp5nYpymH&z00Bk-{DZ;# zh%^lHpR=pN-*o2(oZy(HlRl6q1tiOGws>poAPrdFiNHntU zPqW@S5KL$8HgU*359>xTeKPg@)BgZTH>;m!sI@JUw6VJSBbT4R;lD6PE9p9n#~lpH`MO7+nt0E&cFlpBR^VL;v1z3%Yt#Z=h*)M zYA`@AEFu7qW64pDp#K0`Q#dfr6gC$lnj3o>DRdD%zuAdsfpo&JUcVI})Y>#DB7Occ z2Rnx!%9*OHkc=>H0qdOLf4xUNv{NqA#Dn?sM4j%L1nM5qB#nW7bC1%5vb-=_Y@Kp9 z9OQeC_o(cz#8=VoTt=WH0o0#*BUFw%g$)lIkeqvAhxh#}4^^f|6qd6FjYta2a0tNz zu&tiTX{GXumL6WzJq~+Nt8WyR-eM9YQ{sVLo)OK0H5nxXz)oC>xL!?I&;V;x93@iw1F7U4+l7-U zl?l8IZRgV2_&A{#vE@`V)HLXy5d{IU+l;B;AHd?Gx3d=D7>Ep55st)n{OU8QGu^=~ zo|#TkRRiwGIDR{W!J{28?;?WSZt}tV>)eCyM!ca#DKxO|8Dv8vG-v$2wkUq0Z2ll;FL*2Sbki02CL_rc^GXZo7aegJK(5jjWL z%2*BjW7GiTeDV4kKEhWP%{h=6f_k%oxDWUIsF`reC6!lp?@&|JcO%<_k@cmre(@SK z!H`JNFdTY{@%T0<-7^N;O0z^I19WN#DBX4+ya@Ow@;R(sJZvMkE;Atg)BBa^56|?i zG@Dk6D|L~9E(wLd)%;O6)PG8b?PRt{-#@x(LWVfNJ+u6e)||#{-bsY9Tpin&B}ZI; zn0t?Z!iK$_Lbv|_s}l?;JUGTwk8F?BQ>3$s7=-qdu!tSI8~)|2p2UBY{zjADLln~a zlLbynxnH_D=LfLQIP7{>aWZDHrMW^zU3OOG?| zmKZ!Ao((Fxwz<>pB!z%wJdVMX{{VW)neJXW8$M!NsUsH1TSSR}Y`5=m0~{f=PG~a%?zz{;Sf&6Q;@$0wJ(9?dw4_hv~3J}{V3uJ zq*zC8>{0fx80(M5wU{Zd<$x4ibJY${A5Nq2sM6}&&RGJ;tbc?IU=H6jCDToEz%-2} zc~x=hA4=6NJjnNC;Bp7~PflsMFpswxqDz}cjio|aaxh1_H@#|g1!V=02+u+X3V*dJ z4(1gCGLE2Sqhbjop(3P?>4{*<8L^VRGJF1YxqBG2S-DW4J~x0s>}u7Z%B&tE_lVpx z@N1uG6S-(qh8R0aw_(`T!%MkXwVNf#+{nO>aYHJ&nHHdfaH5h=EDw4SPdU%h zxf9SvW_`>sc&#RzBOS#mOPoGC9`!7mPREk4*tYkRpL8AjmceXRuiGn?&7^spRq!UF$ob;!PQ2{(?RIN3)7(wqs+sC+! z^Gsq)3S?toan`m&-@QjK0-;$poK&A-3vNd=48xk2&Ck+?k+M59$ zz&NdARwq5FZG?GjK^)Ny5Pp=V2Vu@=kF}664Rl4)09YYd0Yt2WZ6!AZ5_zc>=L?!u zJsXH*@(l4yu1I{=uQ@#PP!}wIwI;%1J5cYORFl}NAplVpr_w(vHTLYu;NqF2*2v7} zo+Yzbp==Bgc&fw=iPVG8)#JtG9w$}nRBL2soB_!-JP*>$mXY*L&4Ouz?ICjIbH}&0 z(yYE1xEgnXHBDzx%x3yeE->65Eq~uNUX`u{Vo4Os0-s0&B>Ypq+N`m|p=laHPymEH zi}HD{xV6nbl1=`-FY3=loRh?UFBh^hM=6TkcnYJas{9@x@?ZC6M_lwLiZfF1{4%jH zF^#`5NuNfzwtUHgna>r?CgiQM50#y7!+Nw@m5LQSk&eA7wvnZiseQ6(2!bEs>`ik| z27RIRC}Fhd%oV+>sCbI)ZR~}evwFbi)~nXnU*cMG$06G^euf>v>}xs>ttwCU8>Zo06T7#~Kh33bR~P*moNdrZ zK0=V-=j%ef&}Tbar?{&pi1d*?ubplG0B{U~y%>8{1I$?rn_Fa~f)8WuM+5DRr&Ld3>i*A2_YFNtj(r1lT3ha{S`5p<7l8pmf|gsW~?rPpy9g zwQLMRT4^@*$)}nHypf4r@JZouKwEC}oj?IeIb%;u(b-t3QW{3&W}QJfU)7nxarptLG5j0Jaj+yqVh`Ev!4I7o<9x0ukw6}42R~+$z!?3F?llP)7jo|au^!ZX`fQ5Z?bu5fu;kFq0bRR>2t4MNo7)D{q!kt1vGcr~bI&x^+fj;m z)+@-tRv67FFqT{{Gt!TRESGXoT z$M=t4lkGuULct5pJx$SQHiuf-n`=om300=y2PZu#?2#-M;UVL;Xlr$4RR^X&TGo4p z-^NZTRRXQpuKv<(J3{Ck?OwC#0#6FF6E;+fP| zyoNUW8(R}_7{VOK?8e8ZB^L+B6 z4l~$tO*_+ISR+m28+&G=lF)g|1gN}n6cTECg^DPBPUp8!DY&(^E7p)j*0~%jvOIkS zA-=!3l$PJIPq$hs-rCPTYlP$c&zjmzM@xyY#sQD?Zl^SxfdB_D;{_)$v=fLT}cZpQHL@fcIKgGZEH>DO>GZIjCqM}f{juctLs(={C`=HBDWUpg|ML)yM-ytMxS3)C23hK53i zvQmHWG2raJsl`ue=K3|9q; z4Tt0$iV@Qy)q-mu^)`1_pp4=@ryaT<q;oL<&SwQIisoNbUzi`F|=FM;eBdOn3~f zxk&l{0D3Ma32GWlg31wq?0SD%U#AmeadT|=+Kg0v2*@Y%$KhE$8|p0*8;>z@wo~b4 z`A|lG75-Hfv`1@O-6<*ek@|EV{{W3KyRZ*&Bipf8z-2!ql0UUW9Nt=$W#9f~?gu@; zIsv_C+R`dXCDWQeDpMjTroG4BTye3kMjPM%6m^Ua>FLkyCi({AM@svURg9T zq|U}gAOnsMHIQRhXRWm)irG~`R>xm{dQ&%;PR4kB2hw``XCw8XtZZYrwr~bAJNwfX ziEU!^jxp2c9Mb|-;7%-8{6(Cl1$1%Bk#M%@;rx?g26Z+5Dqf94}H12L~snDZ^ZOx^lE`s^Dy3J1{*D?c_KJTAu8vu`B_hXIvmu-N4Ab==1)Y3N{sRxf6UPG-9MWa>uGstQ z@Ac2}qhpmW*JOm3jNqR9e_!X#Fd43&DZPl96LJIJ^&iwxQmk=W82vcfay#|s`R0T- z5b5_!U3SAN^MTNghw=XOL`FHlRg@O{%74r`AIOi&x8x6~s15g1vj8MwA19$W!TfsD zTWNzpa^Jp2-WVLQO=-5*$jK5f$ID*`h6%{$YqA~JWr5N316!Eak2jZ zq59N~e)ke?5f)&exXyiRpHTXWi6%%SiaAL(7XUmi!zLhjDu2`1`%_)?V7y2JTQK4O z0DBW2szy#eqxA-ad(z%y7fK`(DBl_mCI0|Y{{WT7K7ge?tUV-HC%Ox|w#S*Nu+Z89mqE9ffHu;>u}? zr=J-C-ZoqojQ;=-{-d=;BoW1_d9Wre=3w!#>l-l6KRo{cDk@Za!xKsjcb4UjItEks zhCRFfH1^qrcivmuqQd2^!)79SqPOt=27@plnK^BeBJ=Fu`K_aWBH``l1V%=|k=yuB z;qUE4UPi{m6wjI%`g-$> zM!*|z4s+iltvg8=(r9LI96V__&mA&;2lSzl*(dWD5TxMk{v6R)5+sC2G)s|=d;WAi z#BwnQauJThKb;L(ybo+++`|i*KJXdm9qR3&=u%%r4xt$#pgTbKu6L%&;_3|UO~j0j z$Guor#us`vzZH$P({ChU@$7ria!G6{S7+%@Pf2<8xqeDHGX^$i4FthC091sN)1*lvT%@gG=a<#YxMh8k31IU3#9V%699Co4E@OsyT zgbE4l1oAdT2E#56d8td}R;4rEm?w~A9x6cyJmRq*P&-kH7(FSKc3^e3UOm05S?z%x zDT07An#7pec&yr^2n;)A!4zUB3y!rTfFC&ctRY?WvC)~JgfY%4QEmVjqGCXLRPLKr ztrVz6#d61iii8cP@uQ|n8_U7xy(r06|uphijHRO0pnXv-%iv2}D2c{RBQZxowUVi1u{H?0dKS3E&*BzD2$r6jP7 znRf$>8lO{g?%eb=J*1l-Kcy}-)Cp1ac7kqhd{1Ggtb6SqK)D@M4oN?iJ@Hyv>pI2H zD#Z@W6P^VN;23AO)~@cZSNB$y&meQ|c&e<8ESJ*WY101jn6occYU_ja%28fYugP1l z-5ttS?TNfcrLC02AuFDhS(fa?c3dV`plnx2e=k^!!*YO1I;rXp#aDG51+C@vA$aqE zahm1Iuh);SzQf5$4ty7;MPsL2YO*4!P(pos{{TT$d);E;JVx@)SivE|`1z~Xi0_4; zhwZGbatKgZe43;|9Cu2^$Eb17YR*YQIM;7~sg%2+^@F5W-)IAJINKo4QSVLO));4L z_JZdaW6niYU}FvtDx^`#j@Mn9I#!X zv7C>Z=!BDt$0h0hANVuh=5u`l@cGF!!()St5muD8Sne9=j)Q^qs4g@`w3bPj=W)t_ zI#DrREVhGiIQyqH&m3+Vm)!*+1KDNULN zU4i6Fj1C5CJxS1tHmo*CW`bDJmkN9P(b{(#*~cIs*NTfrypfe{uhVb?(*5a$&A*b5 zB65WAegLZDsVhKtWoK55++7ks&4Enx{Yq;WM&zzA%kMzgpEBnSkNcmcORAl-FhSoU zr#6~$`|LYO(EC@ij{ene?0LxbsGuNbdr-Xr;QecV3|+}-F%kmMzYM_jwqfWd8KQp<@v|@lliJPo!en847X7@~4sMZY`D- z4bunSvuUNRq>UrAaUzTka%jplshMrrqQ>$*%n$`^_Q4wf6M@={isw%VLOV!t$p?c^ zG?}z3t5XcprLD@2827BD8F@2Jc2e(6?5b8MWIccaqtP^LwYh1oLZXqtEms?;ZuF)y zyen~NfA=HxV0?=7PY$A6=> zw}3K4ptrbD#VVJVM&e0#3?WQ$O2B)94K95b&0V74gzk3oYB#%tx!M?!)Pw*E+AUEO z1&_?*zTPWxkCps~iG|YUv>&)A=eABLn^>;nf#jAZ$>0oUGd0-yv;kMP z5OQm3PiEuCpj(!fakZOjjzG^fP4U)({{Uo7MNx`4@}wiN>JRB%2HQlvorHyBMCt<` zXsuSkF0|S7`3B(2)OJ0;T4fdNX46z~Hg;<{9hWlz0s4>pQ7b>6rKTG!069Is<|}P8KN%m;gIR`Ed%0N;1;H8W zt&YFb@}q8|3|ZJ>Fas+OY5*cV%d)8qR}KeEjzJ#T6t`kDIgLwskh&eX-PfjgBk(`Y zfM|fb%#2x_a=`uVz5ckS7V>S1H6$JfKK|4WsG=#;18CfN9lO!-W?sZ8J0#mAMrFsO z8y^e9CA7ZUdQ~o>p&J{iI?w0GCqV+v;#zk%VsPF z*HQ8R06E14EFhpEjIheaGKZ=$=a0luH!`$N;N+ph$DZEehq#VbQzfzVJ{XL0q;x;h zv5+uhWd4#~GQmmtIK^wI-yyT}0pzzU@thiC8m!)1ym(?gN)P<`pzm$q7ubzegsZz@ zJq~&P^nRvKV!JJk0ghC`Cjg%PKfPx4-r4-D61)ui^&iU=MaqEc*2*%xsK$7xRiwI{ znZVh*aN`*E6h^z)2$b)VW>86GWB71s&6VW4aHkB)Ncw^OsCg0?JuCrb;j`Qtp3p47 zi1CrY`q5&&lEWfiZW0U>0|y`G@jbkf*}$pTy@VG z9Y_54qT@y`pp(JCBc?s80#3y)2I;w8ahmQmby zuO*^Mhfr`i8Sjoj{*@{bh?uZd;R*KOk^O0q9U0am60AlR+>US?IR*jLe2<$zN{zVZpZ%H$e8)d=vZ{q%y0w{QiAiJpn zhd>87KhN~6Vrzfhx0*%(Ah8_)_dlOCq~1}DEy(mn?u7OL;|KJ`O}#cu9FB%F*mR|K z;z<~*xn?IEbkE1ugZdaMXyla2rSm4wFnf}!0}q~+qIss&KnIr~0ni>pfzt=*O%U=Q z-1%AiOmDq->(G(<8rJG$juxFTJdNy%Pe5E9xcKTTSZLX?ExB|hVU-lJlgda5InU?# zABvX@&c<$O8f&X540w!@ z*pIwD!J+~yn7?{m1ONwEzgQ-V!P7#YoNB85SY^$21c8K}!r83eh?;)GB{oOG$faAGzr4#04VD+dba6aj!leb|p z2rT&RMfo5uXgf#s^NMVR8FP`0Q^E~&5pd$Q?BPFM|zUp-0j@rnL)8! zh346L$f%u1aZViuIUG{y&~7;CNj(gJTmVR1b6yHaKJ_C<&0vfQSOpMBnCCSCU=0&7 z0CP*GkOu4Co@sVw7KbLK#~7fYnNJy_mG^Wswkb3Vlk}rd0J)%$WAvBgS*2a0IOBU?_y(GD^V32Jb-qL}4) zuDJ9d9IMa84Im+Csd~_}zAADE431TeVi`_qD~UHg1!g6vMPA0Rwve}ak`s=!DLY3s z=x6od&~BX>Y-kX&@kzCNVo;B9RvRL&xTrNa7h`tftHR@9XCc+s$&ikjpkv*EifQ5$ z{{X3R?0BH<5U>CYlS>JD6CsmF)%qRE{{ZPtTIskBL|Gr1s-Bx1D$Gy?+;TvxEz-va zg010SO3y1lTxP1iOGZJBvIk>NE?+JwZSDU6U4KKRyHuFQTQXf|go0Pwtu)e=Zf8?6 z@Pl?p>+wlqyOIzKezjrIrAM)O7!?wn4A6v=m#bdmK_pc?N2dLz;#sZpf&4!eO_tr^ znTqgxis^T-HMHfUJJ9y{s>ZLU%XNJec8FS8SO5olOseGM`|N0LR4LM|Wz<~967=Pm z^il6kB51VBm5m(8;Pobr@htIpYfW7;#D=*eGsrrY?^PRXvmsZ0Nj%cZp{BR|6^%vF zY1OpQ{$1KJ1YyHxpfxPIvbCuS0c5~$pPG|Sf3|7=0B6W7pyQs#lwRro0AY>9lI|pN zfu1X(E#yjT^$OFb83eN5S(ZsRaz+nhQQ0H?o>*pFNDg_Td?g$k4)z2$3^UOC(VC*g zZ*;lpeFW$7p%-vd_ABM0t*2WxwxG)045J^N593Q&o=E0Z;a@o&som%i%M6M?j2z~O zwYC2M6rI)B@%%KArOA8O_Y!gCOy@EoA$p8*K9t){xO;32v5fTxwIAXw3QK7kDDk** zK9rKq3)^Wia}yZ-$2APGoL!~SDK0FwSs{2BN_w6?MP~Zlj61Wp18MmbR+OuAXgcKv zGgxFZNJ#$xvWN4on7&cJasL1@bZs;iQO4xsI|sfETl6_2gHLWhd5qFasFCK4o1<}z ze-&kAmKo44LJ`d>N)0vOFV`9!YEz4tV2KFxBJc4jq&YK zYZfbMXifld0}ty(t6DN#K(ts^J9cSbp1mr=qg^H0lG5mcgk=x(s>E^&i%>>3s~^UN zwOMAnCKoZs5!}oVB#KBkN`V@^mQ8Zr=j}oS17h>Z>s7r{&g$CWGDO=m$x)iTK6Pz6 zDbp))7{h@`H62o0J8j<7j3-KSGa}lIV>qQyF_KbT z5sol@>r*tc62Emp>fBbxrO1L@g?H{n->~gcM69v-gCw4CDrdEUB{EMTbJyavlJ%W@ zyJ*hU7|%gjt?aaMx))qoT;9k`%p+d7>Ty;*BTKZ>tpvq)HZn_6`&+2Qkwv&}Cv)T2 zQ5xO&k`WAEnlVv(8e7q|?y&MH^3Rq#04lL_diN5TRhhHPF+Hk#$xL?H9J}Bs6&;LG z+eA#bG9FDMR>oRE26VTy9DD@=l3YtOvE10tKq!mZUTJ`jpyZy*@mRA7CHkWiv>tFe z)@Vf7MgcuZtG=zIL#W!B^v6)= zmQ|{C++SrXj0h+@j&n&UQnbvMft2#cYiJjF2N@?gz@)EqT}XssPk(xbc-rOjGq7H} zYIt<%ZW(;JN=5Ittt)bu;Ta^4T1&BZ>@rAtQ%fswAI-ViTidX&eTl6i#7Y>SZl<9U zI6I{~anNHJqM==xv6T02{+Rd!y$+G8v3X8UTHe=eh*<6`)Z&%u*I+i-&m`as2Ik|n{|_7o=T2CI(Z~e>CuICUEp+f=AN%?4fqU?QZQQ- zFedza(p#NDq$ZL8B-|P+@$p#@$|1l5SbQq3+E?LIvSQq7G+6uh9_w~3b6O3CeZ{& zRYdc!t_}yt{{YP}nFY)nTkipaPh(LaMSmYmZTG%|B0Fg4Q!2D`H1SGiu4JntJ|=e zCphR=s2@L_M&3>Gsf3i3c>~z@{3z+8M>`6f1Mm6JkU)@1O123A;QRYlG69!1@0m9h zIaBeP*3pcJK_oE7;(uD3SXm@+Ll#gup`nbz*xkY9bJULi0F5#af-AHU$q|(LK-;_H z{$h(r*3}I0<%!2boEq~+E@3gb=RTJ2@laZmZzCgua=?BRKuaa;a>^aljm^eKat%cG zi85^503k^HsLAc^K;6li+#Zv zwIL>96K;l5B#0g}&ObgdXlX;bZ6TCx923Z?(D_C++8RIef%h9deusluGX`Acw@nYL zf~1~=1JmnDWtr`yc~B9&fXI2{9DX!#l(}VRAtV`KI_~NieR zYBy%1dwD>S5?mN%!3WzT6)t?a)v`ewcYLY9C;ofTaWegtQ-VUV80>qm_N}CMpZCLV z9Y!m{z9u|@b2G!s{9dXm~=C%+>k}A0MM!`op z$mjn6KaFBZm8E$cv5@5S@7wuQ(n}nWTkOiozbEh~6l})xS*|6@fZbQ%iUh**EIjXc zgN}OOV2|c#w~9~y05v1-LJmkjJn>#uSY`lYaR-y^dH#ZpfF2YjfH_w`afg3{Qp^r9 zA{fc^wnu))=y6*}(e8jS1{q^HIpul4KZYw&E2XcMbmmmuwTm6a;bGImHl&N#s^AWu7H&RQn!jfmK4WfslF;?@{T{ZS`@}y%84aB@DbE z&fYrw)BOO9-oT9ql*1qjw|Gk4D=jS&AU$5DKIW=YI1(MlJB?YqF)nP1=b@=)ew#*R zpUvJu_N|-lW|v0CcUn0d6dC9$F;*>+NCBt{^F%v=k|=o_(?U`5WX!P&C~2JIirM7! z=7w{VibpR2HD|{aj5bCpXf5}h#)xZX3P=@{FJJ*PZR^&cl0tKnQ{2MCoKpLSC@EU5 z#zcbW%O@n!FzO(vP{5w`T)dUAaaq#C`QvdtY4O~h2+PHi`ItDPj4gx508~0MW-*#; zF#Xp8y4-lglG_km$W)L81ta9*kGzbg@0wfXvoSTu(=2L6O+zZt1zCF5t}-Z9Af_*M zElPD1WCX1~+074iZXFIrL8eO3t(BNAwlM_Y=9}6{znWKZU{+#BN@Hd*fNE(o4HKqn zDO(1zrw0|JoQ`U8K_Pj_%?#6)V_B4Bn!=`eq;YHnv2)E85Wy7!N6=9z$I`7B(VGp0 zxB`jY#V!wnQwezMU6Fbe+GoJc0WRffbqHLxYLYQVTY?!*b1yoXsT8a zOPmGAdIcmROd6i%KuMu83yPZDjb)QgomMOp&3jY02HfQHib^hgybS$lZ9?>zzz6lF z$(EHNyDDBGZPGJ$%|WHG4!OondsckzC%pw{E+kP)7~VQL@~b|y@g0PXrD>L`$OLg@ z=RNAE`d!>_nC6e^x~)DkX&UtwCo8fw0DJLOi2mGiH@#Cbilo;`dHNNbgk7}F(hJ2H zctel$ur%$J78qe*$P{~VLfD&x1I=J^dx1n<-8TLePveS6O;fuXIbzoAh0;ynp$-Sl zHng@&8y3_ZF>>lw5JyjQQRsv1cQ|FlC^yK*1OZsN@dcgj>p;XJC#6ShRUqN`um1q2 zPB`DGZ0B0#q>^1pB>61oIi=Rt*7nh~l8$xQbRp)5w`BHoP z&k)|+G*Q}l7K_59Y&w1vE}x=mGf41#nfJC^C$X&`PM`2I_a|Q!TE!__I~9#c$3Q6N z)J^DCcvQABD0%!F6jKSV=aMuEJqW+nnrU|WbZUzNOCZk-`82gPExmpC9XmojS7J8V zW5Da01uh!Obhx!{hj9nJbSBbbkp!19fg0!U{{U)Ds!gQXmGdou$FgKmo;2;Y6z`%B z6UHxW?QiXd?aBxk&U4zU@!MPy3ALOl?hu;jIySFkd!@_vSb~dw0+Ebonn!o9Ovf?A zg>(LDDe{V!FSYrLC?+W}OB5>QCY9G4JGJ9r+yOJAMIrKSBK6#~= z3ezlvw*Y02%}4U=c*oqfU!S-r>I$oD8rl$h1WfJY`DHf-uNG=#h za#BO?I@K>s)n~G~4+{|*^#t(7y1lAJt7&n`C>x|uQTx>)K7NS>#WiTFX>v8BzEqA` zLBMZgPjv=eLewn1#?VD4)nGOPVK-mrQ+Qrse+=<6VnrM&?@ZUrl8?D0{l&A!Y|$*C zT+1oK{0#N2p^2@?hy#LhO*Yb0Uhfwu7WNE)eaF3KNW965;)+Qxztj>`$uzB1G}+@a zf7*XcgW&h5d`V&D+_Mi=yr*)J@+e#TFcEihN$F0sLNyH@T{d^!aSD?gcO(6(k<(Fq zKj;1b0E2b2oel4Luw(aXFln8w<>idXZKNw0JcGzTg-NIB7YV4$_bGrIjGR-o(@=u) z6eL$Wg{GNF23cQQ>PS*VF-}Jh?r9#cX?txkJnYZk9MSV^w_h$FSy7UDVu!ZZrH1A^ zdzgI4o3C=T&Q%(g!5h0mWim^JUBvfhsHC})BrwO2KZuIFO&x@>`cMRK;vK5JsCasG znNk+r42LDN$P^T7qjL8Y_U3Bl}bOe3}S}~FT@umEg(?gSIdla;R+|Gq==~eYm;#rR*o-Ml_MP~3zzCpH5xi!08v=U+l;2v^#rZ8XIULcN8 z1NP5S#FCQyOwj*DCt`phLN`I$8WtylcRC=8Qick_hZ;~s_%(3^QgeVV_z`_ zMtYx$Ii@lCK?mV$5t$xb;X)2b&1AL)kg>JA_7&rs5LYbTos$Of^;Z6gt|#>C`~o2XgJ${rBdmubdFKZPA4zXND!`tBX5Vw=~3R zXQ9Va?Ly6NlWla}f}``MmuHp*cwk4@`y9})!6J@8Zl^TXVRrEo2*Uc0f2U9FL`Xc$ zHa%N;&V`$6r64y z=&7DNbSwv@7y<|0T;zkA8c7ll^%0N`I*jCJ^%Wd}rY*1$fE4rFwI0G@ZO}`(7~u2A zUTFJujxn@2-MIP*>-7Hso#;DA0NT#y8+R^0QCYZ;%n|+4#gC^QD=-I}nEZ{Omfa}Xc&@t%tvbH%VW5X_{a0>P~ur}y!{PtwMdXf>O25X z>rA&=p=h6u>V5vTnI{evToRz{m{d`vkb4@|3I;&I3O6MQANZ-_UI8a&cn90-Q%e%7i3s7>b_e8fUS&gqt`Ef<4FT;U zR{?q)VwqY&o}!|T-*L(0lg%8gu&>?#o-^%P28r$njx~%E)6_@uqDzHVet}c+r1oZ6 zCvD)2w;-P16h@5 zfGOQ^H0rY?38VNc9>p(9D-iw`kNH;*6Q_q!GnQ8iiaAhM~G67^}Bvolvge7H^8e zTW-b$ZvOy!inPTfQnN4%yG^V0rDi`?)7Gr_aqf)L3HXx)Qe;Um#n?ZSfq_~)KAh7S z;{|eh*0ROyDISaJc!=Jc`4%MHM=#(2|Y0J!(uK z?r={vqcIngdJl#-HJRVMmE)Rt?JSmA2>D)%Q#BR-Y}?T4@k3+2TU-NTX_n zAI_8INj^Cr7wzX|XNQvi0E~*;K$&!AfgNCZj$~uh4{EMlcvnob4JE{{G=rQo?H`cl zmTUen)h@5)j>%bJW+7C2Qp2jwgdtfake^ckNcsw%Pl=8u$&STk1DAi3Xby@`1+CFaY}1 zIlkBIi{s3s_{nUxrloAx5*YlVW;+Qm75XBH_N#%*j6)sdZ6@Z!7VeT!>-us zaLXZNDU5{9C|eyvPrRHYk;k}$fKN_U$ZI&@b<}AxJr@=A&<89`tn(zd6Sgv;0nGyV129X3P>yizxQV!To9v+8ykc z+M^-+hx!_Ik;*Ph=>GtF{{RMxG`Z5+2)EhF2t4uDjnXfs*gW!EVfBxSuIc)Rn+bbq zJ$c5$c+Ec3CRrs{xL+(0hBT3sT|eN`kB~1FOAPvf*Z>iY$LUFwPWI(tQbP>n^rsrc zmZDadZuVbC)`p%&eKF=3PgcMO(zZp*Cx3rwnL3DJSpNXQ;W9QQkBqNej+E!bq-t6X zmZ=s5jJq8B9*6a=e7DjhF(WZ5Bn7ketH*^TI+umDYjeWIF7@M}VbAI)VV$)X+v+f{ zI|{evD%jwiztj4E@JTv!8+&e={)`-d`Gj1Icd9jw%(hy}c_6QnPnbRaDgB14{uJ;$ zjfjZ==d~B&jW!V()NK@ba{^x-jW$Sg^m$*vl3hs#-Gq&!)NOz&;4vQl;-kGEy^44_ zidD}YjW6)!(%jh3V#IXc9(z%CQex8P+yYrwdVG8Sw9$N$ll-6N7PKsqFwBJu*Aei>reYyI|+NSFNU!<5lw?_*;SPNjWyPAo!UB1kn0 zR{g}_X9J}oxYT7xobDxv0Y-b8vFOrAf2U8ST#=HS;r^nkR#xIoXj@&j)U^fV{{UCD zHeJO}&rkFJ0DXuNcXqZ`YOci0MqKAPG`7iQy^v2UltJxM>PWL+6OF--08|ZmvN3NO zfN_J0hMW2hlSs69eU)dD5XI4fV5h!1(Md71GR_>yZb=NEM&W)I&DXaxusTna0;!``A>gLz_#zM%g^uTeCc1 zWF(%i*0TqVH0#TgXRhg^8NqcMfc!euQ7@*jB1q2c{{RW-X{fcg)!_5tUoPhyf;pnK zsJeg94JWeT-Vw39vo}5*xK>6P^220*wNmwM7VaI;%NdSNo~{7?^{uY0b)ZZh+D3{< z`mba49qXXzy5^bVdj+x85L;ie`Wzf?KH&cVN<8A<8R`4@{{TX?ls>v5YfrX)jnhny2K7!l~f-0^{UrZhOEP8tio@YyZa0`D3_W7jeC;1GLEK&G- zO?NGAc09w-7S1ReuMS^C<$+m{bLr}8t8paL$b6F9y~h;mM$|PsEupTR$N688Sx^4} z`Pa}7=)=Cn)V?jlgxO8%~79 z{{TTUtM(b`Oro1kER$Naai#Uym!|&*7kc^2#7KtZaPt)x1V97p)Q}NM0^)>G_d~v0C6FR=N+n&(9Llu z2pl$eBxCXw*)5}qbbEww}~#}V5qUb)N@7Jc#h;a4{x}h!it0+h7Lj@q+Z1dGbE({0F_q* z^Q|ncr4Bq12xcN(`>Z}_g%({eVBi0F?0}NS zAo2|s&LvTm^=Aif^P~{m54;bj=~(+rsV3;39{BHCy^K7X0Ktasz>E-kP;uLsis6pI zk%R3~M|Sc_m2ffF=iE^;ynv6hw>?TXIUg0Q4H&zEDHU5JuI>hKC@~aKfMaGL6Tv*^ z*wN9p@}J&V31G7KU$eGvxymV8-Pg8G4oKQdu0YNGuuB(-7XbjQG(zDx1O2pMAS_@imb@Z zl|GQbb@t6@s3ZY_-L&O^>C=KJF&jAy+!Aq|(Fg<}?j#K3>Otv7fNwm^>IO*sDj5`y zQQ@#Z8k~jL$98*)8g}2#NZ@fmBwaWJA5JnW-nA;+jC99p)xkV3YS@y9Hy*WuVB`b1 zk=w6Y!WjWObDUuItQOo!ErL5&qHWm7#ttY1-aM%dgTTQ0(F_Z|atSpGl1mI60u4lt zS<0%ALFw;V7%f)=2kzsw8l=k_k}%3Jeowsul7%T5&hmNUm_)&xBqP(GQ+w74wA8NYhgE~f-V3Y zW`myLl?tf^-+_+Q-2s!N$g4EV_dwXB((8%x0A|lQsV=Z$js}EJ(n8KT?L*6M6m-R1LC6*_Zs)Z^XA8|s za=``#D!Y@63N3M3FkF{`M-`#eLN8uvG_sI5&T0T9c``=^gj+D`OQR=q&q~d$zT>&N z=7qP7h6@bhoZ8@kdQ*1xV3>f2t5J|&1(%b>0V@oBC`gs0m=!*nANHu2xZ7SCJMcPD zF4-A0qQE%E#V~0&uE?rFJ&{R*)J3qyC|$vy6l4q1ftfV9D1MZpXmcnu;$wuzdRaS# zkPP*y z^Gk{3R;9VkE!YiMkTLH= zPT&ukDUNeWubUgFvst8#w474=nYQPeih0gYG`8yFImxV}W;1hfl6j@~6JTPrl2Tfs zbDHXgIx<#ApH@vWu#hx^lS>&-v8k;~B!Gj8dB)IYtsi3*^CpzSN_xrMPkNTa#N$d5 z3Eg8PV|!AVVv_3mW&2l`0DSSmG)?V-&1pTO#~i?+2zuoF*AllrU2nhF*yM!x&e$FP zucvBLH1p0UVaUkH6l=QJ_;<{;jZ#a~$8SY)%{#)A*!YIqO}my^ZYPt|5@%{5JxTZ# zeeo8PtKaHN9gK$GPPS1RGjotQ;8i0mu1z)9_v`z!*^5nD0+p_oMHUdNws|~r{i(Ia zrfuyJ9@v?GjhCQ4!kFnAAciRI{Pvbly(@4t^*yMYskFNp7S`4;wqLozqWZD&f4w|n z(z!YfUtm_Zk1S$qs2V7-o++(Rd`v#MDMegfcv->+FGl-(@z>J^9s?uC|dD)rXIb0m& zh+=A;sOZ;MFk@uO-|9FOTav=!EUeM(W$vb>ESWW}6;yQ#eMZtpBF#X@8~`XAy;gBP z*)3mT{v{yds9HRiR@bZLO5q8^E_zj+^$Gmth$^`wsOw0xH)>k^g8L1c-V2TM5I5(z z=91q*x<*+40E?wRw9~GnK<+k1dG!uz4NA@=d@K5Z;{&Z0n=(D&3nxgWvbdEWEG3K% z#2#x;+SRPG->O8uwghID!F_pcs>32ll~+@OKLRQL0PP;?Nbe$flrH7MlicElHln8# zsW0>Y0MTitQ1oj>(2-hsgqJPPJ--UNqOA5o`2>udRW@%8UfxP>r;=1f!v#}-MOmya zmMeTeA~o7c@9b!Br|g&`B*AVGa*F3UJBQ5$sEJ{+Sdbls_Ya)cuO$xQknnSgAi0%c zMj?P1rF*sX`~FHX2a@d!-vnl_AG4VxT{BpP)PdxN=l=kg`_e1vU`uyJ06uVjYTe;* ziD|03jAqqa^J;7`k2urm{{V1G#o7if#l+G!0QG^QJKrL#105>3x5}DfU-9YdnmRS=#d~jgO^X{1GqPv?tT<$!<1o zZvMuqHdcn{eXei3a#ua6{+V_(^hZ4y?I3$o_cf6j-#{_iOQPPelOUu1WB&jY=3usW z_V)q5aW|l!hW`M9rtva0_LCL*E@p`BkPqidH5i`r!_nceU_Yl(PbmKY{P|zh+SQ45 zwOebu$lP+LEAvV;SPYkH!|wg#PJCi~!Kd7);^HB@>;C|n7eoL^LXJSF%e1^b{^NFo z@AU~RF6}O%`_Q(2qqzL3w~2JbzM9)rvnR=&0g$Q2ekoR^Z5NWQcy_5AE_pQL!FQ2g z>C@?X7++L>Pioe=aF;0f1Pvrf9lMW9PHeG9&0O5{M-JTHCrw|6uypobEn>OZzm{EX7;C=M8-)c(RBfp z12D+l$F)$bB?JWr1RgQl=B;wc{voFc<0M_%9Fh+w=9?YTOSRYcU#KR9THUO+7p)A# zDh^cpiuInPY{-xtFze51v)`(CkHhPA8jrR>Jz#asbCS<1wm}NLYfW_}THh2&QWzALC0I%BaF*7fUaU)m3Wtu>T{E%m6&E;$T7@cMV6pD*~I>Ha^* z`X-kLehv|C?`Lczm2o5Xq032iBQq0Cb$eNEB?2Iz4mmtjwmM(gSIl-+Zu#j`;_i_~ z^g*Q9$cef@7d(vnQ#kEn557a3cW$4RZ4?(Xu-XQ}-iwD#1n!-~W3f0DmsBlZW>#jn zkIS?}!Nze?+3D92u#)2B$BxO?rhCC_5nFgc{{Z7v`@LG>+=+vz_UI@{s@PI37h2qK z#J0!;)5vxwbCceT)3;elV~FQGx}Lu^Q1F-ie~K-4E>tmW6W9#VUL(||9wd=15SCMn zgNhjPHn~60(n{$Uvk-e5zbv+0e(A1FD%^dhNMnervY%6?dju zUL>+x?ej)@Rk*B+LZ`>Gm|I%Cx|WcZk-s5DS;nxrmQ$AO38y!je7m+jBO`&1b3oi# z$7(#uj{I}U{*^u)Lf!O9ZL0b1)`dyP^x$)Wke)#&2NWA?meDu;GBY^; z04T>aduo?DhMm6L2;~E&IuX=XQ;fCQsg5o5+Z#j%M_l}Wde(hIOR@#YU+0>lT-;qs za_uCI_25yOZNHj#Trz|mhp3;5D=tZNs1%W4e-Yb<1{j?8;dYPA(DL|-N0ZYON;_|S znpt}#np_2tuF=mYtx7NKkO3Tu5BdQ9b+2^f3K_?#-OMtszbTPsP%M)^2Dl_Gx;+>PY5C|Uq$}_PEHnNO)X8@B( z{72z!H&L^B^qtnzV{w6wRe$)OZ;D?_>tBBV0OUzQoWAgcllMgJVZryIqLlNsj?u*z zJ*1GzZ7#=?GM)kGew4j;K+G9f6+WR@olteX!$wYj4AUzs;O+#Yr%rhvB9h1n!Hk3P zirFL}E;{qUtk5jB`N-?GLJ92s>sLuIt@px@O9M$QZ}2eusULKjXKN-wFiE*TiZj(| zTB8|~Ws?H|k46;`IU{sqe-Jt}2V7cxhd+k!#skBWfjcGNk~BDR!By#e)g2c;7jd5VryBDBc%48~J zIbwOp{{WuVuvQ95KB6!&?O9lZv1V-X#bXi3OR&kpjxq01v|GOG51)ZjyPr1*10Uzb zVmO?FSbgr;q7oS$RaHmG%|h|B0o0MeqgKL9E4f{u@^O)hoh?g@M2(Jw)(E{VzyzF< zIry!Gqe|FZhCMdZn5+&xV*qt5X`Qq-kgnk(O0e!h=>w_iYPB`Y zD{T_n5?Q|Xdr?-poUvPMe4cnT?&!#{1rAwc> zscxR~&373)i-sH@tqOh&*#7`jnrNgE$?09WTz93*GcM**PaJ$zlf<@cZJ@YejiYI* zoW#cDj+8OUNo)a0A!Qz{`_yuJj(gNm$$}fP>r*hu$mvw09)ebl!K+@Ia3_EqfWoQ- zQ#~r+#V7>vO3=xjlfwFfT-d5P{o-{L;#?91b3HEktgfS-82M!3g>+j>q`8e{LzOkj zl0HR}rV-@i_QolF`hk!rnI|JSG^YA;6+kj<| z%)k?hoaM!uf#h6}D9t|KkxR_H(_0w_q*LK(urb6bvN2jr*ap01I{=|4ke-#*HYz5G z@N-Nph`^-qvClNd2F@ugEHZL2_*H)S@p1H~*Aos#dr~W>4Kb+YcR@tSbB?E_LveAO z^VXpQCjz}BU!6&(BUm#?N%~i}k;$x;0Q}ZjaK8Dhp`h42lJb41e=xgOu5u0qYZgEQ z9MOb!6iTbk25V^u+C^@^cb>HjhpDSIS{PY+2{;rA#z8rzQlV_rUSH=(mc?LfhP6;e zMmeKeJoe3MvG*dCpaY&U*wkiBeQ1dgvFXJFDiBZdrDzD4$U+)fd~k%5iXo)OUf-nw ze}luhX(}Q*Qoik=5Gi%#n1)OYVy_Tbm4_^GpVF4xXX8>ix@V+(T_`E$NL6!XQk9a#;4IBJ%3yA3FWTosx5seNt9px?y1! z_%|VK;E|D^kzPI={{S4GIkgEMWCw7KP8adTc4L#4HBV=$iKPTW&3&n-m0-(dr{ga% z>fbq{Yy@^N7<4OXE+?1oT%JoGa%rxkYo(e$NQc+0fyC9CfA7;|L5QEiqz^ z6k%{c#XYFj_FKh^8}@#a-5dV^5MIeEH$F&gDEicwx0-g77n5X`@S==oflKuZtw#5A zHRAw#3PUEH46c6Itv9(os-0Hizfh+82)Neax|;^|c8~IrSy$84`I0Z4p5$h|X`$%g zk4$l~?Ti|IW8rIABM%!94|03fP;bin{Kn<(1Ed>WPExj-c~nomBS(NKy4cx3WVnq~ z>>qm_{e?-YTgx4|wX(!E%lGg-L{%eQySul5!EVg4E_-J+w;uK~_Z{kb%-48|5wmY$ zN#~C>#ZtIW?ssQ{) zTC;x9AxrydzyQf;*dyb$4dJ*1y0w&EX7Ant!;V1aux|y=jCD&lIga8Ypda%Lk@{w@ z8do>xihr$(FW@&%7WeuUtiWMee7OMZYOpNeb2Xi*kh+o>=cnUNyc2D41UikK$SZFg znO8s3m3XUNOKG0pPK*XUTOIxAr~d#HdG{TD!on2YbO$bx_Hfyd5IMl0Y?F2Q3fbB^ z6WX-4mhR$0>?Dwp&;yLr*7marjG`xr&$#bg`j(QS!tGTIcOVmx&H**hd>tA#ld8Eq z1W58vTx8W2>6$Fdq7%j(L)Qy zItL)np_0RRJXg0#i+DqHDz&Y5bzs*=A zfo=5dT_5fx!pJ^B0;!tjvTs!_qXkPGV0IKTR1$B+{{SwBTL9H>q||4Y;m#r)Aor#| z8@Y#+I43x_`mHW_DJrc1?Ipt`A;opQDc{Acv5nKaE^}YSNqiYwS=r?re}C z1Kz0mbP^eubyXan#)e3^wH5h)kj3i8b})Hz66Z9^(^CHc54uStKf7;BkM#Tg73)}% zc+06Cno+2OB&?DQW3Fg5t3vrLT4t!)CyACfAM`g^R>wdOf6l$*T{U#;@bIo6xI3~s z148L(9sY)maB(G}!9Di&{Xdmjw5hB-L!irS&F0N$I_Hu*RWY?KKl^_^M3SwX+U3HG z^aG%)2AOjuv)V%(o>_1XGt}catcbKbtATDq35nWQ2Q*t)=@&YLZyoO0paW2eP0 zcH2YMX$4EE+f63cg<4eWp7nkGm+BUmGF{ljOh$P37*DwW0BYyjmWL}`toCvvGLJ~6 zz7#WCYkGaus9>HMK$9IAPY3X)oTQzvAAh*ANyduTifr$!HS610p&~fsJ6jk89+Wk_ za&F&sG1@zH71;j(Xc}Z!lF2=~gDS2__pUjs+NwAb$V6wSuL6!(D7MfOO<6t0t^yQ* zj1KgQ=UAE+++`mC)X!@Nm9=HYf7U2Npd_!o<#XQ|2BhHRXCSM6Vre1VV@4SucCFU_ zIVDphf0sPg(P?ijwh--)KAaA}G#lyCMX_ zhF09JrFiH+3SX;g^Jv=C{y}1)vQx3CJTrRH>h?=3hc6&plg?>}jjZgV)tM*SB#;6* z!KKubr$cnfthGxY6IvLBG=s~K^p<{ie-4S>^=riea{b>6gA{$^Ph490X>gKFA z*Vfn2{hIe_Jpm@FwyIBl;QWee{f1@F0saOJ4Gqg$->iFoaVfxWX6>3Y#QqACCVOj{ zk}TvH@x=$FX}16f<(;NpJ#3u*IHSTz`oD8pts3eE6Lu3|#Dj1xz#ig*)m}(#irToy z9+ez^HEY-ON1sg(Y!RpX*ysy)u5T`x;tNZoBS6zdo=_at$e)FvFLIfyYC416v{EdH zLFxYVI$vJe;i8d&_QpkYm$ZvgfThK&$0!_zToF}Ej|%G(>OMuayGtKYAv;hHnpK5A z!_X~_JRjoMNzyCj+8cs@g#Q3)x%it-g67F@Emv~^lB4*AB+$QS2^d*5OQPg*QXT;M zv8&ddd8BDk$7LJDNH|qfy!|q2sy{FBJp%c7Id}e()pddl7G7F(4E~XdwD@E8e=e4; z*LRDxxiQ4K!S~6hdgqG`fdbaqNMV&`=BZkbi1p1%>0?%Oh@OZsib+l>>MgJ&@3P0L z+UeRtVWdz={wXt$prpEvzLqxTNR_6Id1W1kxUYDE%1NxEW!zt>!smlX^sP4WiH2m6 z*Z4_Z-p01%{{X;hhRdi&t=R9gkRd$^^#|C}+iTn1Ht0it>Q?)$o)~*kR(=w=w7m1} z3&oyrPai@m)S4RK+xd5ByS=f{`-;yCo8F(eRFW$CrInVsZ?;6|_*{MEHAvL-OUp7z zPqoB2+`oKRTmJw6OCoXiee+w3Yi-zL9#2vz@p02)(viWS0UruZLGQt=Z7S!VkzGH= zJ{p4In(Eb5$bRyu!TQ%exVL!RtEmjNnHfc)V@a@+^N~_TcJV)(6OetYS<{j+%|Nk_ z!ia^M-&u-ylsBcv%`%Q;l0F+b_^M^Rdxu_})q}zIlWLm6S)-8{1)SriC~>wjRxoqO zz+OLEfy$Cp1|L0Y*LmUS(ac_HSy!sK!9PPlOQGDx$|6RSJvQ=a@n&&oM!SIobAiSO zdX8embAYFi2YO{Sjm4{NxPoQRW*GcvNh2HZ!LU9nZFUL-M;n5v=szlyOCsfDKva$n zYG9FL8v$`a1TmknW$B70Y$=s!=cY=nXT3`9r*XbqomVsKyoeRz{W@f^IF59YEm&_r`<@b zI+Qr0#lHri6SO+2MmB@VKK0<4EC}Qtq+nH=$HJP#$Qms*;|IGgKb;48q)lsa#;G=Q|DXzVFP#nh6M`^M+5G`dOVg|dy_n`{+Du1mNfU8!#JVCR$G zqnB5>BWy9GL#G0e!K%uqkPp_T{{RyWlPdA?TAz^G88odnOpe6$=A)AAM1^zB3l;1| zbF`i)Ypp^y%82>*tdW}+>spkz3N6cSPMsz!C9IE#GKpWnI9GbJC2`{5;~~DRby2(g$Ojil3)ulv*u5 zBesn+$mEb_GNbeDRMpUa)u!Csu6mN6L09cU7N1UAON1)Jfu7>GhRGt+%t!_{*A!!lNqWoR~fD2ZLBM8rN%{Q z!xYT{GR>x32_x7~YPa}DQDl{@sX#$&&NvD8!SDm zp7}c%mNX-p-HsHKSjor(y+=FYF;!YZgEQsp&iqtP**sRfmiVF2PZTdwEG0%rsjZNb zGe5G^3TZ!zqKy9 zlwk8w$v$ay#Qi}u(TipSy*XlNBT~-$k6tTiAl@=~726+5*vrzkMHwN%t451)`^92$ zNS53RCe~9C0;iHzv?Ql`MfooGCNoh@GZBNq_^Rc$pr{7pMV(eA!7MZFUQSFha<-0n zT#o9&tpi5sCnRom8RP3rR@!^TA7?=fSjOfU&(Kz@e%F@Hfk1qK1}V3bE88e}Sdcmn z1ykX2M>Kgx>)7X-rblIRY&5AR)G(IFa9gQrtIOiaE_Ft=(jk^RX@=9V^#1@=Sv)}$ z7k(VL7iFV~P>>glp1@Z#Ync2orK(KZwHu$!7qG6hxZ_DZe+Q}XljRz&jl5!-qiCib z1S`n*QkNm92^))-K8@UVr$UQ>`NU=KkQr3Kt4DJFwt>HNK1C+dU@P zq?$=@3X}K$0Eh4ue(<%7GilFva~IjH^PI5TxP2=}6Sckl{=+F)t4Q$3)TLXi^zyBv zIpqE7cYm$f!;5PWtXI;ZYL(;f9T`LE`biPOylxz3tKJWqYkMn=O7Y1}+alb0p5~0F z##J8tvb`3+66;qnN99`Kq&&7x25O;ke|Yxq9Py(T=PTN!x}4pXktDJ?YSskOx59wA-9nY^%lR2bZTYVgAskArrbxA}Pf z1-97+v-Y{~5*q|q?Kb75JPv6E?WT{VBg=Gt(>GE`$owhqh}QD!LW!*dKvb0~J-_i) zONLg_%ri&2bX~2Uq*YzozdnAZT0+aO7?Rs8tyLE|8RPU6J+FwbZf;66QI#D?_p05s zytC>C1RDyI%Wx{kqv{+9e|>24A&9@Z}M zZj0L4}%wUS3Mi2neKXd~yPJJc90%y6q`$xxq=!Kadva%=7X0PxADRxZ^ozjz)o z%N@8MHD&Rv!q(SK)1x^MM4*qHQ2Ja;bE{fH!zdU#XRsX5dc2Zr8q|wwrb%7Os1#vb zWc>C0{{X-m*nfsCgpQ?vW@FNw|ADR$)Tb=ai) zkPUM^3L`D!-Ang6FVo(-SM3HbC&Tx)>Hh$^asc{cKi0X^zu4_@-x#6s3Y>kH`DTXE zt>n9|q?ha`)bDWPi1`iR;LBT zeNckmBfWMX48{f3&ZQYvwphH_{{Z=sTt`q@Cc5(ALhMce0=pD8Z=?7xPSbqSw~nIX zO!ddLHXHely8i30-=IsRP_?+;-c3U4?B(Z|a3}ntl-WY>Vmz4Lo=#5DS059YC9{s~ z+xf_&f!GQ|Ca*F=1Y$T>puo;4@<}F|`?2Wuo2F_pI4csWAG{g5(_KTu{{U%^(=NiH=1707?GUQ@+$~?WRIE4Wu%VJ&ickEt3B7-dlMYTIw*ss}YVf zpVo?L+OD>~{{Uk&yp|19!!pIK-Cx=4WOVcl{{Ru{X$7x`FX56|XNZ<>^7B@s7n$LN zYa5vwTVG2sZcZw+`rfB#H?+*l*+|_~obII8e&5tsqHD?Ivyod8MtX6PK~3V>t$N{z zJY;iB)5T_4Uf%NBDHN&ofzqnlu8rq8p4f&?yK_k@e}k~LcB>s-H9rsOnyVZM&?JM{ z^!{~C@n?pb;yKkqu_UsA)lEtJEtR!D3+nnag0kD6GBA4s&mV}R^_#_pZ9V5EHkLi5 zzG|4{_$M#P{+j;)43h1mmRRT$Jg4n|#t`*xzksaWv{1-njgOWOIX`-?_qwH|l6{*} zhiW&aXOG|Jkm{Zhnm_uB83oO`=L41%IYX7kBd1+}gg@b?xMWsUG>RGpWg^$lc zOl?#{J|q=pk8IC^Bk=*f5bdm!1F{i_}>fUu>nB)vUI=X(*t)i8z?%$lJU&A$8 z8k81sPv9@ZIndQ7w{WNfq5l9jXy|n- zJCd-os>n}5*gu6G73Pt78p##5_3yL;S`9zL_p+9ICymE)xc;YvshTQsK4f0;C zHhSfR+JBug?M`_-V+OL9c9&7_w3;XO8Qo5@MfupR6=~LWK&=P>d>S6vW%F`XvG~)i zV^z7gz&3@W=v_NfiLa!b27*>o{!-Z$oAFE|t58TAh7C_EtSgp$VyjE4%?JJP{C8fJ ztll6&k2$3uTu|rk9S&r^f_$sGl0DXjTUeR089?`>$HcY~oXYZkC=DHF;wueCPcGh3 z%K(3Oj8gMYO`5%i2F~4A_l}?+^-^7P!a8Q5Y|n0Ej^qMVhvB{rJ#@Ex3zvu%{{S}} z)bVMyw+Xch56LY86@8ySYg$~kQo2nWDMDH3gQbt8|&)XfSu)MSof&`F| z=XP_=avQ`eCU<0?n#wlXvNKe|7Vb5W4nlP%x-aa0*5=^eUt7Rs^54sB9><#HHP?Uq zKlqI_%lqv%SbV{Ai4bR;jtKm}l{})7Ha^Sdzh@zVCi3K26SgyvL+N)bx;^U2A`n3; zM>WxemUphKP@u;{Q+<<4XWJ&weaNNPX_t~J-XgI}yGwheUFy7l_MT}Znr*m;c(;t; zV2!1Rl7iQP}BmkkMNr zG4~m#H$E0s$&N--{-wyF28(wNc5IP7vx8HAHa}5+LKtoBgu8@LwtE#6%k2?15#mH% zo0MQsLe^Bzn-eeLL(bAfa)gndXi9Sp(PFf>^6=2Q;GE!$gH6`?BaaTCABv^g-^e%_ z>w+n*tj1tOv=pzc1=B3{H!)0bTPf}BRo@(GFkD*9(5Nkg$FcaKwbyOLpd(-(CYq`I_+>3&&OkSTO`2tsJCHYuJ%iuiCbVEp>4bO+eJ>=Y!5A8?gEX^x{F);`9QNK8_0Q-Pjpv1Fu=0kz1j~52t3QkEKYK!)cpu!v5 zTXs@QDH#kZTg^2*qGG^oc05ua3hF}QIM7LxjB-7y+2(>jfr0!gc`>KtM^ChIy?(-5 zX(ySN2+UN~T1Z$HBzk@8u6XJM{{RP9t#aNR3;0A<{@7C7gqIH?nKc*r<4(PZe-HY(W^`o`nTgJH)?NJu1*YHL}HZSh&4 zr$ho&12mlA5I;IwBVp*tpNd~FXvIqketdG>xVeoK!(~8fgmF<#DFdxV&7&IK z%edBvKparc{-c`6d;v=rX0mw*1DXz2&VDLZV#1?z%G1T$H41L$WG4oeJ^9!{>(ZLv zLy<^s;@WdUshNP?+!iF0OXQp8rn+nsnpJTpB<87(HftrC=L4+)ET!|B(nl<7OxIjs zkm^3>M<$Pt8$z#2UO1^@kg3mFGFA!2zJ@J@N)*Y1kx@%<&+$=){AnW!>`3FT!VKrV zYGowUBbt^p2d7#sBo`Eqth6{5e=!SrZM*LS)|xym7$~zejCkbq9`#nV^L+UBG2OeG zv)ttpB**UuEJb|h{v$h{Ck{V{&*pGtTQ<~Xvr8rWbbvy*Ic_=aRZs9eBU8CIGwzo> z`Hp{(qdZ%4YrYuFVrgMr*gTB=DF&H!eRsX?Pn3kA?>v`sqpWrorTSh3m_BjnY8$9i?TNG3ZKv(>$gH~pA+DBRAv&ZOQ( zp9if;7~E=-l;!vy+1H9{X*w_78qiFN_xhA=WoW;7Nf~qPQS0{~YqA!LaO-AC*fYwE z)kF51g-~{*@q*`Laf=#J5sKJGi$M?A`v~Ds4{)zo{}_cgfo%66CGO=41GX<#jn;mIPcnh%2PQMdSpVhk({xQWp|rMmWefYqla?po_o~gc+v-sh^&EPhRl3%HMS*i*}klC^K!??`Tt*85P3${3aujws_@k#67t@kp*Uc_n?) zY7j5wNp+zntnVfB`F3$|pd4?i-RIa$Op!&j4&YMclTTfKzu0)4J4U^Z>e})Hc9Jka z;~j@X{U}InY;RPPa0_?lt6#IrSCd$c?ctH3bZDKizyyDBRx#nrEjDQ<)b9cek`Ycg z`K8AxI9|K^{UUs19KRUhs#cgJND_oB1JVxlR8n<4DCl#HkMlET-+rs<$ zi1fK4rK4_JE1QH;(z^K(fH^FB(-n@}!P;3bwq0i6ZaC-5&uVXWZ2T>yERqE`1(~8w z;FH$5zNdcockh`_OG;ie7&I0I=(0pA6qU_N{UDfxb?|K-t@(LJX=}8YybvnF;CM^tNzF`Ucj1a$hw4ESfa#tvwHzn z-EE_vQPZbZJ0$}I9=v9k-RbPMtsE(aak<+#=h}(0w47)bYdH-qyS5L;2_Me7V+wS< z{{U^GP14XD4w#PCun`y+curo63?RbH^3aZ0%%|!%GdzZE^4Hc^}Nz zH`esoEia{aQ@EU9euj=!Cj{4kLWOH?VGiq@G3iEWka;`iyKD~1I{r17&TO1a=C zO0oDyPyYZ2@QIRcFZDoJ4(k}MLE=>@t4|*#L8{8uEBE_fBV))M z@@p-Bvt4ck@gyQu@?KzJaCpvoezaHZt{<{mS)v{T5(w?qs&;pl7wrs)!rJXz zIOhj&ITh19X=e9c8?@AJ)JmLhz|H~x0L?Zp`6DRZroUgU{{TTGxU|k)pk0kZ&8_c_ zSRJ9il^+zEhLdm}30$G=)E})yeQIpieY*bPha`0swYByDj&59DRk?Go@n&U{54p508 zW5_>Bq3c?ImvJE|W1A#lhc%pTHx^{gBAPdBOyh6MS4Pm5+gAOZ-&jP!mMzQqjMpL- zQ^O8t-xl4@FUe5}!l2h?zBaVH6@e{2$Via^r!4LAm{U{L=64mhg?tg}rB zNn;6dj-#3&#@4s@7Pn2eWQ9RIWM;j2I$AE+u;)MXCW=*V{{TXo9q5yCK$`qCug?RD+!9{&I^N%Tv$K5hWqKqJ4EaU7AU^~T?O z=~b^3t<|(et_+bfoG~LA2cgYeHG4@Soo{UeBOkr9BR@5-_>^}x<_%H-I(^bvIimF1 zk~e)6{Q~pM(B!oQu?*g#+2OgWYbLE@ER$PbG(}0kQ;gSDxA4xHawKgkb8KH3Q^3fi zTAzfk;ARFr>hiTgmkw~bR$^6r#%IKx%9OV>O-t+3l5x41o<(tok4 zd>$KU$t-~U(-^!rxMd?u{L{uWj+583*p7>3){8N4ZRANKKJ>R=@T{|0mqalz^#VB= zp)DiS^ydQFW&n2Ik@*^Ub$w24JjX0ZUj$@#r%qi-4X+0^n@PI2axRo(rseNOX=s+y z22AeAJu2KC?i0(qfs~&3$TYI&L@MRtFSq=)nrUeYS+yuU`vtf`kPhMWB9`gelyOe6 z5CDD$*R?h9!^b|H*0V9nF2WDDWB5|b?+?hgMUx(u+^tIDvpk78-1+UQ^*0cREu4p_8gbt zNE6!?9_VvKGU>OgwTyech}vmtO)uS$B!lE&)K^-6p1YzY8`#rZf9wt<*B%-|+pT0} z_Ueun@ql583{i9MJv70q*rOIP6u_*2D5|z0H(ub8^%Cg*s!<&x(*5J zTu?EF<@1s1HS`XpYVrn4xJW(89c!6*+rupz3!5|qXVeF^M|ZP5m0SEt2!1+Me&@Y9 z+*C9&ec{FpD!EKPGsRLmVn`C%u;g~Bop}`;ah>%$af4KEVpf65m3ovM4&R+iBzuq% zP~+3@Ld{0X19ARgQbiHR89C#Miar<~Mk$@0sgRA#;X`s1bJm%5WzgSAwp8-NDGi@V zk?=U{z@dCg{{Zuu5DpLp{VLO8Wfhd8ZL=uceRCYK9>9CmS6Cip+|u?gY4d84qKPy| zD=_Vfwiv|FVD-o4RINHqv#I&3u9(JE+n#HlU6qePo)nR+@6{$DS9b=w(py73D%eA~ zWD#7t&dsMTzr;EkzG-4etWg;9qte2beQX*8@lKY4-Y|i)BL%_ch1RsY!J)KJ<&Y+J ziZbr*QGFMk_f++#Z>n3*10ya891toigqHLKyrbsZi&-PS5xSM!)X!43Rz*}^K&vN+ zw5K|&NP~1?w<#1cvh}~2!N(QR7jaB9QQbHp67wQ)kDA~Xz(*>ETIs*CtMO&6jm@=W=kcPQGc{=H zn*Eq`Y%O!0P9qe!uEl(@+(+57?Nn`hLi39lq}qL$R~|^)v}G1hWPB4q%Gu~?_3nj# z60!0;#rIBW4Dd-C5hAiTvkX+)Xhx_JiRQAbMN8%2W}|veG%4nBoK}IdYCMv8?O7C6 zm?<0DwjX++L+w(jAY{>R$OA3ZccYN{1ucq9V9{wNN5yVNHn@`nVzC?WGf_$EHRzXf zRD6Uhmgz-X!N)yKV%{;u9~uq0_O9Gf^1#6)i)s*fG&G95U{RMZ&OPX20j9KM2__es z3Rmk!U7k3lk{)ZCeVE2_#Mi#H<=|$#%qt~GQ*mA_25KGPcjBXxUOLl7(-_6h2sK~S zN`Psd)c9Vw;*j65e1X=qq^t}_e<0@{l_j0B+*1qg3C$`eCc5y(kkD4_#d^J26>^8G zAY|YQ$Qd+Uq$idmidjmKu2c*me2l5)yb$ie9Mg4N;egW>=R>rHy{&UTMj3y%Opk6w~jeiLQ4{%E0W-7ms>- zcVL&cQCUh+ZR6=090OI~v`=ou!F_~dAoE+kp&`qQhb()8T~Yr4{Q^tye$0}T(xoCf ze`mTB(m9sdi!nTj4;2rId=8qmjlHxtZ*GvN3C4I7($i78h!N&2ne5{=VbiW7zqK+& zg(<@+JcC|`!hhy*{7ks5Kdl>{NbN{R;O`6Ro*c80&q6slkHMXA&jo@jn#!butRO(^+^YkCH>^5rqt{{wdU~c{pPHb z+}xtuA8amRwUtEk0Fs>~zB-mzydx>3Y|SZ%kG;?{B9^ z!pi=TN79|!cz;3gy}z5TUkj;}XJZ~eDjUQeDAqMA7Cs-66o?K{MjTZN<4V=_1v1_G zW?`Jl`9C!#?edDZ@BWwfIw2(V*>BZQcu<)gTaFeLGU zKi;WU-Wj+s?4D@908bTh)inEy-vsHQU0!=&U}pFoKTJ`A$tg8IEBgNc^39XgRC6`F zl_!-|iN`=`--ecLO64L%DI>PhM{jdO+30My&S!5~9R*+fJEue8v=_HZ7D-nzsi-VX z{XNHWEKn?#Yb>`eJd|8V6LtV~KQ(Ibh1|B9ea@;7qFo@4IGcj_ImoIo_mjwa5!pptygREVuj4B#NaH5UV}wvRKnDcmQEI~UM;oKG+kn8HCGc%9GK!g2jSkS8uyE?u48qz zVQm7A0`i*cw^RU}XT2%? zmMEITSGC@ zNfq=nxsWrbmQT(`E0$_gg~?(GJ*xBjF4gCrNnw}n!ylWx`wZhhjUvnc03u(0!IG%D zFSl5})2^Y1gZC8ldGwbAP~U6707kDAbnQiX>d;BFly_emDBtOaeFcS?ZYty`&U2vO}+8O%K38k zVbX?Nmj!RV{{Ug4xQz52PB?Fp5-|+EhU`8n*BLkZRorR{(q+b06;zTS1t6dLgBVL?Nui%=dCrf z@Us)TTa*O$0*Uc2n{9Yqr(}Wo+Pr?XTGTa1jv^sqK1r=Kv9_o^mMf1AL?luEAgDpk zK^0}S(yiG^5~PLDsTuFyxb?J?UQS%Q$U*8&Ts$p1L3Xh@Vpx(o<2c18EU%wRjU=eC zN2EpejmBGxzjGR`@3?o#Jl1zf(ZWrWBluu&vmG!?5hN`qJ}s;(>)(t z*R5To60E9&1Tyk|D!klfe0ui#LcOlT<<;y~6dVZj}k^lZfZ-Z zG;Mk)h25VLFDGsYKQy0L@U_O78qML$jrlxBnr>3NgTLti0CQ>fWB&j~>3Wu{8rn!> zkPyWI#~H4lX5VZ7020!q0ii@5TK*U!sa^tG>uZ~-^@WT`i=3}+{MMRQs4VHaIZ{{Rl1 zuCFaa#~|D`4wRQqz0#-M*$mqw?Ht@9N^tN!s z#zSr61EpGTW17YzEEWlHgZzYMliT>m6Ro>xr5ihN!yRf|ep=r_>_w!cx^A-sn`A;s zT!4Fuur9S>sohCqt)PZwIF8|X&(^opJW4I3K6aTI3&=UFNvmlW1wPee6`W)cD5{0i zuh3SkSFCt$TUnM>{p2mt!N?+*cqJD~@dd5SvJX>vXPgWlif3c5>5#^45gE{r`)qT8 zP-^-WgTR-tTwLK8IT0L{Bc7D?34RK{*T2{s@+Cgt${AQlke2xa3fr938=E$@{aXBQBpig?CatK&SBvvv^0uLgwe} z^D>y2&6kFHAaXXIR&lMNOjm zC69LkKzbjjr4wkV>*iTZmoc~90kVHO%omnAwvh0jRLkig_C1YMEwu%(z9|HcYdW5p z^q<0+lQsH8)+XX?SD||mn(}n75@Nq z>-Z5`yloI3S;;@?6*m)06mBY z6sN>;$rOKR5Eh4{Z9J`42CHV=I}!DymRAngXz3O+Y0@!hrd5;jsPDBS1cg@wf2W$~ zcJtdj{$;$tH~L$xS*&JB{Vjq(tsK19fGH~;YfjpSg)X9H`|$C&3gGWyvLes8u73*e zQ-A!0kbTxnXXBdV4PebJ)H6)Pha@Tv2iNqjjBC|jK{8QTF{(3zf;$6CWnVINRL3L_ z#;jVMuaE+O8C-S6525Mt-}r{g)*w}6kyPjNHAzN^r)Oi+tn|3_`)J+ZGOTK>L-jbO zwpLc+RC{(A9@2HH-TwfEB^#Oo3G3}Z!*!|Y4~Zk(2l}wk&r+%!8MCXE?O0od70aT)|t38oANaA zrl=0jPPn%Ktf7GIM^6u#0m<6^a;F^ErV^_aic$zZ^#eWfA5tufobWq$prYfd(6NJ$ zOkMV!M$PaXOrx`kHa`+PONpU)&&bHBCIx_ChbzuK#ZH$tlSCFpU`HH`(WJF>XEvUK z^sQ#oQ9_ax40{@a`$<6Mpd)WkC^;dqEtN5={{Z|Zr-|f&GO{x-`A;+@lGQh0eh?c8xR7YBJ>4ttKqnOQt{QU36#_Xo9NZ8kV%62t+=w|Y;O)Rf@D z)R#tERJXaE?e3#7%00&i=}L9I98C)wau^ZPh}LxWof24qEWO8ER0`Kts5fQM`}Gv_ zi<0#XX{vfS$BVQVx0UA#RkMS|Q!W&Pv4#zOC4HvBtJ^r00m$aLAB_AdHIZo}LSs|+ zhqV~!&NhlsiIZ+e-W(c=Rl&w-{I*XfoE?`Ay!}Ng5ScPS=}mhD5nB4tueTK(u@xOD z&90xeJ?;Elel#uIBoYX%X@Z4tec}&VxM&C#2Q45_`+AJxsz`)ff%sL^Mm}6oD*(fc zsiwY-1X*!z;QHj5v5@c3990@vnn5FNI4pUtm30ugwOQed%2<~GWAA+_3u(waJ?5zO z<0tc`_=UxqF3KbkKiUGI=R69s=~Kw0ZpygeiVE38dW=q2A-FYlywDGq9o$3E;1&X; z_7v1eY_AMcq0c0a{cELZQlzm)2*4wya+spos78!>H+t$;HoL8&Wdvb*ib?foKS2A9 z9VT$epM9j%EujTDRh1j50Mzl^%LfhWT4!%`mof0f{AZe)aDENMsA}3U;DF@(imB_C zGOR{aL+Kk$bt||*=XoRMm0Z~g(UTd^>sd{7g}QqxdMAg`w017Xb1xwK(i>epWP)p1 zdJKjBmC@s}duwA3SPXWg@M$40g9h);;qO(yQ`U{gS~-mROyyk`Gv*=djM+(vdbEgj>f9Gu7xeV=$hOS>d9I^HlDz)_Kv}2B3xO;y1Q6Ky z=BwI8)RDm$Z1kr;X_3$n=N`n=B{e1(v}+tuGhw$zeZZ+@(XH;&4%X6-X$B1^z0_`P znoV00j3_Rn1$% z$v9`WP{-W{4J(82BgO1cVi}@Dd}fcELA`66Hfyd!Wr?r(E zFB6ac+V9sIJQ6P{K~Lf63Sa^FibwF*R#WmZUFr`H+k^KM zeFaB-;Y(|n$Y|qy`-%_Yb*2s{05WkyPc|#3YySYV&;vE0F*jkIyUfH?P4 z+PUR|Y1JBv+|zD6ni}CY#8}gbyfv(#E%q5mALZtf-&yJjm1|3Zj=qCZc;ueYjx4Qe zCmWA?RB4{46~g}j+=5gd?1WOxb6$ouQ7HvSt6(btRPjPsigxH`=$g_j_TeIQn9i%>hIbW8W!OIC+4FGw7}aD%DYA}QrWYi z4UY9Rv4%WUv8K=f71HLafTiI2Hg8BQfD#WvdXI|0nPiNVVU-!$de-RT7?DclSAoY$ z)igBuT0 z^LJ_N`WZ@q^Pf1afV5!jgyE zv7s2VSVUIQk_r*_N?hCSzK~!vH`_xvN&6>!@<*tI^T$G^od#+ z*L1_ETCSfGYWl6fk4>~F2U#DWtsFlen>Wl?7yExhq8|+@E{@4&H2cKg62-XnTysL| zS_C&y6js^~U~!MesCJsnnmVkSh17m{?-jXWNv`D7cA~HL41PNz)QZKvn+AiYo4s5{Sw=<c#PqmuqI)uADSa4nd*XIapOexR9Szt=_BlzAO$aeQr3 zXKX4;-pfz_0Enw*w(&$4XfTt^8p&NV_j4-Z>^g#OOweBxV)x%>tx zWS1zmiX}NMz^1+=Z}8s+XtuH(NYRO3J#u-fwub)z;#$gv$%Yj&VElBZQc#RwyRYTn z_XS?arPC4a1I%}Gou;my6t?>|jjP=R+8G2%{Ll2NEcdN0uQYLx0yp7ZFV$_~1%<#9 zG(q1V=3}4a1yce~CHsG1Poh5v8EaX#wqUW_?d5j#82PJSl9qY^v9Xx}xW8i3ll(dRqyBtRw$@RL^9V(F zV{bEKe+D~>G~778{^-f>%0KNF{)bAi(rx+JfE6D~rs@71zq@5)8l-)FP06coj&9^l zW?aYWZ@T#ED!$kAqY8=vO@%#OdwEf37u$$dFC@ykm zP74nBrC;ItavaXeaoE!+wFHM&Q0@h^!x`w4wZx6&r=1h2KO;SA zYHhB~NH+ff#EzHKLlvqWr>-hkuWzM`a>E>X_@!5Rgo9L`IHHYI9$1Rf<4_ACDUgA2MG}J8Qu)1yb*9@rH-xkv#M()Y<~4&-h+(n(L*B01Z9;GL6$?FH%_KxVAHZm8lE`p(a%-l3&hHmU@fX>hRyCbWeRoOE5AgIR_^P{pc3EyN=>il1SuLVm7z~ zIQgh7t#5P>6vb_*I~cAr60jbY&rDF>CbwH{bV|Sb;1*Nd_pMwNHB|oqpxu@a3+s09 zU&(Hw7@FXXtG_&f)|~5FWOn+L7c(l2%u1E{9M?XNOt;mVJF7W@TtL}YQ};;hYo_UJ z+SZK@{{Z{YWE}MbQ{jBmi}SPzYh+#?5n5|+mIWpNV|PM6Di0ayG2H3`Yc(78=lhDL z__7Pg^+9!N@&ggcRXsDIS#J0wmNvF-u>#-k^0QI}nTt3_%#E-lk^4#9`; z^%?fXHPL)W15M;z`L^@+k$4pjr)-v2!Pk2%-Sfa|Nq7u5o6r^@?%EGpo=CVpN&bFQ z5!%_(;=j8L5@e3{*@xdBcz=39tZ243vplvJ0xO=TGJ5_LqeaxNZS@GFwr0a;(B9o? zuAhNNv1&r-l|i2II}E$VAp zS`&2;ytM4#XNsFa@eP~GB4S}Z3b@88T;iXtQJi0aTzV|lv#Y_8j?~J0&j1dah#hLy z_L0cGd_`GtoCDYCNN&tqsdb3K9>;4}}Mt7Co2e-JPe7!9ct6MniIy0}W8HxO< zu8Jmxbq>xBc**NdhL=1fl=Y^1_X2|4iE z_#7%aoO(+x593h&%^=_6=-qfRBRD7Nim`Z}*d?fAIFy1@1YrFJ-r-yNqa0~NJ?u=I!$kGm{ ztqDOjT^(Aj6&+JnlTN>d)Cbc?u43&4y1y=bc(IXqFq|& z*mNSHKbZ+P9+-|*+0{+Otk(OH*OP&s#(#Z`k}_j9Pam|QdrMzb(G~u?Mm)%3|H*Cy83{l z1mKmF#mPt3bd4(SeA{Fh1Cfs7y-R+PmU#WSQ}0we9d+#FM1A3Pn zkMf$bovJG0m>~^o3%1@^{`87y+DHae=laqqS(DLCnhz@O zBaR#S)t<vvF>}CwzN{kZ@(ancjm3}Ys)1W#x9x2 z?{xW~EOz>$Z1M43cf%4xeWFGgLC73ca_Z0RQ?S@Ku;&!}Mz{MNkcJ@JRP`S91pO9@ zHm_pMW5YqN)_Zlp2c=rH`5NBM0gN0E;We~!XZLTBApL4p3P8^XxT#N*RUHMzzrx8a zZlbwuk{~?wBNe>*ZV#JnAw%paW`qu79DCG%Zk0&@njF(Ta=%ba6$6=G$ zijq5Et?B?DaYEZ%`HlC_(uwjWk-%E{{{Z}rB)po=svGa)@u_2sGUP08^;&DE zX;@IxjGvK4yfMf36ZEc#;cM|SPElP7BDW!PBr%Np98_~@LUZUv{6=Z)Yrh#7(S!%-#WRmZf*?3k^cA>g9D`ddvIFWgE9fA-md~7^A4)x#ABuuZt8qr?6<`u+R@+F&UupsTKWyZZtNByTy=&fHekkv= zQCqn1ovg}z5wP}U29rzsJJTh6$zyEC-(aizHq^yK9Jp^*aYEJfW1UU=E7D!R{#kAE zLJC)P`y$dqWi0mm0&B8;qA)R@YAGiK@V z_6^37Zrp_c(z~w=TU{wr8ZbSGsLSCaewJ!aw0wl8Ek@eLuOL1CYv`R<_G_n4xV@x* zRTwo=)IVjSCf{c(#z$kwsbs;CEh19Iy$~AR|6!D_3|z?>H9}58Hza_nk8%^a(&HCt>u!S zdVQ!>Z?n#L-i)_`8*r`&1FL*co+Y+TO`vFG zkOuUqJ^q#J;rJL%d~!N%bicdsTO1VSNUh##`qrg?9hQ$0qR7}XIs2pE6>5@3(~)fL z_uNTuADJU{FCpn$XqrlCN#;nw0UM-|x}SmZSiirww}GUyWXz`}&n3QV-uQoo#qi3~ zOZhzvc$9iYPAv#UGwMDfxn1ttgaNo8Q{2>=uB#$j6w@J8jB&UM6Is*FsUUgg+&YZ0 z;=EE=AxNVt$~ew>#XRy?;OqL87HOI#=DBiaznH~tr<0tP`VQ4})Ag%A49OH)RA^Zb zsXFf+_Zq5R3*>~XF35+H7on`^Iu-7za3Is;XL5geJfC$wr}|Ret~KA@g_Km6sP393 zp&iY%GsZ-aO1s9>)7^gxY8%ZYMoAsB+PVF_x@Usnw9#Je<-49u#zNc&J+atTx+&Qv zQ^%-!he~KSANc3Cj~6~Kmn!fu@=E%SKMK*~SB0W#nj*>DAolN2 z`C?I=22;ijJ8E&`HKO=_B6y`~iaZB${w@8UYPvnj;^y3Ws1I;^{$i?r7tm&ZIy;z| z=aOL<813G!eh;^n!}f;q!3eg~q=>;gyNpWB_jV7cs}sc5TEVrqj6#Val14vy$6mE8 zaHYe(FJF^i=Kla=+sBuZ2s}%|bZr5ub&gVx#{6h~QNx_IIXFX7{tqGvp@7n0IG5AEg=N z8^HR67EzqXY=KYLzw1ql(FZSozw`SVUa4s6eiMc_@ZGBa01WLb{YG*9Dx;!W#WuTt zt!g9x0H^8M*r%hvVgCR=YTcnP*{!@eX2b>%43BbDpX*dV+77jCVp~MAKe~mBN=Na? zdj3_@IYnZNpNfC0S6{gtX|~exZFjEAsweo19LeTxAb$x5jDD4Wj_wE2+g%PqPXehP z$GveM3*NNw-okhT_luuy_0;rx19$s5`yq0(%MqOv9)Ocv{{RmuPD=dR{clhDuiUJv zKcF+)#i+;R-4J1ZVwbv~Y|7d+}*WdURs%2i{E4c6@ju#(@G$GVwgVS+owMTGjEmp@+(q(D%`?&BvE!rWSG77b@8{o*b? zLj=+v3*K(Dk>Msb_xTjcClV;Ufw1UK{{WwHPYJe^uYb?DTx&>6sAx@Q7(~O%UdFfZ zJ-p4XgCWYg71};9f2A_kZRELtTw2UTY&pd-{hvd+@@CjeK@la1?syckf^&=fsLP=| z`fS%)h1DtWm+maoaoCDNTZvn{ASzgC(@-#2PWN@dc{At6PHOnUZGsbVN z##vACQ$Z|{QI~!I-xgPF^>lYw^?PQ9bJBRmIj2(DCH1o*D>RC`k<+d!ytq} zz0>~y26nnAIuDC1?iL*<#0(z}1Q!kWm4`r0G4ZXeMWc~&U^!K|=m&24{xnIpHYh2NVl`rAQIWgs;!ZdnH_$WNX5lCPp`k|FV-bDPPc@p#e{n_QjNtLGGP~gkjL?~- zalRzRif#H=#IrzWc}BR+Z)o^Wb8A;u~Z@JddVoioFJ zD4$GG1@12FTZ}g)N7ubJ)ch}|c!nc=p-PJ;GSU3kC9{;q;BImcZnbOEHCc3)7cjYs zOmac~Vv;7O(niY$MvYse)W0QZ7sDOC+!ghC`MZ!J!_xOZ~hl^9EftLK{!3C@7)`wX?vYB zQ<4c3G%xBxPdKI8hLa8KvCD20l0o40s}GIs)=eHO=&)WK5`EOwQ^K;y_lTLwhR!}Z z&~By1v?QbIu-_A*c8UHJwEQfDA!>_{~~% z{{Rl^%W4(vnHZ9Pc)L$ZL*P9+Z3|zzZAqhvCW{D5bvYbYUVL)xtqTc7`b!*A{hY84 z2?T;FZ}A3kwXwIidS7!o{kC9Njpv%skg7`buP2)DM}kg*rXk{OfOFJVZeJQWke#Fe zXeN-Qwoj;ADR*6>E+n&-B87K_#~Igl!cHSaw;ubMvCw(ksY#Qf-1kL!oyOJ0|RogKJ?=D z{p}tAhw44+IeK3`(5bYYg2!Vrt3u%9Rinb5b+w~F;EuTe0OEh%g0i|7C?s^-j=v_D z>Gu)KbOu1r6w#DJ8j`qzG|l#jVU>MKc@-&6#sL}U)_u$yGdzb^2AFOUYO&LjyQHPfSxq zd23}amVm6SV}jgADD@5wc*v@kjP0X}dtWafybO3BtzVMHdy$7+6V#q+rTa#;dr9n- zn*>6{!uMRpIvS?6;^tcBjIQgem`bCnQ zoxhbG4XvzFD@Io%;*%aH4%lOLOs4AAlErWxN#yV%XsE*sk`l3_F+H(HMd8V0^*A6N)n|q{pgx%MTTOTy34kc9QD0VRO2w9X z4ZLi*!Tc$twvpR~A#w-CD>6xdr5iZ-qI}i3U5~{(*19s;TE5pK6NqERdQ#WaZzZ40 zhA>y(HEg-jZ0-=_Xk*_M6k0dgQ!$MD4~oh@Td+T52dBv@L;KN#-ibFy?vYW5Wb-{- z3X)g=QdINSg|N{HaPk3xkF6Wz6~hCX5XLt8e)UIjJn0b#bHy_JfHe|Fw+saB3e_9@BA!zwHHIUeDIL$``tDb6U z0343~)r@FJJ!^DDE5$;`HLxXk&sqtX-)IApKN{0<9M;7S4?mq|AOOLp0hI;073TDe z)?5W0t4-PI$*kFo?awvo2nqqHq<31M=CHGnhLwM>o;ZMz2))&zJU&o$w>bwDBH-~wI|D#ZZo#u! zm>A8qkA^je*BCs)BDb24RZbE#s5`$TDbSz~-fbZLi5SmW@XwHgd;hGX~EDZXW*t z6;HI&?l11vH~=oks~iFN)$;Q4*Gtp(-ORE$7}&qcs2^{6E}Cfl0h`hXYWe>F{EVYf z_g+5#03tsXR;<10z8|sBt)#ranWvc-COFO%e|kxEs0+4^Xwz!sfIcXjW|r$qTYoW( z_fjl;{{RT7{ACTTj8<@2f)X!4KK}qU$?-TLn*x+ljVt=^UH9+(G(u8UNeZqDv}KfG zLC?soO#Z#i!5maGP5ZNgN#cTh24PCHwr1#HW6D}E#|2p1E`39TJ(Mk1m!RI*Is>&sA6)^0z+|f#Kagz4q1-^ zq`mPCo{tiF=g+u7vMAJK{#6FAuD#rTU6g)I1K49UuT0XSxs`5aIg>d9HS1!>j|NXh z1^^? zk27`&_8F>m{rvIjbGtDpT=(f+bA+baUw?F2&zx$`-D_oMJOgZsqa6XEZ}jVE5z5Fu z?+50&){T9t&e5fpnIUchs*+7~eKSp(#s#?7*h_QPJ5YTq{{YL}*2JdX;I@iicTibo(8-$}wO2jyt2PGfI)yU!J#!qPw=ainYJrL;1F;@#|Eit_5`ib%sfHj9bEp=MW&eO=^U%& zpcw-M9G|6ieQQ&>Tf57NWLu_NeWqxaXjVSrxo3woh4AILy1jEIt9s#3w^ao3T?bWR zXW@JDd3Ru+To3oHix>QkPq$rtEwA5a&_*0!kwc!qc#*!3NL9V^BfHKa~H%CU%K=Zp{s^R8R_KGVL_ z;wwveQ_NK**+;PEn|PWvI^2`)Y@fUFTyS#vbCiDHf8evG_F4Q(Y??LQ^G(c7<&)`6 z^i4y|@MBB75j5o^W9$Vk@#J#fcrQ=BlkdiXCi>EE9bUGF`#$i^y{;BXR7!qJ5`VRH z<&$$$OHE()uic9s#U>qn6WA}EZkd6&o(AlH%qR)`Hx{m@O)^D_L(i5)N#So3!>wD3 zYn2OjqXZt33eVb8Mb$PE&1lCU^egl=xy8ql>&o`~{=Mu8ZoGqOb{BdqK2`J#ujZEb z1$uC4=9OvY&2rE>%Wo*%fO%FOYQo+qhThU7ytYf*XBr(GvN(0n-kVSr6I2ds_B&*Er1PkuiC0NJ>d;iku^OO(!7lf1C`+VxPSt{+GE2S8I`Oy<^m zzFECMXXMpp%gbw6wRb;pF}I*6zw1t7`z`EX#TfGL7b@A$Uf<5NV3(zI_A7otE&j_R z%l;t@Niz&IkR0dg2YMS%uo`s2OI4Odmm>t>SL!OYb^amYy+TwDCbw43**%ZVUAz@{ zXRpf3BZzJb001~9r*e$AWc&Sl8P!@brHgs>86oq8Qn167vXvHAX@ty3Fb z>kn-NH_(wStfSW(bggeJY_+RE_Q63TCMKjl3y`v1Xj-7;u zkx!w=df4Rn+x=J9{hMA1f5M*8Ufd~rX5pcK;rdpZoshB640dYBi;|^B-KM&JtY=>% zS&T10mkZzPOeTcI5m~VI$FaxFMdIxa z&gB~F+9fhXPH+V*@hpm^*pgh1U8Y;DxD#9qNsmhZ0GH;oEz7*D2+E$6WOg&nc1o2g z{!>uuwsTvyQ8A9?#xIZ zIILYDY&v9Tf+}*!C9v}2`5mjln*N`tTFnY&cOFyQB9?2mDGaQu%x~Y?x!;1WUej4V zRP2c&9FLLBT${upZfCW+9%O@+A$p4G!ItA}r70~EMH^41O=T&_3S&9;?NsjxK=A4} zf=q(|G5$H@^s7uaXm3%_;7BmQp7j>3Zx)+vb#gc}9pwHMZ9iABsj*e8#_IM+!Z2;* z9D94$TK$>;!$3U0%C>VfLP+CsK;4hhxPFsZqc-(8i_^AB3 zG{W?(#<%;JUieSqR*W{S8?JGC&AVy4>Qco+dAD7G-b3l0OqD#^kJyJl6K~ z0}@SdbsMQacw~00WK3tp}}Yg3?6t)Cft&?`la&MmH}a zWTu*Aw=%48`B8A7V~Q5WcKdW-6OF(cp5F4pcy~~%a(G~Qb6*f=EA#@fc!H{47!^3_C-#J6`0(Z`&0%|~@Ck`nK@p82Z6 zR;?gQ9lK@1ZxCtL&Of~UH%@~uO&dcL(p z=KFux)Ru?;0Q&DyEr6&9_N7|3t3I(Qmha4YHta<~kx0lWyRt9_N%p21Q^hkxje5}> z?gdbR_@4EASk$BoqQPvJLrsc3QV%Y~#@<@T$$6V8kq{RlC6fM5Z@^t^kjDcu2l0yq`)?U z7d-i$^VXR{+eX%KezcMa$pa^^wH*qnJhcy(>^CL>eRH<_rte3vuPmN$#AhIXIx6V)4jl^zZ|eFvTBE;QN+J!&~)b;dT~*_jI2uoMSv?ihDTa}zpR2fR*_tVd=XPd(K8Zp znor1Mb$pCgrd3wParLh@Gw3`}*AZusaA>Ol!Aig0Jbsn!%B*lG7}&;{W5sThhdnVw z!45$@^sf~JWLAyJ)`=z;6i^M12Lr7{!MAbJrvwqtTGm2GPPM4Usp|X3irC-|Dl{d# z)^JD73ki+H8p9KiYiGb6su0DPf-7smi3tajT7%9-NE0i~Xk#L>HJX+syC0}iquLCLb2~4 zfN|F~zmv{$n#tLXUQwJ@sNkP^nPOZV*OC>@WfNKRz3r3BCU>&|*whx*1ff`D1eO~| z<4raAW{S~LHz>}>oc5r!Cy{QQWePBuXysKhit!UwB+IhEOXa( zF-bgKb|=&XN^+^jerVl3@LJhkToPH_1XG%;Tu5GKB;}7LpX0K}9xs<3<@_pN*rrJF zVGQ6PP;!0fc`%~`r+UE~7lX}tf}?>haz_>7#vQa6E-RBK(@LbKRso!F0qspLSX?M) z0EHb7dS7V*l2{(SsE2*2uyr-R_Oip%j#O`*FB(P-v~o8fD)s`sHGoa6ZsZ*D1xW-_ zNWnln)7bRKjumD7;XQ|He}>1K;xh8T%#@{ND(}O~cc{U0B#aDuxgR4H?K8s~K)8Ri z+KHSTyt3t$e?C77y~n4lNxtK+P=or?4;h=tY>BpuZKAKKV;tAjV0?7{0NK~@**LB_ z7>{4^j+x=8O}38$&3HIzFaQ*n!}{gtiC*Gssmww%fD@@dT1v6l>a#3RC^EUg3)eMl z(QGVqxcc7i9Ie0>V(c9=VI;O>Q!uKjEAA_fxP#5>8php{d5NDxp;y;Bp)h6>V zBep@9Hu*yXzrW{R(V$yf$h4b9{nS`zVcteLHKnTheg6PI!MuKDkm=19j%K%gmv74^ zcwzLQ=eSKbM7|IxX~5X{>Rj?i;l&r?ok?_%lER*S#}Qk?KZuT}=s%q<)?xcamzc}t zMHVEGDgHCb%{+AV+WYIcbZ=4l#Fm6UM&2*pI6~t}gV-tbA!mOnC z;;Xu=X}YYQK$TWtabE3qnrRjRpMn1M9+7Btrh+`= zu=5|_;*L0S#+7$>{C{J4Y<~o?>VM-J0}xBW=EM)U;Qs(hp?=cD^7uQ$MU{_}7>T&( zS0nmSkn0Plc&-gaa=~TUAs^&CALmw|728HM*`EqK}lADr#F25(g z=0DV4n)~`3o5QyLREcoRR7Q7h&N=N}7e>3X@jjaNHz8K$F@f?s8mV}XPm(KW($F6$ zw&o+h`&KmA=CqDGt3Xoa4|CVzxuBoW#(}2)0EftIZ z6tD9Z>Y8)vH<}#LGc1iNWt8CH_5M|E@m0;cYW_sIR8g=v9f0pb{?1HVou!hcR< zp4gzZ-9i=Bq&Ez{Yq1EXgj(bC7n)zNC$~VCI!ros^w*Zk(>o|%PeGpl09sdh7q9IQ zF6q6qO)T$jE$&b(J4>@UM`CabJz%PQcB1IRzp zzN7r9ACB!N*7ce1mV8L=dG;RFX7GGw-SvCoKoQ&dYESvxDsH!Cg}u?xsEed zj~eQFMVy*ui#5W&Z8+c#KD3v@u-)5P&0}--;C#mZ>VL7Tex+>FMIGE2GA9fN^Q4ccEv5P` z#?%frvmcr{8q}l&t!NL#mMwd44cHxh4aY<6`R1qy*S;Osp^$GD&fMdw*Ij5gX}6I^ zL#g$t&U*g3QpdEzkO`(*HlZ!O z!$W%HLn{!Ap45w!S0ffHJw2t3qHqjgU~`(0?x3tU7(Yyu(m}HI7vTvm+6of+@5&Yp7eaPYSEBz-;n+)52;>#FSiJGP9;lac_Gf za>&>N9jKoYxSc$oFslxDIIVuqEsf$NlO4))myCh=(%%zk@ZQ}c&3Pg?83Haz6wTI} z7qZd&I|Sa$g~>ih9GvnEL}j_tyiazsv3nWYI3w;KdR6;6w=nA07M81V7o%~KN8DI^ zdsdz#nprQd?OIn^<8OZW{zj7Z*OPe$@iv2X2BvRxOO#t@`{Bk>PsM2$mn>l~?xJZi zgRu!8oi^|$v-aC*v~5U(Ajpijaqak0onjk}Hu_6>5gZOti0Ub2mxO*|U!4=k`0VlU z?wY95`O*yYgi2Cv^z@L$0^CXLWNo6iI;61;rZS-WHbpeCdv{FEpdR@hD5o6JzwQ2n zcGbj3Z9I1Row`A76im;xjxxjZsWnT9(_M^-GKvA%dKzany{qa_OSjY;f;;NJ%WTbpZpyDNLEB?&4pI0vuAC-GLJ_N_iR3c9)xm2cLi&~7BR zvPPJaj@yW$b@Yn%)y@}j95=C|t*yP4gLG7ET0c2h4WJ%tqIhys1<8Q83^)zj;MX^| zhDeyD$9{&HYCa%3RB1Y^O?3E*7=h*5tA{0P$sDo1kEV1(EBJNA=Ay4Gi-21SiH~7i z-(QN!B%kdXwX;Y#C7o1$0=c}g>-Uzn*BX`Uv@St0MJB}q+a1MozuFduloLR%lBhd? zY=*AKERpKJk}3*bPJw$Gwc_Gv<%x+<%E05>rDoZF&o8+rkDB8i27^&PBDap&odV^g z1+WVDuDNA#D7XUQ7-5D9>0WQfDM|0J{Iu6&T|&X`t{@U}&e#Lmi@lWnqBv0HRA-LV zeZcaQ?Hv_V?fROi>AHb!LUxg|yZFzwa{NSoU9S)O11fQYWx6R{owK9v=u^E~7SU5VIcw_yN7MzB5=thQ?%_t{Cnt_8pZMohYn!+wg_WEr^ns9v+vL=GR=MICExyld z3~d_^Q4tNt@v35sm87rs7EMvot+h#$Qu8HLQ&msi*Cm9$1<*EJ67Ot(t6h%YOye5X*8ngpIs=;BlI?qifsq`=L`X zmMpLLPAJIi@-y61$i^L`nKrLuiaHAvWd=MjsU(6Rx3Vm7Xpgc4Ba9k*9id!+y(=Qj zvx37oqeihHg`+vaqhXdo*MUuism?ZzDo?NnIl!UC8rTFk54aJWQ+r#s+t#xVnx#1y zHL__kZaWVYcs~KPOopw?1?+j0&8h*4IO(yo4&oxF@x1 zE57~9_kNT#S3#A0z(Mvj(QS;8D-2+YW$Ic3(5^%>IAQrzuQ-Z6I{Z;a)s?;~Ijv3$ z0h%=W03E%{UCFgaPkKF6ZNXoyE{-{%W_Z*L`%!RBBYpn>&bH{*GL9I$uTBB@tt5o9 z8~|u@Iwu*d$Eg5u#b+e@1p*W)o#2C6jwX?T3^Hi*G){2iuS)lj5bj3eii$OWP9}k{ znIQI|B-AED`^d;1;+jh#Qg<$BdBRJKprzuCWD#l$B4E)`PMdPP8U}F`FO~!Htptd} z5uetFBMiRK#Bo^%)tvSApt&4UKr&xE$A`kRG(U2a%Y72?N@u zXCt8InM=unBvbd6qw|R4ky%L&Flzt}*`sDPX`5;EoYZ#g#ff1=86!|~25DvG)1cgn zaaz*Yqc1SGN|gycO(26+3g9;${8KpYcaT>mf_4z+Q_Tk_q|ri5uQh;y)S5m_K@*eP ztzuh!-1PXO7BCo5Ef^{X6x>0`0Z^i3R1!%2^G8hy1GNlbZ@um8Xf?B014>ljB2muC3Jw7UFp^7$W zrI*Z`sKD<+TTY?^k;{U|4}(IrptmmHype(X~DJourg=`Uem z@Gr#KZ`FKLrbbx#o80zZYM0_q+6BGNpDm7`Z7i2EdInJ9pqV0`Q1V2mPg1oN*t4=t zmiRJ}%MpxMMm+Fx<T%VNxvI5=!&}_E!Zk8UfW-R>wrN__M**0|-TkX#`0P#8 zoqlC!mE?+w@IF{s2vQg@t#utP(^H4ay|#|wM_s~+vDDG#UodY*Y9810ENM0rjct5BZ%VwW{^oey0?)bSuOzPJm(c}xtT3(q`RI) z5XK8Llf``Sz9W@$wRLH0Eb`X5lOZx@xFm3k*j&uAO2on-bTuJ z`c?15*HHbg%wEPkmbQ=7I)k)QuMXcq;td7#`A+FAfiSyw9@JNi(RbS9km+umW2OZS zWd8t?I&E+Bv<=!%!D+FwiM%9{*|(ak?IBj~FP;o;P^#|Z6>-zzHr@x) z;{>C$XfitFjQ;>yrTDdFxP-(vJ;LWC`%^~TBK+0=0C9v`WsJUb=66Y>CwLvtxcsWy z;w?t@{{X>pPin0jTR)W|4oL&Q<%;K?9#(@>o+%yju@VMPCnKd^JQ|l`d;2T-2bFfY ziZXIkik3CHYgW_!f7zXOEAXw^)S2z>l}S2Az2V8Gw!N0&Nh26!_Z`JwwCLAR zvATslaLk*6p2xjYY#?Z^rj{RCFeP!$Y0rn}n#tjcc?@z~KE?`u;3xUjBKUf|eed=a z?S}XoEBzkQ{u@X@#^-kJ8vg)uT=T^7Uta1zX}2t7Q@HceyQY_9A=0%lsz7E5yWfiA z-X+u%L%%5a+T@R|JfNcut#A1OOUQf=Z6kmE7V;{UYn!6OC$7Lhu4zop_V>gU^vM~{dSj@q zd_{KpcZW1-QZiYQr63>kG5(djH*wDeyUT}XUI^_*F124#QqY8IEOinDWGb8Ko;4W}o}^W?#MWYKyS7#;M2*kmOEjH0rk6CA zE=s98a(?&wQIs6y`ln`2g7lqLmdf4rTqLq|?Sb3zr@|DNtHQ!X_C0HxN%pxXZSEw6 zc~C_irRukqP`k)Nu5hdI??cqQYwyT;S<&ooUe@4sF&+w;r&&$D+QI*q|uywHA^ji2`f#1QL)LVXtWuR+14-OI4q$4m96HYEoQcRQgVcD z!1k!LsiC@=-cV9y7{TvE>0%43i`SV3BVYzcUMX?K$??51vyySYC96`ohVIJF=g3(S zLIWusGu!j32aU9e#DZ%A(X#TpPDNWh8F?P1Yk6ejEgR)3q2oLI-7jB=!r;NQiDO~I zb5(QXsjDK^?H>J^YnR7g7V=vYa1pcey$Ptib7`ojiX_w^A&$_KL;hepkD6uRy;n~< z#Co-wZjlj^Scl#j_WWw4`#|v(>UgS4{WTfw3Mi5$9mifN7altGEBpOW6Sixp&po8D z>ULYa=$JbIFj!Ym)S|cXkAh;=G{#@GMw^GeM^I~@=o-G6ufk9f6!_&Ef)Di+XNNCt zd>yWs95d-xZGx-L#y#mI>(>pgpZ@?pg(~#Qw0H8kWSLa5oDfAj^VsO(O_*T4k8o*s z?FDVDyhS9oj6A!5Sg8IM?@V<60N;3BU50ldKdn9_+k5aus^~xVdot>pjlh~RJebKK z^f};A8jhkDSGm)YJBN5VE$^u3I8URmZ^R6qXIToxzwP!D7tb!zVwjH8)E3 z7uQ3H2fZigg(9X~3ez0CHyt2*avJ_kK2 zGMt>c3v`Z?977DU46jgqvq^kGr$n(sdd})$koiS=$>-n{qntO)2!cQ~wTccM#3 zEv{ZjppcUzs^x&kKt0b&wlD*)2nU;Ps!^A43zO={O#9T{ z8M!;6XxOU}z&%!zJ|#8Y%?<0p+B`;+K9w56JqO$7sPn<)u_P2?Fn&c@G@Wd{x7ja< zQh1Hnk5T@W9-xr1VAu>gfc9{nqF@QCgkcGHp~lfg>l_&=$7s zE<|gU&jy&Kf&|>hkaLQXf?A5uiyDlyhdMRHP+MYB1!Cq%u0uBLD)h&CP9uo7@0$ua z>rz~6R**yz-XL41eX6Z;(>KdW+6L5aRIoy%MmtigtBXKB{#)2|pmh;-e=*xJRXvup zhTBiID;?$UsP$F#H7tG_bJs|xB)Sg!eY&#bw*!NU4qM5mcJe`S@7PrOpZH!Oip@0{ zvZsC{z+aMkQf0i31!ic^r0}f7?fUll{A;d13naGn`9JW4=9?O%cQVEdlWYU9qfN5H zPVKDf0Vg@@M`^c6VhMI(Rtf=Cz`!RXG~r3RQr4Di=0?Yw4i}H%&(f(3F|{>$cAW8bIv4M+fvbIl}kO^#5Uw8lb>u?Jl8xssjb?fww1jxiwUrP^l(S_1!i1 z3x8&h?@bT)-DbzOC5uhD_tjJBN?!Y1&E8Y6d`-qY{s$BllsVSn$lO zMHpBPRGj=$$GAzM{n;Ro!i>}1NE?oL??pQUM6nkwmmZT+$RaD1#_x*sji0(PQOcW$ z!KUQ;7KM71tdjba912S_G;f2IHER>?^foc?N%eJ#M%}jncchX*2-0&TSedx?tX!UzOMYvr5fnXe26whrWd&V!SRpUjMsINj}A?+OBiz&`b$ zvt0Rrp0$_I%-v#EOq^s^hY68e6+MZqNWzkNtYAyXi-EVFijo-Bq6;7deAde9-Ni@( zu;kWXLjt~;6o-LmX1{uvoE&;9LLc=AgyXaF%VJt=%VxnlycD6C|Q?zZnA%$w{*&O5b z6bx#Rg&jsdD^(+Y+;uf9xhgi}KNL8MPNS&!>p&>r^1>1UJ`Y{E9qI>WSj#t|_Wj)R zieYX6itlmEoDtkEDO<>;j?Ym&Sd5eOuawm$csDzjV~Ld*4>5?z`qWy*oKajULLA_F2Lhq;UA=>btV86GyRn5m2|Q4GjiH() zWn^YvI6bMX@fk8?AfDLmON<$mDN=H91xYs-X^AG5kgj`4V*|`WIQ%L&0trW(%tVdK zeXF5aTF2!A!5OiRMsO$%Q%A9qCt#updll$U$gapPQQM;^IJ=K#kXi}eJDY2Ou(IRI zU^o>xAqlJQd;}|OF>2|qO^DK1VtP+3l;*t1cZKcyI2Vcc_ihz zz^$}d-8E~LP<)j^9)I}IF|+F0sSU(R-94(jxW%E@VY+fWR*5^WsJ7Ub{LXv*1!e9d zHhO|PdJu)rc0El?aWeVRG-D9j$FT>=q?dM5E`v4Z^SR~1gVW^DNv$HCFQ~7?5ksnY zSv4CaCV1pA%kD6L@l|iKrJsWD4a~v5(K#$f&aoUkh}$E}nK=6O6z|7#LuIC<_XBp=@DtqCb3nC|Q;I3Bm@M(QD!J{7 zGJI-3PvfDM(5F_?LR_El^AvYv5E+I|P2qhe^Gk+n{Z>yp@te_(ilf`>M@^u~sCc+) z6SGBSYNb?X8{7S>X*G9~UHcW762!O+54o+9ler+*gd*{0hkx}3rkep4@@;Z|r5k0c zi%$^4qg%uzvSisH9PRn5J={%gX3G!}J7g|KG-mkni(DmM5nq(L8|#Sl>uc0e znPVH{ZikL(gWDr%Zxx7JdG64kEsh8Wt|%@uOOn(6{{X<`5<}s=DmgL;!W{exrFh6nvn=pA-x>7*+*NK|I^77Cj9OZv zLSRqkvaZ2@k!*yu@9N?4rQ;!c3ar?(O+`Eo`v>n{B+|73{1)>ZArHZtJRiOU> z8$^h@ZMHoT+Qy`PMFU}KkZ8f=;HKa|I+FNFe%p%|FA|mdU{>y)W|Z*B=_)dQYh!kh z(a}-VriqwCb~hxM!yeySU*gu(G^;BMjT&hJLKT@*=PTZi)h+zgRp|Y`wdBm9b)Y?wem7!g$Xg@wLa9gE|Pyin;VbIkN_DyK*sodSnJrJfd^G&rIkF@G9J-nNO zz6yiezvW7!Nua0X=|jZQTlr4$HhMleA6m3&n!Go5!gXL2oMyO$UM77u`|Ov$yoHAu z>OPgwJUun7{+BP=CG_WT1B@Clu3T=I)?Va>()R_`I3R`;zUxXRe>OGBb|R{l_gA*F zovh4&_Wrc`$6J<3Htl3^I`%b1IjuUxWim7Th-Is@}*IXHy8Pje3wCf1P^E8rHQlq-NQ7a_O+$8#-$-wDn@!5H^Tb< zpBIQ?i_P<9Ml47Nf%U5giIT$VIWJ}e#>bP4;-eP^-SlRiXrX???96^9xq{_GsDzP` z^G*C^r`u1g-9;KKaw+54srP`bbh|xuu5G0Ud_{WFKOI9l>lYVR>hh}*g#w!R#-Q(i z*o4%U(amo(V{dq5h!~_(pHCIh{2-G}q#Mm-FOwhKWK2)@7_bU?W z#jlBX$t36Ts1t3?>o~zxN)_NIEOT-~W_8LgIUZgC=$$rWCCne%fx~Dt=iUU^g^|CBaZjwf6DOT zVa--NM>MMNMHGuG?k?nVLFxHXx<08i4yhvN2RZ4A6ME9ovG=xIZf)m|0HXjeZQshA zX*Vr*0!4PgB}24HBX#x!)k6OOS78?RETgUo>MLyn#FrAzkUU86fwzU~JDm5Z$wq3V zzhb*jM@Y1^2n$Vn2vN~gjGBVx_6VG+Id<$QOILJr$5@XwzLz-=3){&<92XB$4YqmRe|j17IJCRAdVNFCvmxi zjLPyK^BnSORI`KvHY=7Ovq*O~YU_Dn43SE=5vwoVUD(Ql?cS?b_7iDunV8LHakfx> zN$}p|^{$v@_a!KAK=zQuZrO&Olcsa+ zN;NB3?$}4b$?8Wqs}!>w1V`tvJ?bqs)9rW4$7pQ&hByFH`J^%!XjY$Owv3esfM8;u zX&Jk`iDo6O!Q8;`HjdnT&|34Yy_{(PC5RZ$S}#S1W|u27g`LW-q zch(rht+FBaQ6xML+3i%H5$Q%4qEKG}$snOm`}g);)LcBF0xE;Glq zWfjJSMQzG*$J6s$q>H!KjHGZYTS25A?ic~ZK;(%x70ULg z18-A<_}1YbF}V7ur)H`=?YX@iR#l3e=CKnI%BbhLtc17|UEgY>P8$&N-%dMSug*-a>RYll#I=At>r zt2v@JaR=aYD4T<7Aoy0%vUpysj}kRs!yXQe<&$yE7{0}N4(AE0BU2<3v3 z2P9DN-CRZ)Wn7A21;~K`J*jEbV_8g64ti0B=oJGQ&&>%eQN6|)2iFz6=)|T3kYyXM zHKN4BsXS3oEOCk{B8o-yo<$l!wl7v?Q~fK=DcUiTD9J5DAL~&)t0Bl74{FuyYaq`R zyli%!Pv=@qg*YU0TdZSXthN()oVVUJDV(bCXhAY8o>}U9)Y4qQKtOQE=Cz{}q>Zo| z@sXJ0Bz-GL`QR`jwh;RB)A6POGQK|XtUb?`ek(^ok%P@fd2ptcg)2D>S|#irV|hMp zn`9A;H|5@{jEuJ~jJrAETZ8ng{P(i&ZTAh6+cb|=n$9#WbcoD)1Ju{d&m1b2j~;vI zLj{xG>XBMT262|a;YDY}dTMF-Do7={9@KV=IJTLlwc4^jQ`F#9g zb5_H{gyY+n+Ai|Nk~?7(^WK-~b~4&u6=8_n5uemk!*S)r z5;7M(PxPo_#VE$6h$W?DDPasjp7#tfjiA;Q?d{TN?2xL+I-b=T-JY5EHK+@>b~y*7 zGi)jQ3$9(Gb33qYqZ^OCVkvyUS;q2t`c#)-h6uoU4as3i z#xc9t)n-(=ySVb;8Q+Yk*}qGq}NQcMX#3!{@LD=TV0-O8F~ zn`3O{xu0hDKZ&bdzepbY6sCi(_=;h0)~=AAe98X+c7yZlU6a7NJUT7CrHpPSx{Mhe zP;gzl=i<5VgA-EM^(d}2JDKK*517H5(g5v_mE8P4r^Th|mm0m={`O=0uzyO?xjO2; z-`~{9ST?0|E}tS=!LT_PAx2J5&1T*-(;1MQ&f_e7%?+ijmv>WN$&!)erhm=v_*QOY z-*M)XzEUXi+OaV}$MLFXYUGPScCX2o9~r-WInG?Xf?0%nv1Me-D-uZ9+-vyYRaH>-IEf8Lvwy_L__rCf?Qv*&z-Qa4-o5 zx;3Q3eC0-QC?CqGIt8O#YVovjY_+!Zu087Y3OAFu5Bl-F#L!zZ z?(}Zvs@@QS=HpwqySP?Mcod{VvwNS?tbQs6Tdn1cOB_J%_degPZKukOr96lPN)u}C z;;kg4*CR!~kUj0gYdUn2X^pkxB^o~e04A#b9Mdi$yOKxB+%%i<+yU?HOzgJDbBiW_ zHT^E*fw#B=`qRB`+`*%@&Yu}sUuwvss)BmbKU$~%0MPZ(NBy8`I*yy-T^W4WlHIfB z0l*_4?@zor9p<4d*7wOA_DVxVA?uHtEB1$_dB;p}p`>L9ymuoM+Sblp6Gjl*#$|ca z%T9R*y>2U=p)W*M*6Dr{-raw79Hbwhs!xq|Dci;tk=v8@bo7=}jkxJooi$fR@Xg%i zw>aIG_ip(39V(NhJ&%a3CPiTupn&6da%j?NLT|tFGk#IlY&W-tbeUy4s7WUT? zA5IVeJ*hsNf-6}XR^8`5593Vb)a^A59!9(?Yv!>*D)jtmWLib-ww4lEmgX@aWR^Zb zUev2~$Nh(){j+&5W5!37gZ!%{%+p>ft^kjZ&Y^fq{gPnB2vwAf^(L5F2;{V$7ham%NtWvPs7tBW%UK)vSFrr)v~Y;^DRmi!VYi6m z$i!_n>w8Zl~3)=d~nTqBHUS zVa6(Ldf@0)-1MXxeeLkkt`=zko^o2;5zhnqoR7k%C0c)}o8lR-+uLf| zLTYoVSs@3_LD%GeTB=!JE!UWkLR zs{a6mC9En{SZ%=et}@D0j4pk%Psa5?ljBA6#CHDx;;_Mar{UBNaqU+>*@91OC5ChV z0C81@e=4B(I`N@_pmFKl(Ddi0^{%I*TQcjG#y`8a382cHJ(AO(#s~(TVLQ z*>uYy5$P?^ieabSM3R5e%43yIUM%sCidShQI<=EUB)DPsbJ)_&M#^W1m{`Ym2;qlQ zO1)l`2E3ME66yL(^2H?b`4cxA_h1@9toV9MK?jvFHj*DxFE|v(Pq6<07Vx*5tFSVl zB0vY-{{Vut(JijD_!1aq`(2!kgjo)Dsi(KDRsH_}*t~s@X*w;mGB%>Cl|{lYY}G#g z?)OpE<%y#^Sdgm9dVAMEzJZohhQ;>AKKy-XeM%II4PgO$gXtu8qbGZR&@SGPtM+-L zMgBh_o*+zd{d?566U}jTsM)Wk1#^IVd(-~_1Q&?vcN3->A&mb3_WuCAE72wwkm`3( z1dtbFpVFZBAgV$gDhag9=;afsM9-%^fALdZ-D(qFd635o?jT^Ud7;v4Q+(F*?lK0* z9^dU&jUL7wItRRG^9la|vZs@udJ0SK!qR88ElPh6>2U6bDQ{eU@laq2t={;G8~Dr@ znrlX1{{V0t)S9*CqVqhm+L!0C=qLo#qq&b{mhP{dectpH`EJbOyaQNUm>x&BK4Bwh z$mCX}84E4a;6Ly;Z>11!ptNw9P)Ba{>87;5+OBYOk)$)A3qh?nynCfWn)@NB}I5n*FA+-wJ7dn z5pUXxdNUkkd)4Kw&|I5*Viq_A@CV~otE~>w<4cG_ftizPl0V42pUl(7F>hv*;SpK9(3Jq$}YtSd9k*Esv<`l zNOvq`ZdpbbJ(K`)JM&gq4UPOubR3q>=98l?4=?*7Iqh59t>g?I&Sl+$ z>0y;V`4uOPufoeLi^1JZwo-zVCqC@AhbKvKT+EPE*$RoKEoC!`i%pVElB(jD#E0EsC* zFhQpPy+A_01Z|7ZxQ)m=Ng2<vHK9n=*|~5#oKm-187n!**dI>1HnJ-STP+b` z_i@w;Egxp}W#hLQ!T75uh^$(BG%;knKClAihC5YqAhN`a2Mt|#a&lBhBx%_=jUV7} z21R6A!_MMMXWs&~U~!NReza6bS#rujBN;uum3@;SOJ-F*oG(FJOA*NnB{FCCmj7Lf=giQ{fPk9t~nUVnksh7X~~ zb#9jvCz~thZe+r${{WjGtuMZUG<}iD=|P1EcpvXpo4b>3YvwYx?W8Gi6;Nl}`c-9# znc19y^Y2ac6~7{B!!g^v*q)gkD-heu=_H2sB;X2l_H3@^P}%1{6%X0^`DcaioC-9M zftH>Tw(&-sjddaWOhm3zl0B((8dK=+E}baJURBS3V@|v!sQ&S`r#+{{QnQBnTW z?p7wYytZsevTb4qY-CqHM^#5oH+p4@!r|>WR!-=^NPT*my4VMg%mg0hWxHGQ+=(Q1%Rmm z3`ZRMQn-wmBN?J%NywrgxnBHMW($ITC_w`-EW9lz5w61g+!OQChVtiolE>~5QAS+K zcjN`)iHdQ*Yn}yUt7dy8i4MXD&VDOGm_i3yCJ9$}9V=^lVI#XUaC%jutdn2^dW^M7 zr5mRviIUrHaD5_&OJ~QJho56v$Jhywmwzy*UOnnSo}wF^iqVVY?&>Rhc}5Q5mZVx3 z)LI40o=?)e@eHmBZ*sg!K_23c7c4y90Bpc);o_kiiTsGA? z0;7@gcPny5M-AwJobt!svUS)R_9iL;&eNKXdli{CXKPoNQAs4){1emKrI0eIU~;3d zG~BIQ1rgarC9)9C&Go4yy>uL>5~djRIpZRhYezP&7oJB-Op)TP4HZho zKjJ3nNDO-voGH(5n$q6Y?k+;XgU)l*3KT~qv*A~OGTHX0c22fd4J>3c5;^uh)#gG@ zZl} z0b>IkQH<9+h*bBkhT7zgCo;&1<@5zdU#%#8Y#{UnKG{49XwN0xgQB+PJw|a<+xP?% z7~T?GagS=YZ&gYm$#L2Yy47VY0Fgrs(@cE?_&SBy&49)hqVzLE{@3by@eAhtGbc=l- zNtz38u_x~zyEZvBVV(|Wo+rdl7} z#xO|eqq(X-hCFp9kpz~}+QK}=+q?`iif;z91a=c$Kvl0MZ&M%O9f0?w!|`~f=(=y; z`v(?$c|QXkYWJ{dI%3(v2J!|+x3H>I{vc>P)we*?Hw_~Wp9@&l?j?%F9_uf4a&ig& z1^(u%@T9WjVB_4^FUEXC)V^Fab9`6CN)Lp44wqNCdT{et#(swMl0nb%G z6|5R!!#2`Fob~HWt?gCh8DhA`E7SOYg;?J&CdHOmrEv&*8+{tiD@DhhwQ8snfR+|yWNEvX3Z85$UryGDb9kAHsE+V0PK4)zP;O+qWJ zT`auV-FhM+>+*goFBCA-tnE>Wd7IYbJO%awj(slGwXI81l|mvQ1+mi|0II#|lf)Nt z+Pti;;{rt;7rhp#w)Q$yix-CNqmp*i0|RIfZO3}v&sUMWP|JY!tU^kMp!xhNA`;R& zeK$^0EbWu7e)D3M=$4XNrlWasNM~XfKIi?YQ)vgmf7Eo}wd#6t2XsgagGjtrtgXho zW20%?mPs3Hxat&j#Wm9}=8MBI$W@v|h~bZ2wNU+?#&sVMYMvpw8HU&xVbAe5e14Uh zZ7S1ZrW@m#WV7)6x__q@>9m#pEcdQar=z4WrMncGX+Q-|4_fJ3?czxs*E6A#H*KyD zaaCxvlNX5e$Bz$ZB(bCnJLQH))}B$gy7vB`=nd05%wUKmh;yM*CbA&h$A1QY|IsNZ!t4zG+dOL!9B8oPSES*upF{ z=q%%GNwj1inpJnS8}=36+KDu8DHkR~mK9sDv$xZ=5xWLi4=DQY&Y?^E)SzIwuv@>^XQlAdk2$cn{Baa*(@~^+vv#4L0wFsb(3uOty=c~8B z(yF7yYq8>#Rk1vcEzY5JbAKANd;b7;p5x!?LMSV6(rh~k&mF3JnWvLdzcOH3M4%w| zG`mK7iJ8D3y99%te+mz4is)IcOJ$1MS-hhx1gj~|ed^-Un~OVpu%4i}bMNm|o6DxM zwSl&sy?84d$4!jA7Fw;<@IMXtKHw@Zb|mcM;|pP&Ph#R8Z;7YO;uq8ZJuq z`cyhy$+6TG5au?@{V3&k33%JX0{Q$gPZpclYJ`)tmyx-&a~%2QPhY}`@cqs7ml0ds z$GTCMFOI|BmTR{H3uE?k`|@z5deQnF^y1qy0UX-`Zaq$V)|Ez7Cfc+Yu4;{?_-|42 zq9*2I+@Q!m^NOQ*3sC<64Dha@HQqsz;0$|?Gm5#~OCkXk#9+Wzc7M!GRqrg}yO6_b zHpZ%5p*(l(Q*pO`O!OV1rJR>jYBP{x37r1`oM$+sR^BUZTg10f#~F^^1tvdl%9&~K z$7^FOa;ZlC6+HmIYoo8KU0O#%WW`P|Ux>+|(B(|k$s*s)rjVU$BAw`{DzB{l08`= zoy?d5LG4)6!Zb%@L6o0U8YimogYojcGa zkpZ@+ZEq7nX&VRX&5RGuh_SJ|*1>3i`#vy9Bqo2Y5vb`pRg8*mZj6}c%3OMn&O1;u zYgfg5s2Ob_BLE=hA70hj98gz0Hhoh=Om7L z)uQ1{a6y7vHYB4Sa54Pqy&~b5rb_{l&m2>jo=c5AU}QUTBtg3#qs9m0S;s=f>=NKe zB#w1b$ejJ&1z7ZJ#k;ai&$rd(u-(a0I}Y6{E69wRau!7hycJ*beSL*4)9oY{%`{x5 zKp=7I-HcJ=y$qXbm=3ESn{vkr*%<&Hp2PB?8r;W?oMdONf8nE~E|SQsKp^Aiy=58m z)RjDuj=xHxM66!+?8BD?cdb0Bmn9gFsHSoOAtTCANWj7AQIueW06ns6QZ<1raOr5d)mrRi4-4g9Yx$2*cAQ!W9&b(b#Mc@K9)g_e?HXG&4rv+wmN!mxn|BYjxp*|eg;h~?*8xn z4759*3u&PHG%7?csW+I19$4sq8d}oZ#c{gZ%2?Nsyaz1u zDaV-J$Ju$sSG9}e5~4;Ec?W8R9Dni83ZLpfg=>EQ0DphvEcMKS?e~c$euOlqlm4uK z57VtmRzI_n=am=(pfr-+<8+_~Sw`YdU7-H}GJdpr-7`9tAS$13zZ6!GjA3uKL?MxW zhx=BSPypq~MqG4WqM!~UjFprU23Qa2P&Dl5>_nS0$ETV${2GD;FfWkAGbwBZUZ?3z zyicV*rJ}MtYMyEd#AlzFv2X`o zDKa{PY7!+ zVx^cIHb(=RDv_Oy5qIqXsd3la=}|muA}~^NMhCS;4gU3S-4z}FYr^g@0>W5r_vB)o zy$f3x8y5p&KF1$>6n&Mvk;YM-nEwC>_^CGitSc)G{Ye9;`J*D->y|(Y^(M4>*`yB% zP^Cb|dC#>(+tt9xVcv>$0H|d-W5+nfc*PuRkT-&RR-oR<)lc3$0ou1v*y<1ZO=ZkO zAJ3llf^0{5>l2qr8^jla-Yav%+RGunlg|W3dVwzh3suc56dE!o@ zom#sXm2;8@Iiz#RacwpVWS#-V7Z2JXh)CGndBhr7?Y_ zl(<2=J#j<}n}*?#V0WW!YMH1u+nKW8g*IG|(j@f%`$VH?ml2=gQjKW0>?K*!z8I{*tWFqg%SNFvw*& z1bu7fUnMRwRC#$Z%Ny8o+1Xsb4$(;Go!pPkp}5l8(1vLEZihJpR-~}?W9T!QA`M1p z#@9KAuGZ)4R@3bXrYm^UIRmH7X&^@cmBISa$!8q*4E=`t8pFQXv!KJ=#c;q}Yt>@CSnJTQ6W=vWTIt#RDN z6}gFGO`sJ7j&VKdolK;63Z>E!QM)Y^zBcz5iOnA3ddkO zmzu|jZDKZ-`h+YV8-eRV{{Xi2!6+o&I@;go_uuYw&0KAG7g~`tv7OycNF38|vpby2 zG27Q2F-kPZ!ph8t?vK`qZ#~cN7=TXzS2|U?8Xash-r^f;mCKT#`iT82ZEn!JEyAz; z&VxMtXegCODw)S@SDzB)kybnzkq_*&8EBNR`Iy z;fVUv3rj#q!h$=B#iRw@Q2}-*if1&D*({dfmF|49?T_ICyWp&+!{L@${Q-5e1PN_# z1Rx=kdk=O4G`LG7_DF27XS)j?T*6 zGb-(g4mu9!@uqFQ{f~MHAxDmNeS~SYfS!MSj_vJGTU;iAW8}%@$EjX^?j>%cjw#ey zY+vH{dd2dnw}FnuKg8bk%XM4%d{yFCn6}i0;CXoC7_F1jwcmqXqTy%utv^eRXWu2{ zlB(c!B%a@eTQy5#buE^i4g$aLCO*nPy;rU;9j3O9P9Hn8P1OK4pBm}ly1PuZp7j}cpG zTYTu^V>2^z<*)?gP~I!N@}-a!<^i=wyHoGkPMDT4PkC?;+L|VpC)n2Gw7rCz(QUDs zOD_}6b12L*Fad}05@{Z@1D_jStdX+9@vMqib-|-8FTicHreJw+gZ#MeD%q>Y7Nuu^ zzrHZ$8Hnr0D^y84`qTUR8Md^}8>ShxKNnt0u=z2z5syv>C-tj#sWeuadrK(vM!Sd3 zItmj@wwlyPlEdZCB!m_J03wg?Nc?B7!4=BcNBhT7lE0-1R5r(2M&Gmb)O9P1o9npQ z9!K30H&COdYVia&m(O{26;LW{kLo(o?+3$hx@tNpGs%De;~DGvRGMYm$NNCG)0DTA zZKPre;hQ3nz6+9HZGpSdTeddZ?dRFG2!XhPj^@WhMeBDLnt4%Xo2}y*I2i0mojO+_*u2Iq?3Hb!)|*e261C!RTo} zhx|XOUtXEDDGYG0IO&>yuj^^0SesorPXh#j$*iK&xgtp}%LVSS3PSc8bdU)F!QR*` zX>=cGYuFc1vv|t-gMpMkjdCT_^#;Bzsx=c#T*H} zhpI;R`q37)O>N>7)UKpJpn|bS*YPzva_NVXk7RcL0BW`IJ>9giZiOFm5IXV5rqbAI zCgEi^&m1xjQnwV^KNRWF$t}xSp}kN_ZeI1Zr;Dz2+XRYhbhel&^BV&h?TVs?H2nVn zf`2kz5mVLlYpCbjY^vb$dzxEjF5`EaRPy|?MkMQ3n>$~&U!q1_Ob@P1^d8k8jPyip z9%)6&dC1)X!C~!1;*6I+?r)gW;!^K*sU|x~-zQF(08-;H`(N4t+DRO*wHKwp9m2>8 zv0fC4-&E5jK$EIQ6b?ODu6`+^w@!_94VsFgCBsI;_|$NI4K2B|x<%O$*rTfxfNFKK zyOCGy$mNeDjsT{1dIjWxKHVab-A7-}x5>#h_9duJSk%3<N> zMv?Q}Po_b^U*bU(}shTN;J0lfUhD-PDzo6Z62R_eRncj%Xy~_$5=v$2HRJ zbe$^7A@&_M-r6pKA%#IFwoOXf9i*@_T-aL}v$(6oyMg!V!1$$E*V_L8Vc>GfNeqi3 zGOykl7^eCl`$|g-5OCX~B>mPO_@?*X5d}QmCgWrbHm$P~@t$*q=OE|ikZBSXx_Fi{ zj*P*fJhGA3@B;@mSmaXZTB6Ua1$KzWR0l!SV_@!2$vl1)7lzU}XP()^PLd~@h@(EB z4>c|1{{UsueB22HXZK?r@y31yD>toacNM_mWx@3}7e6?nHP9}nZ{^;sU~K?lx#uU7 z%|@yhaV>+40BFr|;+-J4fwxB@@5s(UJ#tUBF-zaeVxl%?4b`xCs#!L+X)AQw*RTSi zb#}-nYOf@o)Ifn!DJPmxkj6JOhkyY0u3O{36W-se+t_Z8Nn?%bFlG9l!{VcpCk=TF zV`E)k#xmUB4JSd6L|KY8(e)Pp080E-x50n2*e&G~>WK``E*PY|oS*#HEd80spA_3o zx)J3Z;!-ekz{k0-p)B=Ak||82BjXDpIM2BF{{U*{=HtHKxkQ!MfwhH{79u$I$K>Rx zRcwKtqXY1!QN9k!Z4r&~9VS?f(E79X;uVyQU*qxSL=L z#~}92PTy>QphPy7?j-YM10QtbJo{8%WI-`?bLIpL02s@39Mp)C!ipY3#fiyW5Id3m zDqFOLEzq%lQs)jZI&}HwnLTU_5XQSy$r&JYA-Uay$j8l31d&3p$r8kpr={3noQ~hz zR+goak-bqNP)__{f6r5fNjd7>2|w*a=xYL!X>MdC6!v!NG0gN1ebzpRfVf4mbm9R`ibnFc+)gx1GWoYEXCgyAa-T2S71eb9Q zza@7|iYvL6V%}+NZBfpDwO+KZ4%&!}+MU^e6vo)_2+7IGKR(sZZFP-5K+@!$HbkmP zay|Wr%^}phWA@7?xxToTBb>!<7+`_ZHPtVSQS`>I-~AIH z$YT<*%MwSw_pLlU(=5$u%M|zKImS6 zgHcD~PY~Tl8L_r_!Xb>ia!Q_n{{YVPt228^xBWjuaNlQW)OANL=p9f6Y#8uTOne@S z3H>|LrShaD6-uKJ$Jf1|kK#T42SxTKxn-7t;;liybu%mN7+hm@Gq=(Fd#1$VB4t)$ zcITl!$G1wPC6#ZF^#h9cIy`pjtCbiB?wnwMy%3&Kg;_R%pHA+;)gwjmUB#ut+4#EE zt)&hXCEMvICyf4Ity^GwOY2piOt=%oNx@dmaM&dLXT4H6RJGIg6~==koe>+;xD&}y z&ls&`n|?%5zTA47pdQq?s|hf1i~w8?GyebuYZ|kYBL{KmL!9BWPqqP!3}%`uWJXe4 z76Y&xnz3uzJsI#@JW$G> zMX>b|f*Hp^K9n*_F-kAK#)93IHnsZ<`hJ-JLPLj@lzu&G^%P3+tE_}8DHz9EqiFEW zs9zaOjkvhWXCwk@^9_Nvi)WiEGI~R?&(j^Nmn56pDyWuN!EigS20`MrkrBx;sbZPH z>67hSGEX81odfS7Rh0U_D)W_!SGQP>^*C&jG5FG3@){wwkL?T#GX?B$WRE5a50l zl3;8rK%|mSB>w=zP`32n7>+VH0ke#L6(T|-U?kiJXCB6zlk60YQtj=gB@iSe0mAh8 zqGPysaUcUHoPogjpk<6_aLHnE)`~(93`v9sj(YqWRQ$756G&tsgB-c!5-Vif`*xP} zjFJ7SJdM7QwVRA4Sia-wTm~Y@|OT_9G=yOWe1Gsr5=Dtl6p!0FPg-}xa9LtsuD>D>02y~ zoIVW>!_k1Ca(L}t^9Ut6)Xo*x1M{evarkkX5=KnOK+BNWBBqY&WQePB0N~US0*mSb zrEEIn3Jk+-B5-Z9kWOf(DE|O>XX{lPfjzatJWuHUA=;bi^T~H8^B-yLRmUr#B@p?b zSI8^HDlrteXvn}lDc!_)nHPBAXCCw=>^@*;Q|lcmn!bcig;R!4M`J_0zEK>U3Z7+= zqU2!v&{L}@0Fi@GoN1IyBkgO2VATwonwfApZ+csO8%OJpfr=kbWn8q`!Q>iLo$Z>& z_maGk6+KTN=9UYYZJX5Flu>PP91XoaseRSlcItQ}lgOi^5-sh;%Va`2`g27^YjG@# zEyMKas(7K|e?AiNHo`gzBHmfT83`;0<3%MG?gsCnoL-eEYITnw0ZS~e8bV7c+vCU|@=-xKEpG}H;_#%=<89rIr{OHS19ckC>P{nf_sr5!c-P5&Ebaz9h zB4Z$^$K^`AK^cnf-sTcgLOn%KaZ|+}SzH_ZgNjj<_{kkbzi3)4GbOwWb2Y;df-;*x z`quXvs$b9l0Muk??Z+Z0`hUH0{WAW;Qq*nQ_y{kfJWM|8_5jt_Q;E~a4(cOtJ!7Zf zXna&9jjxv7d9u^SptOr^jM`oi?3hNRVT-pU(Q{td+o@}tt92Oc;NrRM)$X09TO)am zG^}t2c%U!yC9d26t?C4GOC0l5-EZmt0K!sHdu6l48s3>CDuR5o93e$KeQ3=oV!6>~ zfDqiAACt(gbVQFdVL&T@Ip9@`!YwtuaWsF!mn=W84f%9z1-Z*K{Nsvd)m!`l^DD8qI%T`?}V zZw=@crq}l`{{XnS6djG7mX&1i!zqxl=uYGG%^j`BBvS1ylwp+vjwyUL-eU&p-7$^@ zQ~v;BQI*%<(7Zk>P=7;fYgw)?5FA38&N{Vb8)!7;yp<*MF68tf>T-K6O>u1^#@+o^;sd6 z<$>h=^mrSO-6z;oaz!QT=<_ptETOfuS7SwZ+_IlR{IgpkK6fG#M-;-s#oKzw{FWO5 z?~a+K_V(Z_767o|isx{)lP8u*CB&@e;T%5Qs43-z)6B_gpfmMVUb*?BjggfJXn`w= z8Y@S%x%1%t+^f)v-!F@_OB;%QwV}Pu*Z5pXYaSa>e^Dc(Yu=*p#Nugn8@J4nL<0G( z{{Xn%PCf?}Sn*f*h1`BstH%kP1eRiXQT=|EY0>nB()4RBBuK_6V-GZk_=)EqTI-J5 zYop!6#l>*w($ZynxwQ#LndP0RxbN5s);MnU9a76IsHnnuTj+QdopqW&F3(Djb=~iP5br;o6#Ax$_^avhqOcPAJN{eStDf z7QrudNpELew$^Gw1N?7{XYi)>wx4g7(pe`%EcJU*Es`7}FZ~o&R zKPoaSr-9zw$+=m9YgFqJ0FFqK<1Br|WBb($z|)(r72n+lKV?t) zanA&vPvytwOn+(`%i5*WTO&2i#vr$ec_4J9x($iav}Cgly5$r!g?q}!C;og^lD&QX z`3e|Z>2G_lvRpU)JPcjQ_N#A&T$_DL=$(;D78sQFLC@>fmg`Tp(h$qD%s}@I?~mc8 zo*DJ{T`n6R^$ha;2S7g|PWwzotO|D9cLYPCg5UG=s};tqEc6-fTO?S?wU^v=6;ri; zwCWFomf?PxKkZff4rv~K(2@3twz&TvKM;Yy2o=5rEZjC zch}~Ml75_v_5T1X`>)tnaqDOYTh$}*zK*lDMaJJQ7{^ndrnT?_4NG6q?k-|sJaITI z$M0vF_lPtJukYVbnZ?bz4@#irN46_}*)+f6`u3zik~pj*+Pjx&R;`yC)A055GJZsU zB)T_#IM#HTS9C2F==0c)qw@Y$Tkxinai~uvv{C;50L=2fnCfWH6h5@xGYzCg9n7~9 z7}VpCPX{&9EcB%C&8$%~teU05?wQy42Ygh1{{V2cv0k}rZ{dFq7_DR`y3C;5#RZEtU-XrfztZ?oA# z2)Bd`7C+`9kwZp=%SE+B@4j z%4EV^S)WlMERc_7 zhUw*Hc;H+`*N*fprKQ6}O~EmOZ~~r4tu)KcPUaHw#;OP2%J=PxZ>Zb6R;VNeUe!zuQm?>tK$o2Rvt zT`h!i<8Xz`NXPK+Rcoh;;p8#t)54Je{(Z>FbM!syEQ^grZ}Yx7TvywacVH# zNwN!xnl?BLtBm~#>rH$)uj%P_u`So{w-95_=1{)=#MKtd!~X!|Q?1R-?eCeKByqkm z_zsoPyglKY8!Jtz5sp)XxR1|0$)OcFb^L#zwH4WEves>5w3cY>iJC%vay~eubI);q zeqU*1JOvrRKPH;PX>SJ55Xt_gImh8fM-UH;=NJJ;O6lRsxw1Tze+Z@vOOUFvvLXAc zv~qtMCJinaSA31Vv5Yy-=}ZY&%e2m*ft()H1h=prEmh~00cRKmK>4RiG5jJqx7ob& zMQRt)NFCHv7do_2S+va=Bme@E0XggkT+-|7(`v<|P|Q@}*prevbN&V7O7 z9V<5)TuWfKcaz6In#N7-HqsZ|9-Ly0Rb7fb3TZ2BVe=Lsq!7SxGmfO=xu9<~ue8kgU)*JtQLqb+ zicima2|nV1b=hKeG0bF*Th>ViK5>q;IQv)b;D+WfCCDu-C67G_sC3(vjI4!#%Hfor zQ?F6e+L~>*GI@w_TLc)-Ku5RdLO)Tv2Ge4=jwVZwGUDoQFyoddA&xi)+LHK#Pnt-pf~t7VI$^#l zv6cQ1JrsMp(|u<>o}i-E`ZCPOPX`}#BL4vPgP)p%!d8b_xqEx2`#J?CH9VYm{C;Wn zucH3|>dQE8-Zr$px6E%cj54r1kDoU6PlR;0wADm+QL?YRg38k5!4t%l+i>^Js zzgjL&`p{AYjfU;tyazb%k8bpvO=LIEdv01X$Pv*G3xUVho}x&FOn!+D6f9$t@$uG{ znh#?1c)Y;xv~Pb%Je-c${3>^6-sRNG$u4=y<2(=f+P$n|#a87lrMYEIujRe~_&)yt z&bPOn7^dljQb=;DI5=*H`PS0g0lbY8M3Tb0q+!CM;A0&=O(>TA@2#0cUQ#Y&B&oul zgYc%3Mw8qaN2!9A-^khrQ;+3H{>yU};gBTLM=NcO{J^R`!%?Qp^m9)ZcxvNNjzM=J z3+4n}hd9YNz#o9GX`iyVWw?Z0$kMujxHEP7S8KG>?V;N{LFLR3`L}F1;~DCDSB{jZ z>pz&1AHEBw*HixhJJTsFe}x6yiUx=KJJW3D#P;ZL-j~PEw|ckPXtuE{k!2W<84?x1 z`c|{v%KGe9q11-lN)Nq^a!LMzn_Etz)k-jQ6Ko@PLZ5IyD$gvKDuONTqmtE3A~lf? zFhBr`*`gR+k;fZ4^PaS1C@tezWlg)3<-py^_^)new%Z!E^4^oT8PD>iZH;AnT=2z) zu@ggaY@SlFCkQ&9liRN~#XMQzT}#4Rl(#+`o=Ze!!bR0wdwW;Vn?aGXpx}VGKYRZG zA2g=(Nsi&cKAEF@)iYf)=SwdiU)s(g*KAkIVgtNmX&*kux=P%vwoy$B z28GnfxETavj1R`A@h|N9%H}zuj61?ea7e=`$4af~{!fSO9^U-15M^Q+1B`diO0+U4 zMe=$QQNEFX)20^sOgeg92m`JrnEwC*o=5|^s^#VVyIwY(rLmPGlWueO&$+IDFNiMn zOQRem%uB#n&IUfczO~c;0B1fGnNcNp3i*TYpSnk0{b`itlI2v5Ri;}!J8bsxDGb6R zjl;P5el=~hjb{p~=0`&u_qaZlQGmSjlirDr;w&^sk=wL+|rRepr7a%M-adRSa>By{lLdjmav4`Q>x>Yex)W#tA1FDoM}DH5_oXs!YTk z!x#XJe3~uUk_w6^b_G$q+!KM*0=8LPGZ;qaQOYpD9`%T#0a&bz8Awt=#c0aXTcbth z2PE*^esr#kmw}T? zsjeP5V{qV>bLr14aokW^Rv)3Xvk6a@tW>DR(aG!6J*b;|wt)(`W>M)N@JG!rx4Dit zTT`&Rf(ac->qgvgNZz zpe2G~6N`JlDYtEQ1D~RblS+vUG9ym1$fqqUcPF)E?e+!~vMlbegSAEg0~MAk(YOQ# zLy)+~<6d=GqfMJb9D?1A0c&z)jQO8?8(8$uJ!m~>)*S)ey;ed=9Flw15zfuSJe&#< z9WB+00_qNMcscL*RPkP0$Ye;HGAAyeecE*@Vui;NOg6{>$0sMLtzIDj^r*{s&T&G+ zI)=ajqCA`)b40~#!+R-W4>%_^WceX_WbmYHgY1V&NsV5u8Yi>J6T0ISkPNQbuu+)8@6?9I>%NG7mo$hHR2SIO|?m6L@jK_RSrG zK-s|=&MVVIR04w|JmQKmf?N(;`A}2GEK-1y61`1fk(IbsQh~AYM8>SifHU5K3a=+C z>OaNpM8>YGfhI@A6b6hC%O|Uvm^$MFlhYL=#!3bp6W28hD@Jmw->qj5S)c)nZyaW` zaRUV38x?NY?OVI9&(h^s;QWaNVN4XXiW7*SPqyo%yqEqE&2=AY|=X*9_UL~a8$LY`>V(c>6= z`mx@#S0Pr5RoJ$I*vUD{(*FQ54S|GygVL1hH?mC%?jWM`w=`~(dbbw48a@}lwJVDm zGifD?JEe68ZZVG472S`X=`2gfQY#vX3PE5tlfa@Z%(1B?b?Hcz7>*l4100n<6lIfn zO7Xr5p7kOtNpI>TF+BF6rkO1_APnS=wVr}+9mF|rD+*N6Fx9$Q^+74uX2ocQnOFU(cp%R#7W@j)sPmfa!jk&alO!mc*D zwdM8Q#iBy8SrSNB;2`bK(uA?o<+RiGyue({hwVAzYG)xc?t9VgKbdMHvxr9nakzWc zek(reJ^ug)rJFYuQ31VM8+m|)7Hr^UiTtX|YdkR7%jd_xa{7J^R;{dId$YP$EWV;h zIPM%|E zpl#O@5&r;oL)cW3tUeagTpWLj+zd+p0REDn;2%Epiq`%td7BW)BLqIDHT=Px3Hg_etLRd2P!LFUA zY7y!d;z-C64jnVjYB=VlFPD?Q5Bm|j*u32<0$KNDe+_D~laXx!c{?7%+|xUo8+(S{ z%42_Y z%KHHsKT*J=6}mGKk?z$@QsC1c7FUj3k)O2*T?((lVZW=tO<$c2Zf z3SdJJuDLD;sAKO6Xd$*3P=z=LBb?OGT3fs1&J}VnI%1u{ba@+OR#L{c^ET5aS3X$e zlh_ZMS9%>J{rpc0zpKk`qu|w^4KXdQ-e`_uVd+)p29sPMmEU>w1A(5@$|<4b)M3S~ ziXssknA&9p6@w5)YH55yZ9Ml=BL=jy8Dswd>PUX-ikR7!JOIS!02&6zMzqpw?ajaq z9jmnO{{ZgXG0r}VO$bZe@BaYD&C@{;JeDP;kOO&kK~hKkuzJ*?BDB7W?)|qk^Q>0! z4z6?8=qp`4TUOL9eABg^_ct8?1e5p*u1TuNtp3m~g`5v1t*pUWm+r+H_8%vT(z__M+jh2-Z6D(88T3dv9RCfS#NxU$E=Tp7bFIi(3Qkdfe^06oP z=k%)tC0gRb@B%*7aOj}(wE~g(R))JX_Bn>NcLlunn%(a)+Y+$@-MeCl@LNv$TvykN zw&w0bFh=Y@hd+ljE&Y|ox8fJIkxY7ByoYRLf7~GTHD!`8w-Ln=Qy5GZ9f0liqSo#B z2#d#8mls|f15Q_xb+{05$tAIm=UoF%iZp`PN{NOotjJ^jprBPxz%gDu?yWVz-KV76 z(MbERj=85k9e+M;Zd-p`qTgw5%3ZJr^R3}OKkObzw2Nq?o&y=kR%v8!aD)5O&0kzP ze42a2K#}G18GGYA{*>CmOm>&7y&GkWA3faF1I5=fKZqa50sNpNjZGOVkLUOPLYZRm z29x&h5GvT8{{S`w+q(ttM{819!)*Znd} zT#3AKcYkovx~?QW4{m6=%C5KPqD%8S#gB^T7oTTkJ4f7N+gN=KbiFe1wEqAN8~dAP zNiT*2fCCZGXBEc$E2YV-YE~B0Gow2XSr{8fQ~6hL)#ilX+osIgS)f=~u_L`K6r$Tk zblG0h^!U6zD8GdHmont6a`IO-1S4p z{(BE9&gbm5qp456X|&zCzox$b0AQzG7{8WlTqL&6=c2}{NX-j5NM1QL1bL-AqyTWA zTJ@HxJTM3&mgwN|B%G7^)Y5BnEyf-~AV5pV$O&WGw=}#p_w_(`+ZW3$`T>9#f9I{j zJn1BM>yV%W{HWis$s`6XvdbT3DS<=W>iU_1q>Ak#h#Z1c1Bz1@iXP#bIcJvQPKpt; z&*4had#CsMHY;uUECR)hBhM>t0l*C4W`&XL;F-jiVn-b#kGJA!TiP?st$j4GFguk8 zC-J7XR(fP{$uwdnlb|krMvCKf+F#H0(2XxUHHJ+xd(HQ8Je#;u&7HJZwz0C!!dh$@ zz%Jj?h|%=x%|b$8hB)F;o$b({VN5PG*JY7)0*pEXj(-YyE-~-;G*Z5R*7C(IGV1RQt5Lt|}gcW`fX>oF|uNe>|4eEd<`hJ!uujW5|_R^^0#)oat> z5rvN35F&p9E(U&R#M8`-@?0^=$Iw;QHCx~3{s}yfz^cv{{X{G=hg+rlL#UvcwJPn<8om7N4IQXW`@*lR?=bido;I>H3C9O zJh9I1cmM(YXfnTU3bDGK(Yi>gMotXTcvIsh@p#Uh%AkJ{h({=use zwTw$+4BCsEXq;se?w&a4d*dICL$7&vlG+egg3_&D+_MVxc^DW=EkMwY*Y1Bln#FAQO!7)|#$i){ZOL3R*4X)5?Y4&&X$@W|4 zh7`l@!Q^h~$6WO0p3L#vh}^83RgY7iJ7o0gX&h2$+GE6!K<|CCd3%N%21arbcqgwN zs?QgNb*ujX3qyT1(UBd6!rP+c>>v<$k<%5dxAVt-t811KuGdyw%6aHL{{{TVWtf~uL z0lr%cz0l;7L5=TZ5#7TVn0A7~Lykr|idW$MVofUN?6X_RHLbxBd8(Q69OQ$Z-3@eT zBaOBgkTjBxdybt*{VI=Vq{XE8<|t27PKl&U%_6Zzt^nd&P~GGBTr%0S7!$zB{mMd8VEy*{zTbvM~FqdXIzFqS7OR z^(~U@lMdWGse-HrL-pyOrEy9$_oAXiX{1?%s#%0tD~`GRKr{vI zwA!V|+3fBjl1pKe5jbr8kUtz!n~VF4yTW|o7n0yny>h>@rBej@XSOO>Iroj z^&Uw-BZ|5iBbGEdMqs46sok`5fDgZVrCrZ$sWkV}tE(aMO|-|<*x(cV`1qx5T7C@r z8^Lui_+_M1N~LLd*7u+s%pj51Iv+@KGZ7TTcpWsQ)|3_so&C|9{Bg8V3I3WiVK%Qp#k*~xE$lsd*+qD0ZPU& zEb_o4olYXaRo#Ui=Z)pOJWRhN`rn*?05OC)6mH0+6RL4{X9n2up?mPO3TyW z59?QWE&Q^wPG4|b2?6`Rhd?N?3ARE(K?@8heva=9ahWo_S8ndiXv$EzU$tfD{Z)}<`p-5Iv6vRM?V}=>r4`6%NqTm;2V86T0 z-Z8f)wR=tSB#8`9wgkj+vk$|H#nz)^2a#>OD#-p@F~K7TsrD4IrQ~F03t6SLBXLGK z+2yaRpXp3jWxNj@AswS%-V)d+*belTX|Euh!)gzeC}{+vlAv@0`&M+Be%!IkBuZsQ z<}V+w_Ix9W|G}q z8DcDQ$DX|^cGO_ExgfU3avjl>0!Lv>?PjsJlsK46bt3J-=%jPNp|0KUZUpkgCW7Z7 z#CQzY`To?=TcifdY!NJ;y~;eoTLAlt+TKP@z_2~CIvPRY*)FBGy7Oc5B8d5D803s~ z$fh#N)@ZX_ylWGXs;m6}06KMX+Y6>JBo%1n95*=vmqBuoT)GErj^t5`I!S@N1S57& zdR=p1W1Wa|Bn~|%AEBl4H-O=I=x~wwimmU-q9c*q1}H&2k5NnEQ60Jf8A#-?=QWup zdpIPSN0`f!Fn;j%rn(i37FG?O2tDe5FfqYV)00Z{+tj;A<&1?VtY@gHB@!79$w57M zqiq=^$zI&Z-@0JE>IRjqr|w63-rhp86>vfBYDq*gw$j)qr_Bo)BX6`TV5FJ%28s?F z1a$5xOxA)E<_weWD7YMK-pAFBlv4wURH`0O+yP#h(lCTYyC($DqU5RPfm25@U|XdQ4cUt>%hN*Z>j0p#0%;ka6Y@(zRHmi0AlzDX-XH%#&2Qng~j)K4LKE z9cq?z*Stw&w*>}Irxkl!m_jnhFnV)9#cuE!isKK+qN!W#TD=r#qYng#<&lBMtF3Qg zJdn(=1DMS_*Wgu+S)<+lrR-@+TBuJuelRjIO&XTPdI_F0adfzBY&?Nahfzt2Mokn4W21q>lY)acOb(HTedF?^Yo(iou2{R|S1kT0YNC-1g0R zWLQfu0H1oBX>4-4eW#X?lYleQl~2COnc?^74L+MUhDLLNo+vj(bUS+I6qRVq20cVv zO$svMyVFQ4F*7_bw6zB`5k&w|#JzKhcVP(f6D^aEdStr-(Z?DjnF>fU2TzLQ-Z9oM zV!V4erYR9%2?Gp&8ufad4dRjx?WPT3xhe&OQ5_;Bv<#(Zb#+m(NrMh*U{O=R!M#erUb)LW@c_(bDw(&yy-(7qMBn)W?aXKbp%T~u%sj+n1ktE&=D z4Zo-IbbKF3Xwd}=*Wlvd& zZ!hFag3J}TIp%`1vxHs+AeBit1lOz8*@=I|gNZIovR|Mo$b$8T`3TQV)WR4e3_T#@o_ViV zsb-RsqG@c!(LdqyIN*cEJ5@wGHQeVo@)OKJKh5ra>(%P$hUWzS`#l^B(-bz*5M12N z1l-59A0IWHX6jR=-YT7nC0Kx7FtzISb}s(_f8g|5=od=V?&7_)wpmGu&e9v6F;^jm zg-!rJ73%eKM_F7~U+D9GDluE2s3w*$?Hr7xbRg08$sVPrNiED#nOFGKV4tmey;V)A z#=Mint}QWTv?#Yc4uGD1DyQOEh)jT>-ZGDU+OmSdT!J2iKdn;yKWi1{xjn_eEg~Jm+coO-Qa!J~2oLa!bi28AFBt0<_nTye?Ico!ae>mP z+D4gcCG^3g7>%&F`q!(~&w;<{{{VyuEuH(p8hir5u1GC3XcbtVgB6?2Qsz>~%m4?B z4r|rwuf=+JBy34G>`Sfc6GI$gJ*&8Kam{ZNG~|imQQI=<>KfK4(SaB{ zerwh0hIusUGAUe*<}Yz`EUzQ(-PqIJ15ASM>twAa-MsB=X1!jnwFvQA@H$G%uacH< zCB3NfNb8+SQkL9DG3!XV7n)Q0R@OqNH=#0A}(Ue_YNesg%BxT_9j%v-L>5vmN zGc?mjg_92<>&ALxt$MvzhyMVb{$I$F{6Y^A&iZz|(AsTCRyTD_aHoEFr?8WB(3#HS z)*f-~mL%lYtJNqwmj3iJN{BpX9C6=8A&q2zOnH;k3gf0acJ`{*h*57Y&D5x(Nn=)E ziWPIaZ$a>)y3~4 zkUy<@yJbJ7SiYr(Ek8<4D`(#q<{4bEl^#m$o7M5Qf&c% z+nf{MpzB_*RAArBkKcjm6)Uq9r-@_RZEqxZFzk{kQ+ggU4i9j88od6?d`EpYnwonE ze4BJCj2G37}Jd&vI+xwTr6;DOS#t^`KJ8^R@v=d7h4yIVc?Qe0OpM`PF zWtP_d=H>{IBo=FOn9d`1+mbo{d9PQitCMuEz_h86TzG>1-%Fb1T^dG_UkCxVcF7 zN{EuFQ-B*iYt`!XXBr>HgR z^-dd(!&@S2D8-qEMtNhBB3MXwXPV})$Zd5Nw2K}=JqXS@uUDx)AyU`SXl}E0d)}DAWE$~}T?(Wh^H!B>k-y^5cSF6?07_XM}LH3T1Hj8HtqiJy(5c9NXh(`LNo(zdwbYnaC%GZ1ioNv5_s?d*2ec9EEs zW_F33Al<|egknU$ofwZ${8O?gV zTkH4WNuh=IE%fQ0H3CGFAi$kxI;U3q)CMEy+-%MVzR|IO|gwl)(vnz8h!^bAev3 zQoq94O4zpV{-RV_KkcLJR2%`%U#$)mcgGgdurnX8*YmGes%y3P;2v0Rn!aR&u{@GL zrA2UAC6^4|g>AVx_T%+6>h&~|&{4LW%+g64oxunyPf^BdTgbJ4G-)7kvSsw*P zG1{ZknB8ldq_g_kFv^+eIO~sk^?JFnx3~0v*w3+uyO3xqr)g$VrbC_Ioe2%p&|XF5 zIbG_2j@;ul>h&}?H-6!*7OTf_g#(bQwXyzUNgU9+>>y}jRb~<}LP$OLV!d9gK`Q-4 zCDd%~B)Kt3YYVCr0J7x%bynByVq2+RHS)?}jl6XkHR|<3GLw6L;b~DU7bXXa;71G0 zV+py?9x48}H)ssIgMuT>o7%CFD)0!y)oi8c;D@3!aprS^y~VY-g% z_lp~{u6qH}yNiEO+09KOQ{{Uyn-M8e|tJR<42Y@{u)-=1il?#W8P#4w4DUXP5Wsgjf?k6cK z;0?Vx*Q?ZWtuM)cVPX>n#EolZD>hxg4UyKjQL_2SCxOOm)#{u70JrK@5(!w63F3z% z666zJuTY0!pwSw%ZVq@IYBeGnmjFgdBo%UawOxzt~0w_fp%&>l=Dg zrg^Imhu!Wi)XK#1UawN)+}WB`A1rFlGoPg))Ff!G94X-TJlCt#GWaw|&)kfTGs(qA hkKZA$SE(0c(X_aENMJaomf#COK*6t9sIGzJ|JjvacHsa3 diff --git a/examples/with-netlify-cms/public/static/img/puppy-and-adult-dog.jpg b/examples/with-netlify-cms/public/static/img/puppy-and-adult-dog.jpg deleted file mode 100644 index 9a1b54c547dd50adcccfaa46ca8cd1fcafb644ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140871 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 z 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 X*pl8DhR7(yWD$}Ut>9@)lVktc5sBh3 diff --git a/examples/with-next-auth/.gitignore b/examples/with-next-auth/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-auth/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-auth/README.md b/examples/with-next-auth/README.md deleted file mode 100644 index 7c2b46575c514..0000000000000 --- a/examples/with-next-auth/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# NextAuth.js Example - -The official example is maintained by the NextAuth.js team. You can find it at this url: https://github.com/nextauthjs/next-auth-example diff --git a/examples/with-next-css/.gitignore b/examples/with-next-css/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-css/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-css/README.md b/examples/with-next-css/README.md deleted file mode 100644 index 2ce7f64821d33..0000000000000 --- a/examples/with-next-css/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Moved - -This example has been deprecated. Please use [examples/next-css](../next-css) instead. diff --git a/examples/with-next-i18next/.gitignore b/examples/with-next-i18next/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-i18next/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-i18next/README.md b/examples/with-next-i18next/README.md deleted file mode 100644 index ec328399f6a69..0000000000000 --- a/examples/with-next-i18next/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# with-next-i18next - internationalization using i18next - -The next-i18next module is the simplest way to add internationalization based on i18next to your next.js application providing all the benefits of react-i18next. - -Learn more on [next-i18next](https://github.com/isaachinman/next-i18next/tree/master/examples/simple). diff --git a/examples/with-next-multilingual/.gitignore b/examples/with-next-multilingual/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-multilingual/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-multilingual/README.md b/examples/with-next-multilingual/README.md deleted file mode 100644 index e00512c6ff9ca..0000000000000 --- a/examples/with-next-multilingual/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# with-next-multilingual - -The `next-multilingual` module is a unique i18n module for Next.js that offers localized URLs and modular string management on top of other standard features required for multilingual applications. - -[View the example](https://github.com/Avansai/next-multilingual-example) or the [main repository](https://github.com/Avansai/next-multilingual). diff --git a/examples/with-next-offline/.gitignore b/examples/with-next-offline/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-offline/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-offline/README.md b/examples/with-next-offline/README.md deleted file mode 100644 index 70eac51deff6b..0000000000000 --- a/examples/with-next-offline/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Moved - -This example has been deprecated. Please use [examples/next-offline](../next-offline) instead. diff --git a/examples/with-next-routes/.gitignore b/examples/with-next-routes/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-next-routes/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-next-routes/readme.md b/examples/with-next-routes/readme.md deleted file mode 100644 index 20af448a0d8a7..0000000000000 --- a/examples/with-next-routes/readme.md +++ /dev/null @@ -1 +0,0 @@ -Dynamic routes are now supported by default in Next.js: https://nextjs.org/docs/routing/dynamic-routes diff --git a/examples/with-now-env/.gitignore b/examples/with-now-env/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-now-env/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-now-env/README.md b/examples/with-now-env/README.md deleted file mode 100644 index 0c69e1a1d7e9d..0000000000000 --- a/examples/with-now-env/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Next.js automatically supports Environment Variable loading as of [Next.js 9.4](https://nextjs.org/blog/next-9-4#new-environment-variables-support). Visit the [documentation for environment variables](https://nextjs.org/docs/basic-features/environment-variables) to learn more and the [Environment Variables Example](/examples/environment-variables) to see it on action. - -Now Secrets (previously used by this example) is no longer needed as you can now add environment variables directly in your [Vercel](https://vercel.com/) project. diff --git a/examples/with-patternfly/.gitignore b/examples/with-patternfly/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-patternfly/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-patternfly/README.md b/examples/with-patternfly/README.md deleted file mode 100644 index 3ad850dc577fb..0000000000000 --- a/examples/with-patternfly/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# PatternFly 4 example - -This example shows how to use Next.js with the [PatternFly 4](https://www.patternfly.org/v4/) design system. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-patternfly) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-patternfly&project-name=with-patternfly&repository-name=with-patternfly) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-patternfly with-patternfly-app -``` - -```bash -yarn create next-app --example with-patternfly with-patternfly-app -``` - -```bash -pnpm create next-app --example with-patternfly with-patternfly-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Troubleshooting - -### Global CSS cannot be imported from within node_modules - -PatternFly 4 packages published on [npm](https://npm.org) use Global CSS imports for styling of React components, which is not supported by Next.js. -To workaround this issue, this example uses [next-transpile-modules](https://www.npmjs.com/package/next-transpile-modules) to transpile the packages during compilation. -As a consequence, all packages that depend on [@patternfly/react-styles](https://www.npmjs.com/package/@patternfly/react-styles) need to be transpiled as well. - -If you receive this error, verify whether all packages that depend on [@patternfly/react-styles](https://www.npmjs.com/package/@patternfly/react-styles) are specified in [next.config.js](next.config.js). - -### PatternFly components do not appear to be styled - -If your Next.js application compiles successfully, but PatternFly components in your application do not appear to be styled, make sure you have applied the global PatternFly stylesheet in `pages/_app.js`: - -```javascript -// In pages/_app.js -import App from 'next/app' -import '@patternfly/react-core/dist/styles/base.css' - -... -``` - -### All components styles are imported when using a PatternFly component - -This is expected behavior in development mode. Tree shaking will remove these imports in production builds. - -## Useful Links - -- [PatternFly 4 documentation](https://www.patternfly.org/v4/) -- [next-transpile-modules](https://www.npmjs.com/package/next-transpile-modules) diff --git a/examples/with-patternfly/next.config.js b/examples/with-patternfly/next.config.js deleted file mode 100644 index 2d2932fe671d4..0000000000000 --- a/examples/with-patternfly/next.config.js +++ /dev/null @@ -1,8 +0,0 @@ -// PatternFly 4 uses global CSS imports in its distribution files. Therefore, -// we need to transpile the modules before we can use them. -const withTM = require('next-transpile-modules')([ - '@patternfly/react-core', - '@patternfly/react-styles', -]) - -module.exports = withTM({}) diff --git a/examples/with-patternfly/package.json b/examples/with-patternfly/package.json deleted file mode 100644 index 2d08550ce031d..0000000000000 --- a/examples/with-patternfly/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "@patternfly/react-core": "^4.121.1", - "@patternfly/react-icons": "^4.10.7", - "next": "latest", - "next-transpile-modules": "^9.0.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } -} diff --git a/examples/with-patternfly/pages/_app.js b/examples/with-patternfly/pages/_app.js deleted file mode 100644 index 4872aa824237e..0000000000000 --- a/examples/with-patternfly/pages/_app.js +++ /dev/null @@ -1,4 +0,0 @@ -import App from 'next/app' -import '@patternfly/react-core/dist/styles/base.css' - -export default App diff --git a/examples/with-patternfly/pages/index.js b/examples/with-patternfly/pages/index.js deleted file mode 100644 index 01ae15b1500c1..0000000000000 --- a/examples/with-patternfly/pages/index.js +++ /dev/null @@ -1,36 +0,0 @@ -import { useState } from 'react' -import { Button, Wizard } from '@patternfly/react-core' -import { CogIcon } from '@patternfly/react-icons' - -const steps = [ - { name: 'Step 1', component:

Step 1

}, - { name: 'Step 2', component:

Step 2

}, - { name: 'Step 3', component:

Step 3

}, - { name: 'Step 4', component:

Step 4

}, - { name: 'Review', component:

Review Step

, nextButtonText: 'Finish' }, -] - -export default function Home() { - const [isOpen, setIsOpen] = useState(false) - return ( - <> - - {isOpen && ( - setIsOpen(false)} - title="Simple Wizard" - description="Simple Wizard Description" - steps={steps} - /> - )} - - ) -} diff --git a/examples/with-pretty-url-routing/.gitignore b/examples/with-pretty-url-routing/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-pretty-url-routing/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-pretty-url-routing/README.md b/examples/with-pretty-url-routing/README.md deleted file mode 100644 index 20af448a0d8a7..0000000000000 --- a/examples/with-pretty-url-routing/README.md +++ /dev/null @@ -1 +0,0 @@ -Dynamic routes are now supported by default in Next.js: https://nextjs.org/docs/routing/dynamic-routes diff --git a/examples/with-prisma/.gitignore b/examples/with-prisma/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-prisma/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-prisma/README.md b/examples/with-prisma/README.md deleted file mode 100644 index d0b645b786006..0000000000000 --- a/examples/with-prisma/README.md +++ /dev/null @@ -1,7 +0,0 @@ -The official examples are maintained by the Prisma team: - -- [Javascript](https://github.com/prisma/prisma-examples/tree/latest/javascript/rest-nextjs) -- [Typescript: rest-api-routes-auth](https://github.com/prisma/prisma-examples/tree/latest/typescript/rest-nextjs-api-routes-auth) -- [Typescript: rest-api-routes](https://github.com/prisma/prisma-examples/tree/latest/typescript/rest-nextjs-api-routes) -- [Typescript: rest-api-express](https://github.com/prisma/prisma-examples/tree/latest/typescript/rest-nextjs-express) -- [Typescript: graphql](https://github.com/prisma/prisma-examples/tree/latest/typescript/graphql-nextjs) diff --git a/examples/with-react-helmet/.gitignore b/examples/with-react-helmet/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-react-helmet/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-react-helmet/README.md b/examples/with-react-helmet/README.md deleted file mode 100644 index 76bb9827dccb7..0000000000000 --- a/examples/with-react-helmet/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# react-helmet example - -This an minimalistic example of how to combine next.js and [react-helmet](https://github.com/nfl/react-helmet). -The title of the page shall be changed to "Hello next.js!" -If you go to the page `/about`, the title will be overridden to "About | Hello next.js!" -The rest is all up to you. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-react-helmet) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-react-helmet&project-name=with-react-helmet&repository-name=with-react-helmet) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-react-helmet with-react-helmet-app -``` - -```bash -yarn create next-app --example with-react-helmet with-react-helmet-app -``` - -```bash -pnpm create next-app --example with-react-helmet with-react-helmet-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/with-react-helmet/package.json b/examples/with-react-helmet/package.json deleted file mode 100644 index cc946997f510d..0000000000000 --- a/examples/with-react-helmet/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-helmet": "^6.0.0" - } -} diff --git a/examples/with-react-helmet/pages/_app.js b/examples/with-react-helmet/pages/_app.js deleted file mode 100644 index 6c65d3a697d62..0000000000000 --- a/examples/with-react-helmet/pages/_app.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Helmet } from 'react-helmet' - -function MyApp({ Component, pageProps }) { - return ( - <> - - - - ) -} - -export default MyApp diff --git a/examples/with-react-helmet/pages/_document.js b/examples/with-react-helmet/pages/_document.js deleted file mode 100644 index 8b427aa4677d4..0000000000000 --- a/examples/with-react-helmet/pages/_document.js +++ /dev/null @@ -1,40 +0,0 @@ -import Document, { Html, Head, Main, NextScript } from 'next/document' -import { Helmet } from 'react-helmet' - -export default class MyDocument extends Document { - static async getInitialProps(...args) { - const documentProps = await super.getInitialProps(...args) - // see https://github.com/nfl/react-helmet#server-usage for more information - // 'head' was occupied by 'renderPage().head', we cannot use it - return { ...documentProps, helmet: Helmet.renderStatic() } - } - - // should render on - get helmetHtmlAttrComponents() { - return this.props.helmet.htmlAttributes.toComponent() - } - - // should render on - get helmetBodyAttrComponents() { - return this.props.helmet.bodyAttributes.toComponent() - } - - // should render on - get helmetHeadComponents() { - return Object.keys(this.props.helmet) - .filter((el) => el !== 'htmlAttributes' && el !== 'bodyAttributes') - .map((el) => this.props.helmet[el].toComponent()) - } - - render() { - return ( - - {this.helmetHeadComponents} - -
- - - - ) - } -} diff --git a/examples/with-react-helmet/pages/about.js b/examples/with-react-helmet/pages/about.js deleted file mode 100644 index 38f51aae9d80e..0000000000000 --- a/examples/with-react-helmet/pages/about.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Helmet } from 'react-helmet' - -export default function About() { - return ( -
- - About the World -
- ) -} diff --git a/examples/with-react-helmet/pages/index.js b/examples/with-react-helmet/pages/index.js deleted file mode 100644 index 5759e4c43b691..0000000000000 --- a/examples/with-react-helmet/pages/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function Home() { - return
Hello World!
-} diff --git a/examples/with-react-md/.gitignore b/examples/with-react-md/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-react-md/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-react-md/README.md b/examples/with-react-md/README.md deleted file mode 100644 index da4f5a1b35bda..0000000000000 --- a/examples/with-react-md/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# ReactMD and Next.js Example - -This example sets up a simple [ReactMD](https://github.com/mlaursen/react-md) and Next.js -app featuring: - -- [\_variables.scss](./styles/_variables.scss) to override the default - `react-md` theme and feature toggles -- [app.scss](./styles/app.scss) global styles that conditionally apply the dark theme - based on the user's OS preferences -- a custom [\_app.jsx](./pages/_app.jsx) that uses a persistent layout -- a reusable [Layout.jsx](./components/Layout/Layout.jsx) that: - - updates all the icons to use `SVGIcon`s instead of `FontIcon`s - - initializes the `Layout` component from `react-md` with navigation items - -For more information about ReactMD's features, styling, components, and API, check out -the [main documentation](https://react-md.dev). You can also view the -[documentation site's source code](https://github.com/mlaursen/react-md/tree/master/packages/documentation) -for a more complex example of using ReactMD + Next.js or the [with-react-md-typescript](../with-react-md-typescript) -example for Typescript support. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-react-md) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-react-md&project-name=with-react-md&repository-name=with-react-md) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-react-md with-react-md-app -``` - -```bash -yarn create next-app --example with-react-md with-react-md-app -``` - -```bash -pnpm create next-app --example with-react-md with-react-md-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/with-react-md/components/Layout/Layout.jsx b/examples/with-react-md/components/Layout/Layout.jsx deleted file mode 100644 index 77f8db5ecb7d1..0000000000000 --- a/examples/with-react-md/components/Layout/Layout.jsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from 'react' -import { useRouter } from 'next/router' -import { - Layout as RMDLayout, - Configuration, - useLayoutNavigation, - ArrowDropDownSVGIcon, - CheckBoxSVGIcon, - FileDownloadSVGIcon, - KeyboardArrowDownSVGIcon, - KeyboardArrowLeftSVGIcon, - KeyboardArrowRightSVGIcon, - MenuSVGIcon, - NotificationsSVGIcon, - RadioButtonCheckedSVGIcon, - RemoveRedEyeSVGIcon, - ArrowUpwardSVGIcon, - CheckSVGIcon, -} from 'react-md' - -import LinkUnstyled from '../LinkUnstyled' -import navItems from './navItems' - -const icons = { - back: , - checkbox: , - dropdown: , - download: , - expander: , - forward: , - menu: , - notification: , - radio: , - password: , - selected: , - sort: , -} - -// Check out the documentation for Configuring your Layout for more information: -// - https://react-md.dev/guides/configuring-your-layout -export default function Layout({ children }) { - const { pathname } = useRouter() - - return ( - - - {children} - - - ) -} diff --git a/examples/with-react-md/components/Layout/index.js b/examples/with-react-md/components/Layout/index.js deleted file mode 100644 index 0e2737eeea41e..0000000000000 --- a/examples/with-react-md/components/Layout/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Layout' diff --git a/examples/with-react-md/components/Layout/navItems.jsx b/examples/with-react-md/components/Layout/navItems.jsx deleted file mode 100644 index 1027dd2a66a80..0000000000000 --- a/examples/with-react-md/components/Layout/navItems.jsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react' -import { HomeSVGIcon, TvSVGIcon } from 'react-md' - -/** - * Note: The `parentId` **must** be defaulted to `null` for the navigation tree - * to render correctly since this uses the @react-md/tree package behind the - * scenes. Each item that has a `parentId` set to `null` will appear at the root - * level of your navigation tree. - */ -function createRoute(pathname, children, leftAddon, parentId = null) { - return { - itemId: pathname, - parentId, - href: pathname, - children, - leftAddon, - } -} - -const navItems = { - '/': createRoute('/', 'Home', ), - '/route-1': createRoute('/route-1', 'Route 1', ), -} - -export default navItems diff --git a/examples/with-react-md/components/LinkUnstyled.jsx b/examples/with-react-md/components/LinkUnstyled.jsx deleted file mode 100644 index c61b2c27a3986..0000000000000 --- a/examples/with-react-md/components/LinkUnstyled.jsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react' -import Link from 'next/link' - -export default function LinkUnstyled({ - as, - href, - scroll, - shallow, - replace, - children, - ...props -}) { - if (typeof href === 'string' && href.startsWith('http')) { - // external links - return ( -
- {children} - - ) - } - - return ( - - {children} - - ) -} diff --git a/examples/with-react-md/package.json b/examples/with-react-md/package.json deleted file mode 100644 index df4ab1f7a4b38..0000000000000 --- a/examples/with-react-md/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-md": "^2.1.1" - }, - "devDependencies": { - "sass": "^1.34.1" - } -} diff --git a/examples/with-react-md/pages/_app.jsx b/examples/with-react-md/pages/_app.jsx deleted file mode 100644 index 30774fd21ae00..0000000000000 --- a/examples/with-react-md/pages/_app.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react' -import Head from 'next/head' - -import Layout from '../components/Layout' - -import '../styles/app.scss' - -export default function App({ Component, pageProps }) { - return ( - - - react-md with next.js - - - - ) -} diff --git a/examples/with-react-md/pages/index.jsx b/examples/with-react-md/pages/index.jsx deleted file mode 100644 index 5149adaef8da5..0000000000000 --- a/examples/with-react-md/pages/index.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' -import { Text, TextContainer } from 'react-md' - -export default function Home() { - return ( - - Hello, world! - - ) -} diff --git a/examples/with-react-md/pages/route-1.jsx b/examples/with-react-md/pages/route-1.jsx deleted file mode 100644 index 3d5d70ef8eb03..0000000000000 --- a/examples/with-react-md/pages/route-1.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' -import { TextContainer, Text } from 'react-md' - -export default function Route1() { - return ( - - Route 1 - - ) -} diff --git a/examples/with-react-md/styles/_variables.scss b/examples/with-react-md/styles/_variables.scss deleted file mode 100644 index 3cc7d0fc3aba0..0000000000000 --- a/examples/with-react-md/styles/_variables.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import '~@react-md/theme/dist/color-palette'; - -// I'm bad with colors... update these variables as needed for -// your app -$rmd-theme-primary: $rmd-purple-500; -$rmd-theme-secondary: $rmd-pink-a-200; -$rmd-theme-light: true; - -$rmd-theme-dark-elevation: 'prefers-color-scheme'; -$rmd-utils-auto-dense: false; - -// any other react-md overrides or "global" variables used -// in your app diff --git a/examples/with-react-md/styles/app.scss b/examples/with-react-md/styles/app.scss deleted file mode 100644 index c5357c17f67fd..0000000000000 --- a/examples/with-react-md/styles/app.scss +++ /dev/null @@ -1,11 +0,0 @@ -// import react-md variable overrides -@import './variables'; - -// generate all react-md styles with the custom theme -@import 'react-md/dist/styles'; - -@media (prefers-color-scheme: dark) { - :root { - @include rmd-theme-dark; - } -} diff --git a/examples/with-react-query/.gitignore b/examples/with-react-query/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-react-query/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-react-query/README.md b/examples/with-react-query/README.md deleted file mode 100644 index 93fe920e17fd9..0000000000000 --- a/examples/with-react-query/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# React Query - -**Note:** This example is maintained outside of the Next.js repository: - -- Official [TypeScript example](https://github.com/TanStack/query/tree/beta/examples/react/nextjs) diff --git a/examples/with-redux-observable/.gitignore b/examples/with-redux-observable/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-observable/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-observable/README.md b/examples/with-redux-observable/README.md deleted file mode 100644 index 1a307fb2928d8..0000000000000 --- a/examples/with-redux-observable/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Redux-Observable example - -This example is a page that renders information about Star-Wars characters. It -fetches new character every 3 seconds having the initial character fetched on -a server. - -Example also uses `redux-logger` to log every action. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-redux-observable) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-redux-observable&project-name=with-redux-observable&repository-name=with-redux-observable) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-redux-observable with-redux-observable-app -``` - -```bash -yarn create next-app --example with-redux-observable with-redux-observable-app -``` - -```bash -pnpm create next-app --example with-redux-observable with-redux-observable-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -Note: we are not using `AjaxObservable` from the `rxjs` library; as of rxjs -v5.5.6, it will not work on both the server- and client-side. Instead we call -the default export from -[universal-rxjs-ajax](https://www.npmjs.com/package/universal-rxjs-ajax) (as -`request`). - -We transform the Observable we get from `ajax` into a Promise in order to await -its resolution. That resolution should be a action (since the epic returns -Observables of actions). We immediately dispatch that action to the store. - -This server-side solution allows compatibility with Next. It may not be -something you wish to emulate. In other situations, calling or awaiting epics -directly and passing their result to the store would be an anti-pattern. You -should only trigger epics by dispatching actions. This solution may not -generalise to resolving more complicated sets of actions. - -The layout of the redux related functionality is split between: - - - actions (in `redux/actions.js`) - - actionTypes (in `redux/actionTypes.js`) - - epics (in `redux/epics.js`) - - reducer (in `redux/reducer.js`) - -and organized in `redux/index.js`. - -Excepting in those manners discussed above, the configuration is similar the -configuration found in [with-redux example](https://github.com/vercel/next.js/tree/canary/examples/with-redux) -and [redux-observable docs](https://redux-observable.js.org/). diff --git a/examples/with-redux-observable/components/UserInfo.js b/examples/with-redux-observable/components/UserInfo.js deleted file mode 100644 index e3fc0428225ca..0000000000000 --- a/examples/with-redux-observable/components/UserInfo.js +++ /dev/null @@ -1,50 +0,0 @@ -import { useSelector } from 'react-redux' - -const useUser = () => { - return useSelector((state) => ({ - character: state.character, - error: state.error, - isFetchedOnServer: state.isFetchedOnServer, - })) -} - -const UserInfo = () => { - const { character, isFetchedOnServer, error } = useUser() - const { name, id, username, email, phone, website } = character - - return ( -
- {error ? ( -

We encountered and error.

- ) : ( -
-

Name: {name}

-

Id: {id}

-

Username: {username}

-

Email: {email}

-

Phone: {phone}

-

Website: {website}

-
- )} -

- (was user fetched on server? - {isFetchedOnServer.toString()}) -

-

Please note there are no more than 10 users in the API!

- -
- ) -} - -export default UserInfo diff --git a/examples/with-redux-observable/package.json b/examples/with-redux-observable/package.json deleted file mode 100644 index ddb810086078d..0000000000000 --- a/examples/with-redux-observable/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "7.2.9", - "redux": "4.0.5", - "redux-logger": "3.0.6", - "redux-observable": "1.2.0", - "rxjs": "6.5.5", - "universal-rxjs-ajax": "2.0.4" - } -} diff --git a/examples/with-redux-observable/pages/_app.js b/examples/with-redux-observable/pages/_app.js deleted file mode 100644 index 7c9abfdb7a49c..0000000000000 --- a/examples/with-redux-observable/pages/_app.js +++ /dev/null @@ -1,12 +0,0 @@ -import { Provider } from 'react-redux' -import { useStore } from '../store/store' - -export default function App({ Component, pageProps }) { - const store = useStore(pageProps.initialReduxState) - - return ( - - - - ) -} diff --git a/examples/with-redux-observable/pages/index.js b/examples/with-redux-observable/pages/index.js deleted file mode 100644 index 08d9d983f9293..0000000000000 --- a/examples/with-redux-observable/pages/index.js +++ /dev/null @@ -1,28 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import Link from 'next/link' -import UserInfo from '../components/UserInfo' -import { stopFetchingUsers, startFetchingUsers } from '../store/actions' - -const Counter = () => { - const dispatch = useDispatch() - - useEffect(() => { - dispatch(startFetchingUsers()) - return () => { - dispatch(stopFetchingUsers()) - } - }, [dispatch]) - - return ( -
-

Index Page

- -
- -
- ) -} -export default Counter diff --git a/examples/with-redux-observable/pages/other.js b/examples/with-redux-observable/pages/other.js deleted file mode 100644 index cc27744fe6d21..0000000000000 --- a/examples/with-redux-observable/pages/other.js +++ /dev/null @@ -1,10 +0,0 @@ -import Link from 'next/link' - -const OtherPage = () => ( -
-

Other Page

- Get back to "/" -
-) - -export default OtherPage diff --git a/examples/with-redux-observable/store/actionTypes.js b/examples/with-redux-observable/store/actionTypes.js deleted file mode 100644 index c089a96ea36eb..0000000000000 --- a/examples/with-redux-observable/store/actionTypes.js +++ /dev/null @@ -1,5 +0,0 @@ -export const FETCH_USER = 'FETCH_USER' -export const FETCH_USER_SUCCESS = 'FETCH_USER_SUCCESS' -export const FETCH_USER_FAILURE = 'FETCH_USER_FAILURE' -export const START_FETCHING_USERS = 'START_FETCHING_USERS' -export const STOP_FETCHING_USERS = 'STOP_FETCHING_USERS' diff --git a/examples/with-redux-observable/store/actions.js b/examples/with-redux-observable/store/actions.js deleted file mode 100644 index 33714f2eaebe6..0000000000000 --- a/examples/with-redux-observable/store/actions.js +++ /dev/null @@ -1,21 +0,0 @@ -import * as types from './actionTypes' - -export const startFetchingUsers = () => ({ - type: types.START_FETCHING_USERS, -}) -export const stopFetchingUsers = () => ({ - type: types.STOP_FETCHING_USERS, -}) -export const fetchUser = (isServer = false) => ({ - type: types.FETCH_USER, - payload: { isServer }, -}) -export const fetchUserSuccess = (response, isServer) => ({ - type: types.FETCH_USER_SUCCESS, - payload: { response, isServer }, -}) - -export const fetchUserFailure = (error, isServer) => ({ - type: types.FETCH_USER_FAILURE, - payload: { error, isServer }, -}) diff --git a/examples/with-redux-observable/store/epics.js b/examples/with-redux-observable/store/epics.js deleted file mode 100644 index 191490cfa8d6b..0000000000000 --- a/examples/with-redux-observable/store/epics.js +++ /dev/null @@ -1,44 +0,0 @@ -import { interval, of } from 'rxjs' -import { takeUntil, mergeMap, catchError, map } from 'rxjs/operators' -import { combineEpics, ofType } from 'redux-observable' -import { request } from 'universal-rxjs-ajax' // because standard AjaxObservable only works in browser - -import * as actions from './actions' -import * as types from './actionTypes' - -export const fetchUsersEpic = (action$, state$) => - action$.pipe( - ofType(types.START_FETCHING_USERS), - mergeMap((action) => { - return interval(5000).pipe( - map((x) => actions.fetchUser()), - takeUntil( - action$.ofType(types.STOP_FETCHING_USERS, types.FETCH_USER_FAILURE) - ) - ) - }) - ) - -export const fetchUserEpic = (action$, state$) => - action$.pipe( - ofType(types.FETCH_USER), - mergeMap((action) => - request({ - url: `https://jsonplaceholder.typicode.com/users/${state$.value.nextUserId}`, - }).pipe( - map((response) => - actions.fetchUserSuccess(response.response, action.payload.isServer) - ), - catchError((error) => - of( - actions.fetchUserFailure( - error.xhr.response, - action.payload.isServer - ) - ) - ) - ) - ) - ) - -export const rootEpic = combineEpics(fetchUsersEpic, fetchUserEpic) diff --git a/examples/with-redux-observable/store/store.js b/examples/with-redux-observable/store/store.js deleted file mode 100644 index bb741b565a520..0000000000000 --- a/examples/with-redux-observable/store/store.js +++ /dev/null @@ -1,73 +0,0 @@ -import { useMemo } from 'react' -import { createStore, applyMiddleware } from 'redux' -import { createLogger } from 'redux-logger' -import { createEpicMiddleware } from 'redux-observable' -import { rootEpic } from './epics' -import * as types from './actionTypes' - -let store - -const INITIAL_STATE = { - nextUserId: 1, - character: {}, - isFetchedOnServer: false, - error: null, -} - -function reducer(state = INITIAL_STATE, { type, payload }) { - switch (type) { - case types.FETCH_USER_SUCCESS: - return { - ...state, - character: payload.response, - isFetchedOnServer: payload.isServer, - nextUserId: state.nextUserId + 1, - } - case types.FETCH_USER_FAILURE: - return { - ...state, - error: payload.error, - isFetchedOnServer: payload.isServer, - } - default: - return state - } -} - -const initStore = (initialState) => { - const epicMiddleware = createEpicMiddleware() - const logger = createLogger({ collapsed: true }) // log every action to see what's happening behind the scenes. - const reduxMiddleware = applyMiddleware(epicMiddleware, logger) - - const store = createStore(reducer, initialState, reduxMiddleware) - epicMiddleware.run(rootEpic) - - return store -} - -export const initializeStore = (preloadedState) => { - let _store = store ?? initStore(preloadedState) - - // After navigating to a page with an initial Redux state, merge that state - // with the current state in the store, and create a new store - if (preloadedState && store) { - _store = initStore({ - ...store.getState(), - ...preloadedState, - }) - // Reset the current store - store = undefined - } - - // For SSG and SSR always create a new store - if (typeof window === 'undefined') return _store - // Create the store once in the client - if (!store) store = _store - - return _store -} - -export function useStore(initialState) { - const store = useMemo(() => initializeStore(initialState), [initialState]) - return store -} diff --git a/examples/with-redux-persist/.gitignore b/examples/with-redux-persist/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-persist/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-persist/README.md b/examples/with-redux-persist/README.md deleted file mode 100644 index a566539b9d38f..0000000000000 --- a/examples/with-redux-persist/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Redux Persist example - -This example shows how to integrate Redux with the power of Redux Persist in Next.js. - -With the advantage of having a global state for your app using `redux`. You'll also require some of your state values to be available offline. There comes `redux-persist` using which you can persist your states in browser's local storage. While there are various ways of persisting your states which you can always find in there [documentation](https://github.com/rt2zz/redux-persist/blob/master/README.md). This is an example of how you can integrate `redux-persist` with redux along with Next.js's universal rendering approach. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-redux-persist) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-redux-persist&project-name=with-redux-persist&repository-name=with-redux-persist) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-redux-persist with-redux-persist-app -``` - -```bash -yarn create next-app --example with-redux-persist with-redux-persist-app -``` - -```bash -pnpm create next-app --example with-redux-persist with-redux-persist-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Notes - -In this example, we are going to use the Next.js example [with-redux](https://github.com/vercel/next.js/tree/canary/examples/with-redux-persist) to see how you can add a layer of persistence for one of the state from global redux state. To know more about how to create a Next.js project with Redux, you can browse the example project [with-redux](https://github.com/vercel/next.js/tree/canary/examples/with-redux) to know more about its implementation. - -The Redux Persist has been initialized in `store.js`. You can modify the `redux-persist` configuration (In this example, we are persisting only one state termed `exampleData` which is added in the `persist configuration`) if you need something more with `redux-persist` by following their [docs](https://github.com/rt2zz/redux-persist/blob/master/README.md). To wrap out our component in the `Persist Gate` which rehydrates the global state with combining the persisted values and global state values, we'll have to make some modifications in the implementation of Redux in `pages/_app.js`. - -The example under `components/data-list.js`, shows a simple component that fetches data after being mounted and then dispatches an action to populate the redux state `exampleData` with the fetched data. And in `store.js`, since we have included the `exampleData` state to be persisted, So once the redux state receives the persisted data from browser's local storage, it will be then updated to the global redux state. So if you open the app next time and there is no Internet connection or whatsoever condition, the app will load the persisted data and will render it on the screen. - -For simplicity and readability, Reducers, Actions, Redux Persist configuration, and Store creators are all in the same file: `store.js` diff --git a/examples/with-redux-persist/components/clock.js b/examples/with-redux-persist/components/clock.js deleted file mode 100644 index 4b2b32df4a552..0000000000000 --- a/examples/with-redux-persist/components/clock.js +++ /dev/null @@ -1,26 +0,0 @@ -import { useSelector } from 'react-redux' - -const format = (t) => t.toJSON().slice(11, 19) // cut off except hh:mm:ss - -export default function Clock() { - const lastUpdate = useSelector((state) => state.lastUpdate) - const light = useSelector((state) => state.light) - return ( -
- {format(new Date(lastUpdate))} - -
- ) -} diff --git a/examples/with-redux-persist/components/counter.js b/examples/with-redux-persist/components/counter.js deleted file mode 100644 index c74c627c4a085..0000000000000 --- a/examples/with-redux-persist/components/counter.js +++ /dev/null @@ -1,20 +0,0 @@ -import { useSelector, useDispatch } from 'react-redux' -import { incrementCount, decrementCount, resetCount } from '../store' - -const Counter = () => { - const counter = useSelector((state) => state.count) - const dispatch = useDispatch() - - return ( -
-

- Count: {counter} -

- - - -
- ) -} - -export default Counter diff --git a/examples/with-redux-persist/components/data-list.js b/examples/with-redux-persist/components/data-list.js deleted file mode 100644 index 532558ddc3c1c..0000000000000 --- a/examples/with-redux-persist/components/data-list.js +++ /dev/null @@ -1,53 +0,0 @@ -import { useState } from 'react' -import { useSelector, useDispatch } from 'react-redux' -import { loadExampleData, loadingExampleDataFailure } from '../store' -import { useEffect } from 'react' - -const DataList = () => { - const dispatch = useDispatch() - const exampleData = useSelector((state) => state.exampleData) - const error = useSelector((state) => state.error) - const [isLoading, setIsLoading] = useState(false) - - useEffect(() => { - setIsLoading(true) - - window - .fetch('https://jsonplaceholder.typicode.com/users') - .then((response) => { - if (response.status !== 200) { - console.log( - 'Looks like there was a problem. Status Code: ' + response.status - ) - dispatch(loadingExampleDataFailure()) - setIsLoading(false) - return - } - response.json().then((data) => { - dispatch(loadExampleData(data)) - setIsLoading(false) - }) - }) - .catch((err) => { - console.log('Fetch Error :-S', err) - dispatch(loadingExampleDataFailure()) - setIsLoading(false) - }) - }, [dispatch]) - - return ( -
-

API DATA:

- {exampleData && !isLoading ? ( -
-          {JSON.stringify(exampleData, null, 2)}
-        
- ) : ( -

Loading...

- )} - {error &&

Error fetching data.

} -
- ) -} - -export default DataList diff --git a/examples/with-redux-persist/components/examples.js b/examples/with-redux-persist/components/examples.js deleted file mode 100644 index 4584661fee47c..0000000000000 --- a/examples/with-redux-persist/components/examples.js +++ /dev/null @@ -1,15 +0,0 @@ -import Clock from './clock' -import Counter from './counter' -import DataList from './data-list' - -const Examples = () => { - return ( -
- - - -
- ) -} - -export default Examples diff --git a/examples/with-redux-persist/package.json b/examples/with-redux-persist/package.json deleted file mode 100644 index bfbb8b969b11e..0000000000000 --- a/examples/with-redux-persist/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "7.2.0", - "redux": "4.2.1", - "redux-devtools-extension": "^2.13.2", - "redux-persist": "6.0.0" - } -} diff --git a/examples/with-redux-persist/pages/_app.js b/examples/with-redux-persist/pages/_app.js deleted file mode 100644 index 99bea7d750cf8..0000000000000 --- a/examples/with-redux-persist/pages/_app.js +++ /dev/null @@ -1,19 +0,0 @@ -import { useStore } from '../store' -import { Provider } from 'react-redux' -import { persistStore } from 'redux-persist' -import { PersistGate } from 'redux-persist/integration/react' - -export default function App({ Component, pageProps }) { - const store = useStore(pageProps.initialReduxState) - const persistor = persistStore(store, {}, function () { - persistor.persist() - }) - - return ( - - loading} persistor={persistor}> - - - - ) -} diff --git a/examples/with-redux-persist/pages/index.js b/examples/with-redux-persist/pages/index.js deleted file mode 100644 index 2f42ea0a1bd98..0000000000000 --- a/examples/with-redux-persist/pages/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import { startClock, serverRenderClock, initializeStore } from '../store' -import Examples from '../components/examples' - -const Index = () => { - const dispatch = useDispatch() - useEffect(() => { - setInterval(() => dispatch(startClock()), 1000) - }, [dispatch]) - - return -} - -export async function getStaticProps() { - const store = initializeStore() - store.dispatch(serverRenderClock()) - - return { - props: {}, - } -} - -export default Index diff --git a/examples/with-redux-persist/store.js b/examples/with-redux-persist/store.js deleted file mode 100644 index 892439a6c65ec..0000000000000 --- a/examples/with-redux-persist/store.js +++ /dev/null @@ -1,131 +0,0 @@ -import { useMemo } from 'react' -import { createStore, applyMiddleware } from 'redux' -import { composeWithDevTools } from 'redux-devtools-extension' -import { persistReducer } from 'redux-persist' -import storage from 'redux-persist/lib/storage' - -let store - -const exampleInitialState = { - lastUpdate: 0, - light: false, - count: 0, - exampleData: [], - error: null, -} - -export const actionTypes = { - TICK: 'TICK', - INCREMENT: 'INCREMENT', - DECREMENT: 'DECREMENT', - RESET: 'RESET', - LOAD_EXAMPLE_DATA: 'LOAD_EXAMPLE_DATA', - LOADING_DATA_FAILURE: 'LOADING_DATA_FAILURE', -} - -// REDUCERS -export const reducer = (state = exampleInitialState, action) => { - switch (action.type) { - case actionTypes.TICK: - return { - ...state, - lastUpdate: action.ts, - light: !!action.light, - } - case actionTypes.INCREMENT: - return { - ...state, - count: state.count + 1, - } - case actionTypes.DECREMENT: - return { - ...state, - count: state.count - 1, - } - case actionTypes.RESET: - return { - ...state, - count: exampleInitialState.count, - } - case actionTypes.LOAD_EXAMPLE_DATA: - return { - ...state, - exampleData: action.data, - } - case actionTypes.LOADING_DATA_FAILURE: - return { ...state, error: true } - default: - return state - } -} - -// ACTIONS -export const serverRenderClock = () => { - return { type: actionTypes.TICK, light: false, ts: Date.now() } -} -export const startClock = () => { - return { type: actionTypes.TICK, light: true, ts: Date.now() } -} - -export const incrementCount = () => { - return { type: actionTypes.INCREMENT } -} - -export const decrementCount = () => { - return { type: actionTypes.DECREMENT } -} - -export const resetCount = () => { - return { type: actionTypes.RESET } -} - -export const loadExampleData = (data) => { - return { type: actionTypes.LOAD_EXAMPLE_DATA, data } -} - -export const loadingExampleDataFailure = () => { - return { type: actionTypes.LOADING_DATA_FAILURE } -} - -const persistConfig = { - key: 'primary', - storage, - whitelist: ['exampleData'], // place to select which state you want to persist -} - -const persistedReducer = persistReducer(persistConfig, reducer) - -function makeStore(initialState = exampleInitialState) { - return createStore( - persistedReducer, - initialState, - composeWithDevTools(applyMiddleware()) - ) -} - -export const initializeStore = (preloadedState) => { - let _store = store ?? makeStore(preloadedState) - - // After navigating to a page with an initial Redux state, merge that state - // with the current state in the store, and create a new store - if (preloadedState && store) { - _store = makeStore({ - ...store.getState(), - ...preloadedState, - }) - // Reset the current store - store = undefined - } - - // For SSG and SSR always create a new store - if (typeof window === 'undefined') return _store - // Create the store once in the client - if (!store) store = _store - - return _store -} - -export function useStore(initialState) { - const store = useMemo(() => initializeStore(initialState), [initialState]) - return store -} diff --git a/examples/with-redux-saga/.gitignore b/examples/with-redux-saga/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-saga/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-saga/README.md b/examples/with-redux-saga/README.md deleted file mode 100644 index 7b0b6bc81dce0..0000000000000 --- a/examples/with-redux-saga/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# redux-saga example - -Usually splitting your app state into `pages` feels natural, but sometimes you'll want to have global state for your app. This is an example using `redux` and `redux-saga` that works with universal rendering. This is just one way it can be done. If you have any suggestions or feedback please submit an issue or PR. - -> This example and documentation is based on the [with-redux](https://github.com/vercel/next.js/tree/canary/examples/with-redux) example. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-redux-saga) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-redux-saga&project-name=with-redux-saga&repository-name=with-redux-saga) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-redux-saga with-redux-saga-app -``` - -```bash -yarn create next-app --example with-redux-saga with-redux-saga-app -``` - -```bash -pnpm create next-app --example with-redux-saga with-redux-saga-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Notes - -In the first example we are going to display a digital clock that updates every second. The first render is happening in the server and then the browser will take over. To illustrate this, the server rendered clock will have a different background color than the client one. - -![](https://i.imgur.com/JCxtWSj.gif) - -Our page is located at `pages/index.js` so it will map the route `/`. To get the initial data for rendering we are implementing the static method `getInitialProps`, initializing the redux store and dispatching the required actions until we are ready to return the initial state to be rendered. Since the component is wrapped with `next-redux-wrapper`, the component is automatically connected to Redux and wrapped with `react-redux Provider`, that allows us to access redux state immediately and send the store down to children components so they can access to the state when required. - -For safety it is recommended to wrap all pages, no matter if they use Redux or not, so that you should not care about it anymore in all child components. - -`withRedux` function accepts `makeStore` as first argument, all other arguments are internally passed to `react-redux connect()` function. `makeStore` should return a new instance of redux store each time when called, no memoization needed here. See the [full example](https://github.com/kirill-konshin/next-redux-wrapper#usage) in the Next Redux Wrapper repository. - -The trick here for supporting universal redux is to separate the cases for the client and the server. When we are on the server we want to create a new store every time, otherwise different users data will be mixed up. If we are in the client we want to use always the same store and hydrate it when needed. That's what we accomplish in `store.js` - -The clock, under `components/clock.js`, has access to the state using the `connect` function from `react-redux`. In this case Clock is a direct child from the page but it could be deep down the render tree. - -The second example, under `components/counter.js`, shows a simple add counter function with a class component implementing a common redux pattern of mapping state and props. Again, the first render is happening in the server and instead of starting the count at 0, it will dispatch an action in redux that starts the count at 1. This continues to highlight how each navigation triggers a server render first and then a client render second, when you navigate between pages. diff --git a/examples/with-redux-saga/actions.js b/examples/with-redux-saga/actions.js deleted file mode 100644 index 8e168150db208..0000000000000 --- a/examples/with-redux-saga/actions.js +++ /dev/null @@ -1,53 +0,0 @@ -export const actionTypes = { - FAILURE: 'FAILURE', - INCREMENT: 'INCREMENT', - DECREMENT: 'DECREMENT', - RESET: 'RESET', - LOAD_DATA: 'LOAD_DATA', - LOAD_DATA_SUCCESS: 'LOAD_DATA_SUCCESS', - START_CLOCK: 'START_CLOCK', - TICK_CLOCK: 'TICK_CLOCK', - HYDRATE: 'HYDRATE', -} - -export function failure(error) { - return { - type: actionTypes.FAILURE, - error, - } -} - -export function increment() { - return { type: actionTypes.INCREMENT } -} - -export function decrement() { - return { type: actionTypes.DECREMENT } -} - -export function reset() { - return { type: actionTypes.RESET } -} - -export function loadData() { - return { type: actionTypes.LOAD_DATA } -} - -export function loadDataSuccess(data) { - return { - type: actionTypes.LOAD_DATA_SUCCESS, - data, - } -} - -export function startClock() { - return { type: actionTypes.START_CLOCK } -} - -export function tickClock(isServer) { - return { - type: actionTypes.TICK_CLOCK, - light: !isServer, - ts: Date.now(), - } -} diff --git a/examples/with-redux-saga/components/clock.js b/examples/with-redux-saga/components/clock.js deleted file mode 100644 index 402e83c4f9772..0000000000000 --- a/examples/with-redux-saga/components/clock.js +++ /dev/null @@ -1,30 +0,0 @@ -const pad = (n) => (n < 10 ? `0${n}` : n) - -const format = (t) => { - const hours = t.getUTCHours() - const minutes = t.getUTCMinutes() - const seconds = t.getUTCSeconds() - return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}` -} - -function Clock({ lastUpdate, light }) { - return ( -
- {format(new Date(lastUpdate))} - -
- ) -} - -export default Clock diff --git a/examples/with-redux-saga/components/counter.js b/examples/with-redux-saga/components/counter.js deleted file mode 100644 index 114077e28dc8a..0000000000000 --- a/examples/with-redux-saga/components/counter.js +++ /dev/null @@ -1,26 +0,0 @@ -import { useSelector, useDispatch } from 'react-redux' - -import { increment, decrement, reset } from '../actions' - -const Counter = () => { - const count = useSelector((state) => state.count) - const dispatch = useDispatch() - - return ( -
- -

- Count: {count} -

- - - -
- ) -} - -export default Counter diff --git a/examples/with-redux-saga/components/page.js b/examples/with-redux-saga/components/page.js deleted file mode 100644 index a65ff1dc4740e..0000000000000 --- a/examples/with-redux-saga/components/page.js +++ /dev/null @@ -1,30 +0,0 @@ -import Link from 'next/link' -import { useSelector } from 'react-redux' - -import Counter from './counter' -import Clock from './clock' - -function Page({ linkTo, NavigateTo, title }) { - const placeholderData = useSelector((state) => state.placeholderData) - const error = useSelector((state) => state.error) - const light = useSelector((state) => state.light) - const lastUpdate = useSelector((state) => state.lastUpdate) - return ( -
-

{title}

- - - - {placeholderData && ( -
-          {JSON.stringify(placeholderData, null, 2)}
-        
- )} - {error &&

Error: {error.message}

} -
- ) -} - -export default Page diff --git a/examples/with-redux-saga/package.json b/examples/with-redux-saga/package.json deleted file mode 100644 index 979d1cd241294..0000000000000 --- a/examples/with-redux-saga/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "@reduxjs/toolkit": "^1.9.5", - "next": "latest", - "next-redux-wrapper": "^8.1.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "8.0.5", - "redux": "4.2.1", - "redux-saga": "1.2.3" - }, - "devDependencies": { - "redux-devtools-extension": "^2.13.8" - } -} diff --git a/examples/with-redux-saga/pages/_app.js b/examples/with-redux-saga/pages/_app.js deleted file mode 100644 index 70f25a6f03c47..0000000000000 --- a/examples/with-redux-saga/pages/_app.js +++ /dev/null @@ -1,7 +0,0 @@ -import { wrapper } from '../store' - -function App({ Component, pageProps }) { - return -} - -export default wrapper.withRedux(App) diff --git a/examples/with-redux-saga/pages/index.js b/examples/with-redux-saga/pages/index.js deleted file mode 100644 index 38356265f1f74..0000000000000 --- a/examples/with-redux-saga/pages/index.js +++ /dev/null @@ -1,32 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import { END } from 'redux-saga' -import { wrapper } from '../store' -import { loadData, startClock, tickClock } from '../actions' -import Page from '../components/page' - -const Index = () => { - const dispatch = useDispatch() - - useEffect(() => { - dispatch(startClock()) - }, [dispatch]) - - return -} - -export const getStaticProps = wrapper.getStaticProps( - (store) => - async ({ params }) => { - await store.dispatch(tickClock(false)) - - if (!store.getState().placeholderData) { - await store.dispatch(loadData()) - store.dispatch(END) - } - - await store.sagaTask.toPromise() - } -) - -export default Index diff --git a/examples/with-redux-saga/pages/other.js b/examples/with-redux-saga/pages/other.js deleted file mode 100644 index cddd30d96316c..0000000000000 --- a/examples/with-redux-saga/pages/other.js +++ /dev/null @@ -1,24 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import { wrapper } from '../store' -import { startClock, tickClock } from '../actions' -import Page from '../components/page' - -const Other = () => { - const dispatch = useDispatch() - - useEffect(() => { - dispatch(startClock()) - }, [dispatch]) - - return -} - -export const getStaticProps = wrapper.getStaticProps( - (store) => - async ({ params }) => { - await store.dispatch(tickClock(false)) - } -) - -export default Other diff --git a/examples/with-redux-saga/reducer.js b/examples/with-redux-saga/reducer.js deleted file mode 100644 index bf6f733bd2303..0000000000000 --- a/examples/with-redux-saga/reducer.js +++ /dev/null @@ -1,59 +0,0 @@ -import { actionTypes } from './actions' -import { HYDRATE } from 'next-redux-wrapper' - -const initialState = { - count: 0, - error: false, - lastUpdate: 0, - light: false, - placeholderData: null, -} - -function reducer(state = initialState, action) { - switch (action.type) { - case HYDRATE: { - return { ...state, ...action.payload } - } - - case actionTypes.FAILURE: - return { - ...state, - ...{ error: action.error }, - } - - case actionTypes.INCREMENT: - return { - ...state, - ...{ count: state.count + 1 }, - } - - case actionTypes.DECREMENT: - return { - ...state, - ...{ count: state.count - 1 }, - } - - case actionTypes.RESET: - return { - ...state, - ...{ count: initialState.count }, - } - - case actionTypes.LOAD_DATA_SUCCESS: - return { - ...state, - ...{ placeholderData: action.data }, - } - - case actionTypes.TICK_CLOCK: - return { - ...state, - ...{ lastUpdate: action.ts, light: !!action.light }, - } - - default: - return state - } -} - -export default reducer diff --git a/examples/with-redux-saga/saga.js b/examples/with-redux-saga/saga.js deleted file mode 100644 index 43c2987c7ed1e..0000000000000 --- a/examples/with-redux-saga/saga.js +++ /dev/null @@ -1,29 +0,0 @@ -import { all, call, delay, put, take, takeLatest } from 'redux-saga/effects' -import { actionTypes, failure, loadDataSuccess, tickClock } from './actions' - -function* runClockSaga() { - yield take(actionTypes.START_CLOCK) - while (true) { - yield put(tickClock(false)) - yield delay(1000) - } -} - -function* loadDataSaga() { - try { - const res = yield fetch('https://jsonplaceholder.typicode.com/users') - const data = yield res.json() - yield put(loadDataSuccess(data)) - } catch (err) { - yield put(failure(err)) - } -} - -function* rootSaga() { - yield all([ - call(runClockSaga), - takeLatest(actionTypes.LOAD_DATA, loadDataSaga), - ]) -} - -export default rootSaga diff --git a/examples/with-redux-saga/store.js b/examples/with-redux-saga/store.js deleted file mode 100644 index 909d8be249bfa..0000000000000 --- a/examples/with-redux-saga/store.js +++ /dev/null @@ -1,31 +0,0 @@ -import { applyMiddleware } from 'redux' -import createSagaMiddleware from 'redux-saga' -import { createWrapper } from 'next-redux-wrapper' - -import rootReducer from './reducer' -import rootSaga from './saga' -import { configureStore } from '@reduxjs/toolkit' - -const bindMiddleware = (middleware) => { - if (process.env.NODE_ENV !== 'production') { - const { composeWithDevTools } = require('redux-devtools-extension') - return composeWithDevTools(applyMiddleware(...middleware)) - } - return applyMiddleware(...middleware) -} - -export const makeStore = (context) => { - const sagaMiddleware = createSagaMiddleware() - const store = configureStore({ - reducer: rootReducer, - middleware: (getDefaultMiddleware) => - getDefaultMiddleware({ thunk: false }).concat(sagaMiddleware), - enhancers: [bindMiddleware([sagaMiddleware])], - }) - - store.sagaTask = sagaMiddleware.run(rootSaga) - - return store -} - -export const wrapper = createWrapper(makeStore, { debug: true }) diff --git a/examples/with-redux-thunk/.gitignore b/examples/with-redux-thunk/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-thunk/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-thunk/README.md b/examples/with-redux-thunk/README.md deleted file mode 100644 index 82fe2a37915af..0000000000000 --- a/examples/with-redux-thunk/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Redux Thunk example - -This example shows how to integrate Redux and Redux Thunk in Next.js. - -Usually splitting your app state into `pages` feels natural but sometimes you'll want to have global state for your app. This is an example on how you can use redux that also works with Next.js's universal rendering approach. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-redux-thunk) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-redux-thunk&project-name=with-redux-thunk&repository-name=with-redux-thunk) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-redux-thunk with-redux-thunk-app -``` - -```bash -yarn create next-app --example with-redux-thunk with-redux-thunk-app -``` - -```bash -pnpm create next-app --example with-redux-thunk with-redux-thunk-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Notes - -The Redux `Provider` is implemented in `pages/_app.js`. The `pageProps` is wrapped in a `useStore` hook function, the redux `store` will be initialized in the function and then passed down to `Page Component` as `this.props.initialReduxState`, which will then be utilized by the `Provider` component. - -Every initial server-side request will utilize a new `store`. However, every `Router` or `Link` action will persist the same `store` as a user navigates through the `pages`. To demonstrate this example, we can navigate back and forth to `/show-redux-state` using the provided `Link`s. However, if we navigate directly to `/show-redux-state` (or refresh the page), this will cause a server-side render, which will then utilize a new store. - -In the `clock` component, we are going to display a digital clock that updates every second. The first render is happening on the server and then the browser will take over. To illustrate this, the server rendered clock will initially have a black background; then, once the component has been mounted in the browser, it changes from black to a grey background. - -In the `counter` component, we are going to display a user-interactive counter that can be increased or decreased when the provided buttons are pressed. - -This example includes two different ways to access the `store` or to `dispatch` actions: - -1.) `pages/index.js` will utilize `useDispatch` from `react-redux` to `dispatch` the `startClock` redux action once the component has been mounted in the browser. - -2.) `components/counter.js` and `components/examples.js` have access to the redux store using `useSelector` and can dispatch actions using `useDispatch` from `react-redux@^7.1.0` - -You can either use the `connect` function to access redux state and/or dispatch actions or use the hook variations: `useSelector` and `useDispatch`. It's up to you. - -This example also includes hot-reloading when one of the `reducers` has changed. However, there is one caveat with this implementation: If you're using the `Redux DevTools` browser extension, then all previously recorded actions will be recreated when a reducer has changed (in other words, if you increment the counter by 1 using the `+1` button, and then change the increment action to add 10 in the reducer, Redux DevTools will playback all actions and adjust the counter state by 10 to reflect the reducer change). Therefore, to avoid this issue, the store has been set up to reset back initial state upon a reducer change. If you wish to persist redux state regardless (or you don't have the extension installed), then in `store.js` change (line 10) `createStore(reducers,initialState,composeWithDevTools(applyMiddleware(thunkMiddleware)))` to `createStore(reducers,initialState,applyMiddleware(thunkMiddleware))`. diff --git a/examples/with-redux-thunk/actions.js b/examples/with-redux-thunk/actions.js deleted file mode 100644 index 8ea0888083b0d..0000000000000 --- a/examples/with-redux-thunk/actions.js +++ /dev/null @@ -1,23 +0,0 @@ -import * as types from './types' - -// INITIALIZES CLOCK ON SERVER -export const serverRenderClock = () => (dispatch) => - dispatch({ - type: types.TICK, - payload: { light: false, ts: Date.now() }, - }) - -// INITIALIZES CLOCK ON CLIENT -export const startClock = () => (dispatch) => - setInterval(() => { - dispatch({ type: types.TICK, payload: { light: true, ts: Date.now() } }) - }, 1000) - -// INCREMENT COUNTER BY 1 -export const incrementCount = () => ({ type: types.INCREMENT }) - -// DECREMENT COUNTER BY 1 -export const decrementCount = () => ({ type: types.DECREMENT }) - -// RESET COUNTER -export const resetCount = () => ({ type: types.RESET }) diff --git a/examples/with-redux-thunk/components/clock.js b/examples/with-redux-thunk/components/clock.js deleted file mode 100644 index 5bb0f1898b8be..0000000000000 --- a/examples/with-redux-thunk/components/clock.js +++ /dev/null @@ -1,30 +0,0 @@ -import { useSelector } from 'react-redux' - -const formatTime = (time) => { - return new Date(time).toJSON().slice(11, 19) -} - -const Clock = () => { - const lastUpdate = useSelector((state) => state.timer.lastUpdate) - const light = useSelector((state) => state.timer.light) - return ( -
- {formatTime(lastUpdate)} - -
- ) -} - -export default Clock diff --git a/examples/with-redux-thunk/components/counter.js b/examples/with-redux-thunk/components/counter.js deleted file mode 100644 index 0efda518bad0f..0000000000000 --- a/examples/with-redux-thunk/components/counter.js +++ /dev/null @@ -1,20 +0,0 @@ -import { useSelector, useDispatch } from 'react-redux' -import { incrementCount, decrementCount, resetCount } from '../actions' - -const Counter = () => { - const count = useSelector((state) => state.counter) - const dispatch = useDispatch() - - return ( -
-

- Count: {count} -

- - - -
- ) -} - -export default Counter diff --git a/examples/with-redux-thunk/components/examples.js b/examples/with-redux-thunk/components/examples.js deleted file mode 100644 index 7757aa4ddae53..0000000000000 --- a/examples/with-redux-thunk/components/examples.js +++ /dev/null @@ -1,13 +0,0 @@ -import Clock from './clock' -import Counter from './counter' - -const Examples = () => { - return ( -
- - -
- ) -} - -export default Examples diff --git a/examples/with-redux-thunk/package.json b/examples/with-redux-thunk/package.json deleted file mode 100644 index 94e2f1a2750b4..0000000000000 --- a/examples/with-redux-thunk/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "^7.1.0", - "redux": "^4.0.4", - "redux-devtools-extension": "^2.13.8", - "redux-thunk": "^2.3.0" - } -} diff --git a/examples/with-redux-thunk/pages/_app.js b/examples/with-redux-thunk/pages/_app.js deleted file mode 100644 index 6a14dd89df479..0000000000000 --- a/examples/with-redux-thunk/pages/_app.js +++ /dev/null @@ -1,12 +0,0 @@ -import { Provider } from 'react-redux' -import { useStore } from '../store' - -export default function App({ Component, pageProps }) { - const store = useStore(pageProps.initialReduxState) - - return ( - - - - ) -} diff --git a/examples/with-redux-thunk/pages/index.js b/examples/with-redux-thunk/pages/index.js deleted file mode 100644 index de69ee4563d34..0000000000000 --- a/examples/with-redux-thunk/pages/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import Link from 'next/link' -import { startClock } from '../actions' -import Examples from '../components/examples' - -const Index = () => { - const dispatch = useDispatch() - useEffect(() => { - dispatch(startClock()) - }, [dispatch]) - - return ( - <> - - Click to see current Redux State - - ) -} - -export default Index diff --git a/examples/with-redux-thunk/pages/show-redux-state.js b/examples/with-redux-thunk/pages/show-redux-state.js deleted file mode 100644 index 4fc67f9132243..0000000000000 --- a/examples/with-redux-thunk/pages/show-redux-state.js +++ /dev/null @@ -1,25 +0,0 @@ -import { useSelector } from 'react-redux' -import Link from 'next/link' - -const codeStyle = { - background: '#ebebeb', - width: 400, - padding: 10, - border: '1px solid grey', - marginBottom: 10, -} - -const ShowReduxState = () => { - const state = useSelector((state) => state) - - return ( - <> -
-        {JSON.stringify(state, null, 4)}
-      
- Go Back Home - - ) -} - -export default ShowReduxState diff --git a/examples/with-redux-thunk/reducers.js b/examples/with-redux-thunk/reducers.js deleted file mode 100644 index 74b7876ebd3b7..0000000000000 --- a/examples/with-redux-thunk/reducers.js +++ /dev/null @@ -1,43 +0,0 @@ -import { combineReducers } from 'redux' -import * as types from './types' - -// COUNTER REDUCER -const counterReducer = (state = 0, { type }) => { - switch (type) { - case types.INCREMENT: - return state + 1 - case types.DECREMENT: - return state - 1 - case types.RESET: - return 0 - default: - return state - } -} - -// INITIAL TIMER STATE -const initialTimerState = { - lastUpdate: 0, - light: false, -} - -// TIMER REDUCER -const timerReducer = (state = initialTimerState, { type, payload }) => { - switch (type) { - case types.TICK: - return { - lastUpdate: payload.ts, - light: !!payload.light, - } - default: - return state - } -} - -// COMBINED REDUCERS -const reducers = { - counter: counterReducer, - timer: timerReducer, -} - -export default combineReducers(reducers) diff --git a/examples/with-redux-thunk/store.js b/examples/with-redux-thunk/store.js deleted file mode 100644 index 7e726d0a1abdf..0000000000000 --- a/examples/with-redux-thunk/store.js +++ /dev/null @@ -1,42 +0,0 @@ -import { useMemo } from 'react' -import { createStore, applyMiddleware } from 'redux' -import { composeWithDevTools } from 'redux-devtools-extension' -import thunkMiddleware from 'redux-thunk' -import reducers from './reducers' - -let store - -function initStore(initialState) { - return createStore( - reducers, - initialState, - composeWithDevTools(applyMiddleware(thunkMiddleware)) - ) -} - -export const initializeStore = (preloadedState) => { - let _store = store ?? initStore(preloadedState) - - // After navigating to a page with an initial Redux state, merge that state - // with the current state in the store, and create a new store - if (preloadedState && store) { - _store = initStore({ - ...store.getState(), - ...preloadedState, - }) - // Reset the current store - store = undefined - } - - // For SSG and SSR always create a new store - if (typeof window === 'undefined') return _store - // Create the store once in the client - if (!store) store = _store - - return _store -} - -export function useStore(initialState) { - const store = useMemo(() => initializeStore(initialState), [initialState]) - return store -} diff --git a/examples/with-redux-thunk/types.js b/examples/with-redux-thunk/types.js deleted file mode 100644 index 05cfd696391d0..0000000000000 --- a/examples/with-redux-thunk/types.js +++ /dev/null @@ -1,5 +0,0 @@ -// REDUX ACTION TYPES -export const TICK = 'TICK' -export const INCREMENT = 'INCREMENT' -export const DECREMENT = 'DECREMENT' -export const RESET = 'RESET' diff --git a/examples/with-redux-toolkit-typescript/.gitignore b/examples/with-redux-toolkit-typescript/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-toolkit-typescript/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-toolkit-typescript/README.md b/examples/with-redux-toolkit-typescript/README.md deleted file mode 100644 index 3b27eb803813a..0000000000000 --- a/examples/with-redux-toolkit-typescript/README.md +++ /dev/null @@ -1 +0,0 @@ -This example has been moved to [with-redux](https://github.com/vercel/next.js/tree/canary/examples/with-redux). diff --git a/examples/with-redux-toolkit/.gitignore b/examples/with-redux-toolkit/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-toolkit/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-toolkit/README.md b/examples/with-redux-toolkit/README.md deleted file mode 100644 index 3b27eb803813a..0000000000000 --- a/examples/with-redux-toolkit/README.md +++ /dev/null @@ -1 +0,0 @@ -This example has been moved to [with-redux](https://github.com/vercel/next.js/tree/canary/examples/with-redux). diff --git a/examples/with-redux-wrapper/.gitignore b/examples/with-redux-wrapper/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-redux-wrapper/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-redux-wrapper/.npmrc b/examples/with-redux-wrapper/.npmrc deleted file mode 100644 index 0ca8d2a0b62f1..0000000000000 --- a/examples/with-redux-wrapper/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -package-lock=false -save-exact=true diff --git a/examples/with-redux-wrapper/README.md b/examples/with-redux-wrapper/README.md deleted file mode 100644 index dc5ddf8670e0d..0000000000000 --- a/examples/with-redux-wrapper/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# With Redux Wrapper Example - -Usually splitting your app state into `pages` feels natural but sometimes you'll want to have global state for your app. This is an example on how you can use redux that also works with our universal rendering approach. This is just a way you can do it but it's not the only one. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-redux-wrapper&project-name=with-redux-wrapper&repository-name=with-redux-wrapper) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-redux-wrapper with-redux-wrapper-app -``` - -```bash -yarn create next-app --example with-redux-wrapper with-redux-wrapper-app -``` - -```bash -pnpm create next-app --example with-redux-wrapper with-redux-wrapper-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Notes - -In the first example we are going to display a digital clock that updates every second. The first render is happening in the server and then the browser will take over. To illustrate this, the server rendered clock will have a different background color than the client one. - -![](https://i.imgur.com/JCxtWSj.gif) - -Our page is located at `pages/index.js` so it will map the route `/`. To get the initial data for rendering we are implementing the static method `getInitialProps`, initializing the redux store and dispatching the required actions until we are ready to return the initial state to be rendered. Since the component is wrapped with `next-redux-wrapper`, the component is automatically connected to Redux and wrapped with `react-redux Provider`, that allows us to access redux state immediately and send the store down to children components so they can access to the state when required. - -For safety it is recommended to wrap all pages, no matter if they use Redux or not, so that you should not care about it anymore in all child components. - -This example wraps pages individually using `getStaticProps` and `getServerSideProps`. See the [full example](https://github.com/kirill-konshin/next-redux-wrapper#usage) in the Next Redux Wrapper repository, you can also opt-in to use `App.getInitialProps` and `Page.getInitialProps` as before. - -To pass the initial state from the server to the client we pass it as a prop called `initialState` so then it's available when the client takes over. - -The trick here for supporting universal redux is to separate the cases for the client and the server. When we are on the server we want to create a new store every time, otherwise different users data will be mixed up. If we are in the client we want to use always the same store. That's what we accomplish on `store.js` - -The clock, under `components/Clock.js`, has access to the state using the `connect` function from `react-redux`. In this case Clock is a direct child from the page but it could be deep down the render tree. - -The second example, under `components/AddCount.js`, shows a simple add counter function with a class component implementing a common redux pattern of mapping state and props. Again, the first render is happening in the server and instead of starting the count at 0, it will dispatch an action in redux that starts the count at 1. This continues to highlight how each navigation triggers a server render first and then a client render second, when you navigate between pages. diff --git a/examples/with-redux-wrapper/components/AddCount.js b/examples/with-redux-wrapper/components/AddCount.js deleted file mode 100644 index 5f8361552cff5..0000000000000 --- a/examples/with-redux-wrapper/components/AddCount.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react' -import { connect } from 'react-redux' -import { bindActionCreators } from 'redux' -import { addCount } from '../store/count/action' - -const AddCount = ({ count, addCount }) => { - return ( -
- -

- AddCount: {count} -

- -
- ) -} - -const mapStateToProps = (state) => ({ - count: state.count.count, -}) - -const mapDispatchToProps = (dispatch) => { - return { - addCount: bindActionCreators(addCount, dispatch), - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(AddCount) diff --git a/examples/with-redux-wrapper/components/Clock.js b/examples/with-redux-wrapper/components/Clock.js deleted file mode 100644 index 57523ec179271..0000000000000 --- a/examples/with-redux-wrapper/components/Clock.js +++ /dev/null @@ -1,24 +0,0 @@ -const pad = (n) => (n < 10 ? `0${n}` : n) -const format = (t) => - `${pad(t.getUTCHours())}:${pad(t.getUTCMinutes())}:${pad(t.getUTCSeconds())}` - -export default function Clock({ lastUpdate, light }) { - return ( -
- {format(new Date(lastUpdate))} - -
- ) -} diff --git a/examples/with-redux-wrapper/components/Page.js b/examples/with-redux-wrapper/components/Page.js deleted file mode 100644 index 57728a04b6782..0000000000000 --- a/examples/with-redux-wrapper/components/Page.js +++ /dev/null @@ -1,17 +0,0 @@ -import Link from 'next/link' -import { connect } from 'react-redux' -import Clock from './Clock' -import AddCount from './AddCount' - -const Page = ({ title, linkTo, tick }) => ( -
-

{title}

- - - -
-) - -export default connect((state) => state)(Page) diff --git a/examples/with-redux-wrapper/package.json b/examples/with-redux-wrapper/package.json deleted file mode 100644 index c6d0f7c22e34a..0000000000000 --- a/examples/with-redux-wrapper/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "next": "latest", - "next-redux-wrapper": "^7.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "^7.1.3", - "redux": "^4.0.5", - "redux-devtools-extension": "^2.13.8", - "redux-thunk": "^2.3.0" - } -} diff --git a/examples/with-redux-wrapper/pages/_app.js b/examples/with-redux-wrapper/pages/_app.js deleted file mode 100644 index 39912755e65bb..0000000000000 --- a/examples/with-redux-wrapper/pages/_app.js +++ /dev/null @@ -1,7 +0,0 @@ -import { wrapper } from '../store/store' - -const WrappedApp = ({ Component, pageProps }) => { - return -} - -export default wrapper.withRedux(WrappedApp) diff --git a/examples/with-redux-wrapper/pages/index.js b/examples/with-redux-wrapper/pages/index.js deleted file mode 100644 index 07fb7fcfbdb2c..0000000000000 --- a/examples/with-redux-wrapper/pages/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import { useEffect } from 'react' -import { connect } from 'react-redux' -import { bindActionCreators } from 'redux' -import Page from '../components/Page' -import { addCount } from '../store/count/action' -import { wrapper } from '../store/store' -import { serverRenderClock, startClock } from '../store/tick/action' - -const Index = (props) => { - useEffect(() => { - const timer = props.startClock() - - return () => { - clearInterval(timer) - } - }, [props]) - - return -} - -export const getStaticProps = wrapper.getStaticProps((store) => () => { - store.dispatch(serverRenderClock(true)) - store.dispatch(addCount()) -}) - -const mapDispatchToProps = (dispatch) => { - return { - addCount: bindActionCreators(addCount, dispatch), - startClock: bindActionCreators(startClock, dispatch), - } -} - -export default connect(null, mapDispatchToProps)(Index) diff --git a/examples/with-redux-wrapper/pages/other.js b/examples/with-redux-wrapper/pages/other.js deleted file mode 100644 index baddaee9b8a90..0000000000000 --- a/examples/with-redux-wrapper/pages/other.js +++ /dev/null @@ -1,33 +0,0 @@ -import { useEffect } from 'react' -import { connect } from 'react-redux' -import { bindActionCreators } from 'redux' -import Page from '../components/Page' -import { addCount } from '../store/count/action' -import { wrapper } from '../store/store' -import { serverRenderClock, startClock } from '../store/tick/action' - -const Other = (props) => { - useEffect(() => { - const timer = props.startClock() - - return () => { - clearInterval(timer) - } - }, [props]) - - return -} - -export const getServerSideProps = wrapper.getServerSideProps((store) => () => { - store.dispatch(serverRenderClock(true)) - store.dispatch(addCount()) -}) - -const mapDispatchToProps = (dispatch) => { - return { - addCount: bindActionCreators(addCount, dispatch), - startClock: bindActionCreators(startClock, dispatch), - } -} - -export default connect(null, mapDispatchToProps)(Other) diff --git a/examples/with-redux-wrapper/store/count/action.js b/examples/with-redux-wrapper/store/count/action.js deleted file mode 100644 index ec76af0b37763..0000000000000 --- a/examples/with-redux-wrapper/store/count/action.js +++ /dev/null @@ -1,7 +0,0 @@ -export const countActionTypes = { - ADD: 'ADD', -} - -export const addCount = () => (dispatch) => { - return dispatch({ type: countActionTypes.ADD }) -} diff --git a/examples/with-redux-wrapper/store/count/reducer.js b/examples/with-redux-wrapper/store/count/reducer.js deleted file mode 100644 index af48ba42a8c25..0000000000000 --- a/examples/with-redux-wrapper/store/count/reducer.js +++ /dev/null @@ -1,16 +0,0 @@ -import { countActionTypes } from './action' - -const countInitialState = { - count: 0, -} - -export default function reducer(state = countInitialState, action) { - switch (action.type) { - case countActionTypes.ADD: - return Object.assign({}, state, { - count: state.count + 1, - }) - default: - return state - } -} diff --git a/examples/with-redux-wrapper/store/store.js b/examples/with-redux-wrapper/store/store.js deleted file mode 100644 index 52a52a8436581..0000000000000 --- a/examples/with-redux-wrapper/store/store.js +++ /dev/null @@ -1,37 +0,0 @@ -import { createStore, applyMiddleware, combineReducers } from 'redux' -import { HYDRATE, createWrapper } from 'next-redux-wrapper' -import thunkMiddleware from 'redux-thunk' -import count from './count/reducer' -import tick from './tick/reducer' - -const bindMiddleware = (middleware) => { - if (process.env.NODE_ENV !== 'production') { - const { composeWithDevTools } = require('redux-devtools-extension') - return composeWithDevTools(applyMiddleware(...middleware)) - } - return applyMiddleware(...middleware) -} - -const combinedReducer = combineReducers({ - count, - tick, -}) - -const reducer = (state, action) => { - if (action.type === HYDRATE) { - const nextState = { - ...state, // use previous state - ...action.payload, // apply delta from hydration - } - if (state.count.count) nextState.count.count = state.count.count // preserve count value on client side navigation - return nextState - } else { - return combinedReducer(state, action) - } -} - -const initStore = () => { - return createStore(reducer, bindMiddleware([thunkMiddleware])) -} - -export const wrapper = createWrapper(initStore) diff --git a/examples/with-redux-wrapper/store/tick/action.js b/examples/with-redux-wrapper/store/tick/action.js deleted file mode 100644 index ba4ace2f6be7a..0000000000000 --- a/examples/with-redux-wrapper/store/tick/action.js +++ /dev/null @@ -1,18 +0,0 @@ -export const tickActionTypes = { - TICK: 'TICK', -} - -export const serverRenderClock = (isServer) => (dispatch) => { - return dispatch({ - type: tickActionTypes.TICK, - light: !isServer, - ts: Date.now(), - }) -} - -export const startClock = () => (dispatch) => { - return setInterval( - () => dispatch({ type: tickActionTypes.TICK, light: true, ts: Date.now() }), - 1000 - ) -} diff --git a/examples/with-redux-wrapper/store/tick/reducer.js b/examples/with-redux-wrapper/store/tick/reducer.js deleted file mode 100644 index 30c9ca078a42b..0000000000000 --- a/examples/with-redux-wrapper/store/tick/reducer.js +++ /dev/null @@ -1,18 +0,0 @@ -import { tickActionTypes } from './action' - -const tickInitialState = { - lastUpdate: 0, - light: false, -} - -export default function reducer(state = tickInitialState, action) { - switch (action.type) { - case tickActionTypes.TICK: - return Object.assign({}, state, { - lastUpdate: action.ts, - light: !!action.light, - }) - default: - return state - } -} diff --git a/examples/with-sentry-simple/.gitignore b/examples/with-sentry-simple/.gitignore deleted file mode 100644 index 2c8a0c3e2b473..0000000000000 --- a/examples/with-sentry-simple/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# local env files -.env*.local - -# vercel -.vercel - -# Sentry -.sentryclirc - -# Sentry -next.config.original.js -sentry.properties - diff --git a/examples/with-sentry-simple/README.md b/examples/with-sentry-simple/README.md deleted file mode 100644 index b4e5fa4786a88..0000000000000 --- a/examples/with-sentry-simple/README.md +++ /dev/null @@ -1 +0,0 @@ -This example has been moved to [examples/with-sentry](../with-sentry). diff --git a/examples/with-skynexui-components/.gitignore b/examples/with-skynexui-components/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-skynexui-components/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-skynexui-components/README.md b/examples/with-skynexui-components/README.md deleted file mode 100644 index 23b588b5196cd..0000000000000 --- a/examples/with-skynexui-components/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Example app with @skynexui/components - -Next.js ships with [styled-jsx](https://github.com/vercel/styled-jsx) allowing you to write scoped styled components with full CSS support. This is important for the modularity and code size of your bundles and also for the learning curve of the framework. If you know CSS you can write `styled-jsx` right away. - -With [@skynexui/components](https://github.com/skynexui/components/) you will be allowed to use the advantages of `styled-jsx` in a component utility first approach to create your own UI with good and configurable defaults. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-skynexui-components) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-skynexui-components&project-name=with-skynexui-components&repository-name=with-skynexui-components) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-skynexui-components with-skynexui-components-app -``` - -```bash -yarn create next-app --example with-skynexui-components with-skynexui-components-app -``` - -```bash -pnpm create next-app --example with-skynexui-components with-skynexui-components-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/with-skynexui-components/package.json b/examples/with-skynexui-components/package.json deleted file mode 100644 index c2f3b1f7c7747..0000000000000 --- a/examples/with-skynexui-components/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start", - "lint": "next lint" - }, - "dependencies": { - "@skynexui/components": "^1.9.23", - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } -} diff --git a/examples/with-skynexui-components/pages/_app.js b/examples/with-skynexui-components/pages/_app.js deleted file mode 100644 index 870b6151eb5a1..0000000000000 --- a/examples/with-skynexui-components/pages/_app.js +++ /dev/null @@ -1,17 +0,0 @@ -import { Provider } from '@skynexui/components' - -export default function App({ Component, pageProps }) { - return ( - - - - ) -} diff --git a/examples/with-skynexui-components/pages/index.js b/examples/with-skynexui-components/pages/index.js deleted file mode 100644 index 4cbb29d6237cf..0000000000000 --- a/examples/with-skynexui-components/pages/index.js +++ /dev/null @@ -1,36 +0,0 @@ -import { Box, Text, TextField } from '@skynexui/components' - -export default function Index() { - return ( - - - @skynexui/components with Next.js! - - - Change ./pages/_app.js to modify the default theme - - - - - - ) -} diff --git a/examples/with-stomp/.env b/examples/with-stomp/.env deleted file mode 100644 index e5e8598191bd9..0000000000000 --- a/examples/with-stomp/.env +++ /dev/null @@ -1 +0,0 @@ -NEXT_PUBLIC_STOMP_SERVER=wss://some.stomp.server \ No newline at end of file diff --git a/examples/with-stomp/.gitignore b/examples/with-stomp/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-stomp/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-stomp/README.md b/examples/with-stomp/README.md deleted file mode 100644 index 27c686c2442fe..0000000000000 --- a/examples/with-stomp/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Stomp example - -This example show how to use [STOMP](https://stomp.github.io/) inside a Next.js application. - -STOMP is a simple text-orientated messaging protocol. It defines an interoperable wire format so that any of the available STOMP clients can communicate with any STOMP message broker. - -Read more about [STOMP](http://jmesnil.net/stomp-websocket/doc/) protocol. - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-stomp with-stomp-app -``` - -```bash -yarn create next-app --example with-stomp with-stomp-app -``` - -```bash -pnpm create next-app --example with-stomp with-stomp-app -``` - -You'll need to provide the STOMP url of your server before running the app. Open [`.env`](.env) and update the `NEXT_PUBLIC_STOMP_SERVER` environment variable. - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/with-stomp/package.json b/examples/with-stomp/package.json deleted file mode 100644 index d2ee32769d93b..0000000000000 --- a/examples/with-stomp/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "@stomp/stompjs": "^5.4.2", - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } -} diff --git a/examples/with-stomp/pages/index.js b/examples/with-stomp/pages/index.js deleted file mode 100644 index f9ecb11aa125f..0000000000000 --- a/examples/with-stomp/pages/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import useStomp from '../useStomp' - -/** - * In this example you can easily connect to an Stomp Websocket server, and subscribe to a topic by a custom Hook. - */ -const Index = () => { - // get message - const message = useStomp('/any/topic') - - // Check inside The message - console.log('##### new message : ', message) - - return ( -
-

New Message:

-

{message.text}

-
- ) -} - -export default Index diff --git a/examples/with-stomp/useClient.js b/examples/with-stomp/useClient.js deleted file mode 100644 index 2cb56c6b1f5ed..0000000000000 --- a/examples/with-stomp/useClient.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react' -import { Stomp } from '@stomp/stompjs' - -let stompClient - -const useClient = () => { - const [client, setClient] = React.useState(stompClient) - - React.useEffect(() => { - if (!stompClient) { - stompClient = Stomp.client(process.env.NEXT_PUBLIC_STOMP_SERVER) - } - if (!client) { - setClient(stompClient) - } - }, [client]) - - return client -} - -export default useClient diff --git a/examples/with-stomp/useStomp.js b/examples/with-stomp/useStomp.js deleted file mode 100644 index 3ed05d358431c..0000000000000 --- a/examples/with-stomp/useStomp.js +++ /dev/null @@ -1,29 +0,0 @@ -import { useState, useEffect, useCallback } from 'react' -import useClient from './useClient' - -const useStomp = (topic) => { - const [message, setMessage] = useState({}) - const client = useClient() - - // subscribe to a channel, then listen to the messages. - const subscribe = useCallback(() => { - client.subscribe(topic, (msg) => { - const change = JSON.parse(msg.body) - setMessage(change) - }) - }, [client, topic]) - - // unsubscribe on unmount - const unSubscribe = useCallback(() => { - client.unsubscribe() - }, [client]) - - useEffect(() => { - subscribe() - return unSubscribe - }, [subscribe, unSubscribe]) - - return message -} - -export default useStomp diff --git a/examples/with-styled-jsx-postcss/.gitignore b/examples/with-styled-jsx-postcss/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-styled-jsx-postcss/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-styled-jsx-postcss/README.md b/examples/with-styled-jsx-postcss/README.md deleted file mode 100644 index a7afad09a4849..0000000000000 --- a/examples/with-styled-jsx-postcss/README.md +++ /dev/null @@ -1 +0,0 @@ -This examples was moved to [https://github.com/vercel/next.js/tree/canary/examples/with-styled-jsx-plugins](https://github.com/vercel/next.js/tree/canary/examples/with-styled-jsx-plugins) diff --git a/examples/with-sw-precache/.gitignore b/examples/with-sw-precache/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-sw-precache/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-sw-precache/README.md b/examples/with-sw-precache/README.md deleted file mode 100644 index 6260913a664ff..0000000000000 --- a/examples/with-sw-precache/README.md +++ /dev/null @@ -1 +0,0 @@ -We recommend using https://github.com/vercel/next.js/tree/canary/examples/next-offline diff --git a/examples/with-tailwindcss-emotion/.babelrc b/examples/with-tailwindcss-emotion/.babelrc deleted file mode 100644 index e1fccf858dddd..0000000000000 --- a/examples/with-tailwindcss-emotion/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - [ - "next/babel", - { - "preset-react": { - "runtime": "automatic", - "importSource": "@emotion/react" - } - } - ] - ], - "plugins": ["xwind/babel", "@emotion/babel-plugin"] -} diff --git a/examples/with-tailwindcss-emotion/.gitignore b/examples/with-tailwindcss-emotion/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-tailwindcss-emotion/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-tailwindcss-emotion/README.md b/examples/with-tailwindcss-emotion/README.md deleted file mode 100644 index 1561eefc6af69..0000000000000 --- a/examples/with-tailwindcss-emotion/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Tailwind CSS with Emotion.js example - -This is an example of how you can add [tailwind CSS](https://tailwindcss.com/) with [Emotion.js](https://emotion.sh/docs/introduction) in your web app. It takes inspiration from [examples/with-tailwindcss](https://github.com/vercel/next.js/blob/canary/examples/with-tailwindcss/README.md). - -`xwind` is used to add tailwind classes inside Emotion by injecting the tailwind CSS into the styled component. No need to use CSS files, autoprefix, minifier, etc. You will get the full benefits of Emotion. - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-tailwindcss-emotion&project-name=with-tailwindcss-emotion&repository-name=with-tailwindcss-emotion) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-tailwindcss-emotion with-tailwindcss-emotion-app -``` - -```bash -yarn create next-app --example with-tailwindcss-emotion with-tailwindcss-emotion-app -``` - -```bash -pnpm create next-app --example with-tailwindcss-emotion with-tailwindcss-emotion-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). - -## Notes - -The CSS classes generated by Emotion will include the tailwind styles but not the name of the classes. For example the following component: - -```jsx -const Header = styled.div(xw`font-mono text-sm text-gray-800`) -``` - -Will be transformed into: - -```css -.css-25og8s-Header { - font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', - monospace; - font-size: 0.875rem; - color: #2d3748; -} -``` - -### Tailwind CSS config - -Use the following command when you add a tailwind plugin that adds to tailwind's base css: - -```bash -npm run build:base-css -# or -yarn run build:base-css -``` diff --git a/examples/with-tailwindcss-emotion/components/ButtonReact.js b/examples/with-tailwindcss-emotion/components/ButtonReact.js deleted file mode 100644 index 5f518f97dd00d..0000000000000 --- a/examples/with-tailwindcss-emotion/components/ButtonReact.js +++ /dev/null @@ -1,43 +0,0 @@ -/* Example with @emotion/react */ -import xw, { cx } from 'xwind' - -//"react native style" -const styles = { - button: xw` - relative - w-64 min-w-full - flex justify-center - py-2 px-4 - border border-transparent - text-sm leading-5 font-medium - rounded-md - text-white - bg-gray-600 - hover:bg-gray-500 - focus[outline-none ring-4 ring-gray-400] - active:bg-gray-700 - transition duration-150 ease-in-out - `, -} - -const ButtonReact = ({ className, children, ...props }) => ( - -) - -export default ButtonReact diff --git a/examples/with-tailwindcss-emotion/components/ButtonStyled.js b/examples/with-tailwindcss-emotion/components/ButtonStyled.js deleted file mode 100644 index f1b37217b94b4..0000000000000 --- a/examples/with-tailwindcss-emotion/components/ButtonStyled.js +++ /dev/null @@ -1,49 +0,0 @@ -/* Example with @emotion/styled */ -import styled from '@emotion/styled' -import xw, { cx } from 'xwind' - -const Button = styled.button(xw` - relative - w-64 min-w-full - flex justify-center - py-2 px-4 - border border-transparent - text-sm leading-5 font-medium - rounded-md - text-white - bg-blue-600 - hover:bg-blue-500 - focus[outline-none ring-4 ring-blue-400] - active:bg-blue-700 - transition duration-150 ease-in-out -`) - -const IconWrapper = styled.span(xw` - absolute left-0 inset-y-0 - flex items-center - pl-3 -`) - -const Icon = styled.svg(xw` - h-5 w-5 - text-blue-500 - group-hover:text-blue-400 - transition ease-in-out duration-150 -`) - -const ButtonStyled = ({ className, children, ...props }) => ( - -) - -export default ButtonStyled diff --git a/examples/with-tailwindcss-emotion/package.json b/examples/with-tailwindcss-emotion/package.json deleted file mode 100644 index 0ef56cd299972..0000000000000 --- a/examples/with-tailwindcss-emotion/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "@emotion/react": "^11.8.2", - "@emotion/styled": "11.8.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "tailwindcss-filters": "3.0.0" - }, - "devDependencies": { - "@babel/core": "7.22.5", - "@emotion/babel-plugin": "11.7.2", - "autoprefixer": "^10.4.4", - "next": "latest", - "postcss": "^8.4.12", - "tailwindcss": "2.1.4", - "xwind": "0.8.0" - } -} diff --git a/examples/with-tailwindcss-emotion/pages/_app.js b/examples/with-tailwindcss-emotion/pages/_app.js deleted file mode 100644 index 0af8b3785e0ce..0000000000000 --- a/examples/with-tailwindcss-emotion/pages/_app.js +++ /dev/null @@ -1,20 +0,0 @@ -import Head from 'next/head' -import { Global } from '@emotion/react' -import xw from 'xwind' - -function App({ Component, pageProps }) { - return ( - <> - - Tailwindcss Emotion Example - - - - - ) -} - -export default App diff --git a/examples/with-tailwindcss-emotion/pages/index.js b/examples/with-tailwindcss-emotion/pages/index.js deleted file mode 100644 index 8c8728b131f8e..0000000000000 --- a/examples/with-tailwindcss-emotion/pages/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import xw from 'xwind' -import ButtonReact from '../components/ButtonReact' -import ButtonStyled from '../components/ButtonStyled' - -const Index = () => ( -
-
- @emotion/react - @emotion/styled -
-
-) - -export default Index diff --git a/examples/with-tailwindcss-emotion/postcss.config.js b/examples/with-tailwindcss-emotion/postcss.config.js deleted file mode 100644 index 3fa0a9514dc9d..0000000000000 --- a/examples/with-tailwindcss-emotion/postcss.config.js +++ /dev/null @@ -1,8 +0,0 @@ -// If you want to use other PostCSS plugins, see the following: -// https://tailwindcss.com/docs/using-with-preprocessors -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/examples/with-tailwindcss-emotion/tailwind.config.js b/examples/with-tailwindcss-emotion/tailwind.config.js deleted file mode 100644 index 9c00d8825b47e..0000000000000 --- a/examples/with-tailwindcss-emotion/tailwind.config.js +++ /dev/null @@ -1,18 +0,0 @@ -const colors = require('tailwindcss/colors') - -/** @type {import('tailwindcss').Config} */ -module.exports = { - purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'], - darkMode: 'class', - theme: { - extend: { - colors, - }, - }, - variants: {}, - plugins: [require('tailwindcss-filters')], - // xwind options - xwind: { - mode: 'objectstyles', - }, -} diff --git a/examples/with-tesfy/.gitignore b/examples/with-tesfy/.gitignore deleted file mode 100644 index fd3dbb571a12a..0000000000000 --- a/examples/with-tesfy/.gitignore +++ /dev/null @@ -1,36 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/examples/with-tesfy/README.md b/examples/with-tesfy/README.md deleted file mode 100644 index ea4408b3cb639..0000000000000 --- a/examples/with-tesfy/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Tesfy Example - -[Tesfy](https://tesfy.io/) allows you to create **unlimited** A/B Tests and Feature Flags for **free** using a [web app](https://app.tesfy.io/) or by your self. - -This example shows how to integrate [react-tesfy](https://github.com/andresz1/react-tesfy) in Next.js. - -To use Tesfy there are only two mandatory things needed. A `userId` and a configuration file known as `datafile`. In the `_app.js` you will notice that those are being get. - -The `userId` must uniquely identify a user even if not logged in, for that reason a [uuid](https://en.wikipedia.org/wiki/Universally_unique_identifier) is created and stored in a cookie so the next time a page is requested a new `userId` won't be created, instead the cookie one will be used. - -The `datafile` is just a `json` that defines the configuration of the experiments and features available. It must be fetched from Tesfy CDN or from your own servers at least everytime a request is performed, later on this configuration could also be fetched if wanted (e.g. during page transitions). - -## Deploy your own - -Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) or preview live with [StackBlitz](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/with-tesfy) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/next.js/tree/canary/examples/with-tesfy&project-name=with-tesfy&repository-name=with-tesfy) - -## How to use - -Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init), [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/), or [pnpm](https://pnpm.io) to bootstrap the example: - -```bash -npx create-next-app --example with-tesfy with-tesfy-app -``` - -```bash -yarn create next-app --example with-tesfy with-tesfy-app -``` - -```bash -pnpm create next-app --example with-tesfy with-tesfy-app -``` - -Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). diff --git a/examples/with-tesfy/components/nav.js b/examples/with-tesfy/components/nav.js deleted file mode 100644 index 842d0a0c48caf..0000000000000 --- a/examples/with-tesfy/components/nav.js +++ /dev/null @@ -1,11 +0,0 @@ -import Link from 'next/link' - -const Nav = () => { - return ( - - ) -} - -export default Nav diff --git a/examples/with-tesfy/package.json b/examples/with-tesfy/package.json deleted file mode 100644 index 23580451389ca..0000000000000 --- a/examples/with-tesfy/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "cookie": "0.4.1", - "next": "latest", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-tesfy": "latest", - "tesfy": "latest", - "uuid": "8.1.0" - } -} diff --git a/examples/with-tesfy/pages/_app.js b/examples/with-tesfy/pages/_app.js deleted file mode 100644 index 9a98b07f52c21..0000000000000 --- a/examples/with-tesfy/pages/_app.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react' -import { TesfyProvider, createInstance } from 'react-tesfy' -import Nav from '../components/nav' - -const App = ({ Component, pageProps }) => { - const { datafile = {}, userId } = pageProps - const engine = createInstance({ - datafile, - userId, - }) - - return ( - -