From e1d7d78aed4c8c608f110e1b5dd88544e1e3dcf8 Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Mon, 16 Sep 2024 17:06:11 +0100 Subject: [PATCH] Init --- .gitignore | 102 +++ Makefile | 40 ++ base58/base58.go | 53 ++ data.json | 1395 ++++++++++++++++++++++++++++++++++++ go.mod | 80 +++ go.sum | 360 ++++++++++ import/importer.go | 47 ++ main.go | 334 +++++++++ pb_data/data.db | Bin 0 -> 184320 bytes pb_data/logs.db | Bin 0 -> 290816 bytes pb_public/build/bundle.css | 3 + pb_public/build/bundle.js | 1 + pb_public/favicon.png | Bin 0 -> 13331 bytes pb_public/global.css | 66 ++ pb_public/index.html | 18 + 15 files changed, 2499 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 base58/base58.go create mode 100644 data.json create mode 100644 go.mod create mode 100644 go.sum create mode 100644 import/importer.go create mode 100644 main.go create mode 100644 pb_data/data.db create mode 100644 pb_data/logs.db create mode 100644 pb_public/build/bundle.css create mode 100644 pb_public/build/bundle.js create mode 100644 pb_public/favicon.png create mode 100644 pb_public/global.css create mode 100644 pb_public/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c31c27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,102 @@ +### Go template +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work + +### GoLand template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b8e382e --- /dev/null +++ b/Makefile @@ -0,0 +1,40 @@ +PROJECT = go-pb-nurl + +VERSION=`git describe --tags` +BUILD=`date +%FT%T%z` + + +ECR_REPO = git.caliban.io/martin + +APP_IMAGE = $(ECR_REPO)/$(PROJECT):$(VERSION) + +NO_CACHE = true + +LDFLAGS=-ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}" + + +.PHONY: build +build: + #CC=/usr/local/musl/bin/musl-gcc go build --ldflags '-linkmode external -extldflags "-static"' server.go + GCO_ENABLED=0 GOOS=linux go build ${LDFLAGS} -o ${PROJECT} main.go + # go build ${LDFLAGS} -o ${PROJECT} server.go + +# docker build ./docker/. -t $(APP_IMAGE) --build-arg VERSION=$(VERSION) --no-cache=$(NO_CACHE) --compress=true + # docker build --platform linux/amd64 --no-cache -force-rm --tag ${APP_IMAGE} --file ./docker/Dockerfile . + + +#push docker image to registry +.PHONY: push +push: build + docker push $(APP_IMAGE) + + +#push docker image to registry +.PHONY: run +run: build + docker run $(APP_IMAGE) + +ver: + @echo '$(VERSION)' + #echo $ERSION +.PHONY: ver \ No newline at end of file diff --git a/base58/base58.go b/base58/base58.go new file mode 100644 index 0000000..ab2d5d1 --- /dev/null +++ b/base58/base58.go @@ -0,0 +1,53 @@ +package base58 + +import ( + "math" + "slices" +) + +var ( + byteabet = []byte("bMJZSrnxEyq8kN3UYQL5oXwV7BCFRtvpmDf1shAuHzKicTjeG29Pg4adW6") + base = len(byteabet) +) + +func Encode(num int) string { + encoded := "" + + worknum := num + + for worknum > 0 { + remainder := worknum % base + + worknum = worknum / base + + encoded = string(byteabet[remainder]) + encoded + + } + + return encoded +} + +func Decode(encoded string) int { + + decoded := 0 + + workEncoded := encoded + + for len(workEncoded) > 0 { + + index := workEncoded[0:1] + + power := len(workEncoded) - 1 + + idx := slices.IndexFunc(byteabet, func(c byte) bool { + return c == index[0] + }) + + decoded += idx * int(math.Pow(float64(base), float64(power))) + + workEncoded = workEncoded[1:] + + } + + return decoded +} diff --git a/data.json b/data.json new file mode 100644 index 0000000..81e63e7 --- /dev/null +++ b/data.json @@ -0,0 +1,1395 @@ +[ + { + "visits": 15, + "__v": 0, + "long_url": "www.google.com", + "created_at": "2017-08-05T20:29:39.541Z", + "_id": 1000 + }, + { + "visits": 1, + "__v": 0, + "long_url": "google.com", + "created_at": "2017-08-05T20:53:06.602Z", + "_id": 1001 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.reddit.com/", + "created_at": "2017-08-05T21:00:17.169Z", + "_id": 1002 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.google.com", + "created_at": "2017-08-05T21:01:06.028Z", + "_id": 1003 + }, + { + "visits": 0, + "__v": 0, + "long_url": "http://www.google.com", + "created_at": "2017-08-05T22:33:04.483Z", + "_id": 1004 + }, + { + "visits": 0, + "__v": 0, + "long_url": "http://www.journeycheck.com/firstscotrail", + "created_at": "2017-08-05T23:57:17.501Z", + "_id": 1005 + }, + { + "visits": 0, + "__v": 0, + "long_url": "http://www.theaa.com/traffic-news/glasgow%20uk/", + "created_at": "2017-08-05T23:57:32.059Z", + "_id": 1006 + }, + { + "visits": 0, + "__v": 0, + "long_url": "http://www.accuweather.com/ukie/index-forecast.asp?postalcode=G82%201RG", + "created_at": "2017-08-05T23:58:11.488Z", + "_id": 1007 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://www.wunderground.com/cgi-bin/findweather/getForecast?query=glasgow,%20uk&wuSelect=WEATHER", + "created_at": "2017-08-05T23:58:42.707Z", + "_id": 1008 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://explorer.litecoin.net/address/LcvPdRiawZahxmqiuZRbjnWoh4vGXvbasY", + "created_at": "2017-08-07T10:50:14.082Z", + "_id": 1009 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=3MMMe1drnZY", + "created_at": "2017-08-07T14:59:24.322Z", + "_id": 1010 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://blockexplorer.com/address/18sLVW5Aswp2KWLr4hMFZsuSPtvAauFiif", + "created_at": "2017-08-17T13:36:57.562Z", + "_id": 1011 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.com/Flair-Hair-Black-Bottle-Opener/dp/B002MVLOBO?th=1", + "created_at": "2017-08-23T19:45:30.577Z", + "_id": 1012 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.com/Teforia-Leaf-Tea-Infuser-White/dp/B071L78KJB", + "created_at": "2017-08-23T19:48:28.607Z", + "_id": 1013 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Kilner-Lunchbox-Salad-Dressing-Transparent/dp/B01FZ5ZAJK", + "created_at": "2017-08-24T09:34:43.996Z", + "_id": 1014 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://stackoverflow.com/questions/8332333/node-js-setting-up-environment-specific-configs-to-be-used-with-everyauth", + "created_at": "2017-09-05T13:15:07.228Z", + "_id": 1015 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=HCGHb0OVz1s", + "created_at": "2017-09-05T14:58:09.784Z", + "_id": 1016 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.windy.com/55.944/-4.570?rain,46.012,-27.026,4,m:fepaf1y", + "created_at": "2017-09-12T12:28:00.650Z", + "_id": 1017 + }, + { + "visits": 3, + "__v": 0, + "long_url": "", + "created_at": "2017-09-29T13:32:57.727Z", + "_id": 1018 + }, + { + "visits": 10, + "__v": 0, + "long_url": "https://tools.wmflabs.org/geohack/geohack.php?pagename=Glasgow¶ms=55_51_28.8_N_4_15_32.4_W_region:GB_type:city", + "created_at": "2017-10-02T21:50:14.622Z", + "_id": 1019 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.amazon.co.uk/dp/B01CYMB7RQ/ref=asc_df_B01CYMB7RQ46573316/?tag=googshopuk-21&creative=22110&creativeASIN=B01CYMB7RQ&linkCode=df0&hvadid=208095731238&hvpos=1o13&hvnetw=g&hvrand=14567822979560016693&hvpone=&hvptwo=&hvqmt=&hvdev=m&hvdvcmdl=&hvlocint=1006886&hvlocphy=9046964&hvtargid=pla-335923145900", + "created_at": "2017-10-06T06:56:41.369Z", + "_id": 1020 + }, + { + "visits": 2, + "__v": 0, + "long_url": "http://pda.jcheck.com/scotrail/route?from=glasgow+queen+street&to=dumbarton+east&searchType=searchInput&action=Search", + "created_at": "2017-10-12T16:30:16.914Z", + "_id": 1021 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.acer.com/ac/en/GB/content/support-product/5930?b=1", + "created_at": "2017-10-26T11:48:22.300Z", + "_id": 1022 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Fly-London-Nosm-Boots-Expresso/dp/B007JRTHBK/ref=sr_1_29?m=A3P5ROKL5A1OLE&s=shoes&ie=UTF8&qid=1509736755&sr=1-29&nodeID=1769788031&psd=1&refinements=p_lbr_brands_browse-bin%3AFly+London%2Cp_6%3AA3P5ROKL5A1OLE", + "created_at": "2017-11-03T19:19:46.008Z", + "_id": 1023 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://pda.jcheck.com/scotrail/route?from=partick&to=dumbarton+east&searchType=searchInput&action=Search", + "created_at": "2017-11-06T17:47:29.701Z", + "_id": 1024 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.nexusmods.com/nomanssky/mods/363/?", + "created_at": "2017-11-16T20:04:40.839Z", + "_id": 1025 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.apkmirror.com/apk/developed-with-google/android-samba-client/android-samba-client-1-1-release/android-samba-client-1-1-android-apk-download/", + "created_at": "2017-11-30T17:45:20.112Z", + "_id": 1026 + }, + { + "visits": 2, + "__v": 0, + "long_url": "vj", + "created_at": "2017-12-13T14:46:42.053Z", + "_id": 1027 + }, + { + "visits": 0, + "__v": 0, + "long_url": "http://nurl.co/Qz", + "created_at": "2017-12-13T14:46:59.610Z", + "_id": 1028 + }, + { + "visits": 0, + "__v": 0, + "long_url": "www", + "created_at": "2017-12-13T14:47:09.554Z", + "_id": 1029 + }, + { + "visits": 3, + "__v": 0, + "long_url": "www.264sihu.com", + "created_at": "2017-12-13T14:47:27.812Z", + "_id": 1030 + }, + { + "visits": 6, + "__v": 0, + "long_url": "https://traintimes.silvrtree.co.uk/", + "created_at": "2017-12-19T12:27:58.987Z", + "_id": 1031 + }, + { + "visits": 1, + "__v": 0, + "long_url": "Unrl", + "created_at": "2018-02-25T17:59:15.637Z", + "_id": 1032 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://acountlockeddetectt.ga/", + "created_at": "2018-03-08T14:16:00.691Z", + "_id": 1033 + }, + { + "visits": 8, + "__v": 0, + "long_url": "http://acountlockeddetectt.ga/sayang", + "created_at": "2018-03-08T14:16:20.198Z", + "_id": 1034 + }, + { + "visits": 2, + "__v": 0, + "long_url": "acountlockeddetectt.ga/,", + "created_at": "2018-03-09T07:23:53.135Z", + "_id": 1035 + }, + { + "visits": 118, + "__v": 0, + "long_url": "http://acountlockeddetectt.ga/,", + "created_at": "2018-03-09T07:24:14.668Z", + "_id": 1036 + }, + { + "visits": 0, + "__v": 0, + "long_url": "wefefqwfqwfqw", + "created_at": "2018-04-01T17:07:30.457Z", + "_id": 1039 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/ATPWONZ-52Pcs-Hollow-Cutter-Leather/dp/B0773JX25G/ref=sr_1_11?ie=UTF8&qid=1520799616&sr=8-11&keywords=Clay+Cutter", + "created_at": "2018-03-11T20:21:49.079Z", + "_id": 1037 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Alcohol-Moonshine-Spirits-Brewing-Distiller/dp/B0161UWD20/ref=pd_bxgy_79_img_2?_encoding=UTF8&psc=1&refRID=Q2N2ETWB7D2W2TTDG4QV", + "created_at": "2018-03-13T13:12:30.366Z", + "_id": 1038 + }, + { + "visits": 0, + "__v": 0, + "long_url": "wetwetwet", + "created_at": "2018-04-01T17:07:33.394Z", + "_id": 1040 + }, + { + "visits": 2, + "__v": 0, + "long_url": "http://uk.businessinsider.com/san-francisco-millennium-tower-condo-sold-for-million-under-asking-2018-4?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2Falleyinsider%2Fsilicon_alley_insider+%28Silicon+Alley+Insider%29&r=US&IR=T", + "created_at": "2018-04-03T14:26:16.254Z", + "_id": 1041 + }, + { + "visits": 7, + "__v": 0, + "long_url": "http://solvessssproblemsss.sytes.net/,", + "created_at": "2018-06-16T05:45:08.330Z", + "_id": 1042 + }, + { + "visits": 4, + "__v": 0, + "long_url": "solvessssproblemsss.sytes.net/,", + "created_at": "2018-06-16T05:53:10.194Z", + "_id": 1043 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://web.archive.org/web/20090430090315/http://rurl.org:80/", + "created_at": "2018-06-19T15:43:34.207Z", + "_id": 1044 + }, + { + "visits": 3, + "__v": 0, + "long_url": "http://uk.businessinsider.com/250-million-mansion-in-bel-air-comes-with-crazy-perks-2017-1?utm_source=feedburner&%3Butm_medium=referral&utm_medium=feed&utm_campaign=Feed%3A+businessinsider+%28Business+Insider%29&r=US&IR=T", + "created_at": "2018-06-26T20:26:42.289Z", + "_id": 1045 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.facebook.com/groups/1624910374437247/permalink/2054434434818170/?comment_id=2054516168143330&comment_tracking=%7B%22tn%22%3A%22R%22%7D", + "created_at": "2018-07-08T23:21:17.475Z", + "_id": 1046 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/15-Acrylic-10mm-Tiny-Skull-Cabochon-Flat-Back-Decoration-Embellishment-Deco-Cute-/361913674840", + "created_at": "2018-07-21T16:18:34.107Z", + "_id": 1047 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://m.ebay.co.uk/itm/14pcs-Nautical-Sea-Theme-Set-Flatback-Resin-Cabochons-Embellishment-Craft-Kit/392080229980?hash=item5b49cd865c%3Am%3AmTdQEv7JKFs4pSpGwbWNGNQ&var=661027611790&_nkw=cabochon+sea+embellishments&_from=R40&rt=nc", + "created_at": "2018-07-21T16:22:26.287Z", + "_id": 1048 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://g.redditmedia.com/DOEY2HISr83A8PpSMsKKpmHYaiL2Wunw16_PgHD3r50.gif?fm=mp4&mp4-fragmented=false&s=d9c3bafa3efa861ba0066502a638890d", + "created_at": "2018-08-07T09:34:59.654Z", + "_id": 1049 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.com/Pony-Up-Daddy-Saddle-Princess/dp/B01KUH558O", + "created_at": "2018-08-24T19:51:49.802Z", + "_id": 1050 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Smiffys-Horse-Hat-Mane-Brown/dp/B00AZGFDNI/ref=wl_mb_wl_huc_mrai_1_dp?ie=UTF8&pd_rd_i=B00AZGFDNI&pd_rd_r=9XSJ0D2RBXYY430W445B&pd_rd_w=8J3wW&pd_rd_wg=R8wWa", + "created_at": "2018-08-24T20:03:14.550Z", + "_id": 1051 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Genius-nicer-dicer-fusion-16-piece/dp/B01N5PYU43/ref=pd_sbs_201_5?_encoding=UTF8&pd_rd_i=B01N5PYU43&pd_rd_r=edb3945b-c047-11e8-a337-3faa212eb1c9&pd_rd_w=4sZzD&pd_rd_wg=niwLS&pf_rd_i=desktop-dp-sims&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_p=85d62760-2a0e-407d-aa36-f3c03afc01c3&pf_rd_r=N6AB2Q0ZZZZ88XMT3XPW&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=N6AB2Q0ZZZZ88XMT3XPW", + "created_at": "2018-09-25T08:13:41.658Z", + "_id": 1052 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://example.com", + "created_at": "2018-12-06T17:34:22.139Z", + "_id": 1053 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.groupon.co.uk/deals/green-chilli-cafe-4?p=9&nlp=&CID=UK&uu=3d0739c4-ccb2-44c9-9874-49d39de1996e&tx=0&utm_source=merchandising&utm_medium=email&sid=511c007b-f800-47fe-b768-237edfb31700_0_20181227&t_division=glasgow&date=20182712&sender=rm&s=body&c=image&d=deal-page", + "created_at": "2018-12-27T17:13:23.010Z", + "_id": 1054 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.groupon.co.uk/deals/the-number-1-bead-shop-glasgow-6?p=16&nlp=&CID=UK&uu=3d0739c4-ccb2-44c9-9874-49d39de1996e&tx=0&utm_source=merchandising&utm_medium=email&sid=511c007b-f800-47fe-b768-237edfb31700_0_20181227&t_division=glasgow&date=20182712&sender=rm&s=body&c=image&d=deal-page", + "created_at": "2018-12-27T17:14:20.946Z", + "_id": 1055 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://search-test-foo-ihvdhrocdi6tle7qbdytf2pvfq.eu-west-1.es.amazonaws.com/_plugin/kibana/app/kibana#/discover?_g=(filters:!(),refreshInterval:('$$hashKey':'object:785',display:'10%20seconds',pause:!f,section:1,value:10000),time:(from:now-5h,mode:relative,to:now))&_a=(columns:!(_source),filters:!(),index:'8aa81d70-1b39-11e9-93f0-4532a56175f9',interval:auto,query:(language:lucene,query:%22prd-dir-pfeint%22),sort:!(timestamp,desc))", + "created_at": "2019-04-02T09:52:04.776Z", + "_id": 1056 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.google.com/maps/dir//Doune+Castle,+Castle+Hill,+Doune+FK16+6EA/@56.1835923,-4.0603162,15z/data=!4m8!4m7!1m0!1m5!1m1!1s0x48888bd24de4fcbf:0x5599d30a61b7fb39!2m2!1d-4.0499462!2d56.1851961", + "created_at": "2019-05-22T14:19:09.632Z", + "_id": 1057 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.lidl.co.uk/en/p/diy/powerfix-profi-metal-shelving-unit/p27863", + "created_at": "2019-12-05T20:00:32.746Z", + "_id": 1058 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://open.spotify.com/playlist/7lE3XcDdMvkM4aVJVNoE3q?si=HHy83YR8RuG6tgFqJjsIxw#_=_", + "created_at": "2020-04-17T10:23:54.684Z", + "_id": 1059 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.sslforfree.com/", + "created_at": "2020-04-17T14:00:57.665Z", + "_id": 1060 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://expressjs.com/en/starter/static-files.html", + "created_at": "2020-04-17T14:26:22.082Z", + "_id": 1061 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.google.com/", + "created_at": "2020-04-17T18:22:38.904Z", + "_id": 1062 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://svelte.dev/", + "created_at": "2020-04-17T18:24:23.858Z", + "_id": 1063 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.gov.scot/news/social-distancing-regulations-strengthened/", + "created_at": "2020-04-21T19:20:39.065Z", + "_id": 1064 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://open.spotify.com/playlist/37i9dQZF1DZ06evO1XzSz4?si=oMlUIPXbS9mWxVMP7NSFPQ", + "created_at": "2020-04-22T13:22:14.188Z", + "_id": 1065 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://open.spotify.com/playlist/37i9dQZF1DZ06evO0As8NY?si=NQkFuDloRky6fM_qBT_uQQ", + "created_at": "2020-04-22T13:30:40.684Z", + "_id": 1066 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://shop.cracked.com/sales/the-all-in-one-adobe-creative-cloud-suite-certification-bundle?utm_source=cracked.com&utm_medium=referral&utm_campaign=the-all-in-one-adobe-creative-cloud-suite-certification-bundle&utm_term=scsf-385299&utm_content=a0x1P000004NRnm&scsonar=1", + "created_at": "2020-04-28T15:55:56.832Z", + "_id": 1067 + }, + { + "visits": 12, + "__v": 0, + "long_url": "https://jasonslade.com/", + "created_at": "2020-04-28T16:05:01.127Z", + "_id": 1068 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://output.jsbin.com/bocebom", + "created_at": "2020-05-30T18:46:09.893Z", + "_id": 1069 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.belfasttelegraph.co.uk/news/uk/ff430/38503477.ece/AUTOCROP/w800/bpanews_f54b406e-9ef5-4183-b63b-162d8cd5333a_embedded245022225", + "created_at": "2020-07-03T14:41:46.412Z", + "_id": 1070 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://cdn.images.express.co.uk/img/dynamic/139/590x/secondary/Jacob-Rees-Mogg-children-1982608.webp?r=1564496520861", + "created_at": "2020-07-03T14:48:39.880Z", + "_id": 1071 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.lenovo.com/gb/en/desktops-and-all-in-ones/thinkcentre/m-series-tiny/ThinkCentre-M75q-1/p/11TC1MTM73Q", + "created_at": "2020-07-07T09:59:15.099Z", + "_id": 1072 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.techblunt.com/fix-neterr_cert_authority_invalid-chrome-error/", + "created_at": "2020-07-22T14:39:44.244Z", + "_id": 1073 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/AzH9J698eezep5y", + "created_at": "2020-08-04T22:41:07.651Z", + "_id": 1074 + }, + { + "visits": 9, + "__v": 0, + "long_url": "https://www.howtogeek.com/345504/how-to-open-heic-files-on-windows-or-convert-them-to-jpeg/", + "created_at": "2020-08-26T09:27:02.505Z", + "_id": 1075 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.playmobil.co.uk/advent-calendar---santas-workshop/9264.html", + "created_at": "2020-09-23T17:55:38.496Z", + "_id": 1076 + }, + { + "visits": 6, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/4b5kFfHmTXb55Z6/download", + "created_at": "2020-10-13T14:48:34.859Z", + "_id": 1077 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://github.com/blueseerERP/blueseer/releases/download/blueseer.sqlite.linux.v43.deb/blueseer.sqlite.linux.v43.deb", + "created_at": "2020-12-07T13:29:39.115Z", + "_id": 1078 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://i.ebayimg.com/images/g/csEAAOSwwJ5dt1aK/s-l1600.jpg", + "created_at": "2021-01-25T10:32:41.664Z", + "_id": 1079 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://martind-mime:Ruby.Miner.709@bitbucket.org/martind-mime/aiber-buildbot/raw/0805fd0373ce3452e8f2fa397bbb419c92fcd6f4/server-config.sh", + "created_at": "2021-02-15T16:23:54.138Z", + "_id": 1080 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.raymond.cc/blog/keep-application-running-by-automatically-rerun-when-closed/", + "created_at": "2021-02-16T11:18:23.560Z", + "_id": 1081 + }, + { + "visits": 15, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/XPYMDzHYXYdTBZG/download", + "created_at": "2021-02-17T12:44:30.437Z", + "_id": 1082 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://nurl.co/", + "created_at": "2021-02-25T16:31:30.571Z", + "_id": 1083 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://drive.google.com/file/d/1VxiaxB05boo--N_OBZk9PQGG2JTW_rxG/view?usp=sharing", + "created_at": "2021-03-04T12:05:09.919Z", + "_id": 1084 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/3Npf7MgWSpz5qNG/download", + "created_at": "2021-05-07T15:43:16.678Z", + "_id": 1085 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/EnRFajB9DQwxq8Q", + "created_at": "2021-05-16T08:33:19.428Z", + "_id": 1086 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://eastsutherlandrescueassociation.org.uk", + "created_at": "2021-05-19T10:04:54.500Z", + "_id": 1087 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/cZdMKAcnPp5CZDr/download", + "created_at": "2021-06-05T22:12:38.291Z", + "_id": 1088 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://photos.google.com/share/AF1QipNQPUvAUa5EeSZPOzkavS9kvboAAFY-Wif7qLqgkBhVvTb9WVXLfeg_laKyoX-Bng/photo/AF1QipO1foAKhqEdajelJo2zOAYxPDJXdpmsAcGwXSM4?key=Zi1IVDdpZjBZRVhCMEtKb1lJdnJRMnlsOVptTlVR", + "created_at": "2021-07-02T15:11:45.929Z", + "_id": 1089 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://photos.app.goo.gl/W8dKyitBSXdm5WRk6", + "created_at": "2021-07-02T15:15:07.256Z", + "_id": 1090 + }, + { + "visits": 7, + "__v": 0, + "long_url": "https://presstories.com/2021/09/26/september-30-2021-is-the-day-the-internet-is-disabled-for-millions-of-smartphones-and-computers/", + "created_at": "2021-09-30T09:13:25.173Z", + "_id": 1091 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/cooke-lewis-apollonia-satin-stainless-steel-1-5-bowl-sink-drainer/5059340118420_BQ.prd", + "created_at": "2021-11-14T17:00:42.155Z", + "_id": 1092 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-caraway-white-base-cabinet-w-1000mm/3663602637479_BQ.prd", + "created_at": "2021-11-14T17:05:25.117Z", + "_id": 1093 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-caraway-white-base-cabinet-w-800mm/3663602637462_BQ.prd", + "created_at": "2021-11-14T17:05:50.054Z", + "_id": 1094 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-caraway-white-base-cabinet-w-600mm/3663602637455_BQ.prd", + "created_at": "2021-11-14T17:06:10.417Z", + "_id": 1095 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-caraway-white-base-cabinet-w-300mm/3663602637417_BQ.prd", + "created_at": "2021-11-14T17:06:42.358Z", + "_id": 1096 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-caraway-white-oven-housing-base-cabinet-w-600mm/3663602637554_BQ.prd", + "created_at": "2021-11-14T17:07:24.109Z", + "_id": 1097 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-pebre-matt-anthracite-soft-close-lh-pull-out-storage-h-698mm-w-720mm/3663602480198_BQ.prd", + "created_at": "2021-11-14T17:08:13.097Z", + "_id": 1098 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-soto-soft-close-deep-drawer-box-w-564mm/3663602479277_BQ.prd", + "created_at": "2021-11-14T17:09:44.569Z", + "_id": 1099 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-soto-soft-close-drawer-box-w-564mm/3663602479161_BQ.prd", + "created_at": "2021-11-14T17:10:11.295Z", + "_id": 1100 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-soto-soft-close-drawer-box-w-264mm/3663602479130_BQ.prd", + "created_at": "2021-11-14T17:10:36.778Z", + "_id": 1101 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.diy.com/departments/goodhome-soto-internal-drawer-front-w-600mm/3663602479222_BQ.prd", + "created_at": "2021-11-14T17:10:59.192Z", + "_id": 1102 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://open.spotify.com/playlist/43XgEUOlo6qAONKGJgWh6a?si=28350cb04799489b&nd=1", + "created_at": "2021-12-02T11:14:37.432Z", + "_id": 1103 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://photos.app.goo.gl/wypTnYwPBKxmYwr78", + "created_at": "2021-12-03T12:10:08.765Z", + "_id": 1104 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.dell.com/community/XPS/XPS-13-9370-which-USB-C-ports-can-I-plug-the-A-C-adapter-into/td-p/7301259", + "created_at": "2022-01-14T11:12:58.633Z", + "_id": 1105 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=HIPNVm6lNfM", + "created_at": "2022-02-25T23:23:27.513Z", + "_id": 1106 + }, + { + "visits": 27, + "__v": 0, + "long_url": "https://cloud.xira.co.uk/index.php/s/DLCMw3MkwQbsG7g/download", + "created_at": "2022-03-07T15:38:36.757Z", + "_id": 1107 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.thenewcivilrightsmovement.com/wp-content/uploads/2022/04/california-secretary-of-state-candidate-claims-to-have-empath-powers-proving-trump-won-rs-4.jpg", + "created_at": "2022-04-22T16:02:06.510Z", + "_id": 1108 + }, + { + "visits": 7, + "__v": 0, + "long_url": "http://cloud.xira.co.uk/index.php/s/By4N9nHiCGoernk/download/server_install.sh", + "created_at": "2022-05-31T14:01:09.376Z", + "_id": 1109 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.google.com/maps/@43.3087063,5.3665552,3a,75y,92.05h,96.04t/data=!3m6!1e1!3m4!1spP_gHbEJvj0s45y0Bqr0-w!2e0!7i16384!8i8192", + "created_at": "2022-06-16T12:39:57.151Z", + "_id": 1110 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.gov.uk/guidance/coronavirus-covid-19-test-kit-give-feedback-or-report-harm", + "created_at": "2022-07-17T08:57:26.819Z", + "_id": 1111 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=Ty9ojWfJJEA", + "created_at": "2022-11-25T12:45:18.999Z", + "_id": 1112 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=Ty9ojWfJJEA", + "created_at": "2022-11-25T12:45:19.069Z", + "_id": 1113 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://live.sortedfood.com/big-christmas-bash-17th-dec-8pm", + "created_at": "2022-12-17T18:30:50.802Z", + "_id": 1114 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://support.apple.com/kb/DL1837?viewlocale=en_US&locale=en_US", + "created_at": "2022-12-30T10:00:24.733Z", + "_id": 1115 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://my.splashtop.com/team_deployment/download/4K24ASXATAHA", + "created_at": "2023-01-04T11:22:03.978Z", + "_id": 1116 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://browser.geekbench.com/v4/cpu/16716444", + "created_at": "2023-02-17T17:04:59.652Z", + "_id": 1117 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://doors.live/t?id=8142c135-8153-4ea2-8c07-f2666557195d", + "created_at": "2023-02-27T19:44:01.870Z", + "_id": 1118 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/ZWJTYRKPzZCY7YN", + "created_at": "2023-03-03T12:25:15.048Z", + "_id": 1119 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://unix.stackexchange.com/questions/63410/rsync-skip-files-for-which-i-dont-have-permissions", + "created_at": "2023-03-03T23:59:02.152Z", + "_id": 1120 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.hilton.com/en/book/reservation/rooms/?ctyhocn=BHXMETW&arrivalDate=2023-11-10&departureDate=2023-11-13&groupCode=FSFFR&room1NumAdults=1&bm-verify=AAQAAAAG_____xuTfy9oVBc-NHTruiHjoPmh4My8kw5Wc1O5VFBwQDtC0Ev9tN-F2vRKrbjv6SlsqTdx0Qltt00irraYBCv5qrLLRYEg49cnOmawAVcIJOVZkgHfHgNB31P-NIZV6WhLVQgvwOmYAs-E1rDAZ6uEAUIsfzzvrdWOuiMGhJ4oiUNBxCf8q9KVWtNBSB-GoGGcTU0eZ9oLRRe2hNzTJ8mR9quN2edPT8_Pdt9KzrlQfi87oDhZHZElFPJHeG9Bh3_NerjGUglMx4-6n5gUIco2X09y-quM3jTWJoZOjqt3XV837g8oLyF3OUUPSlWoPw-LmSRXOxPWwa87pn5iVobKJXDJGy0UWKjMR3MWUV5noGnS51qnZlN9OywmQM0uQ4OHOIagQAuP6_OucVwYZRZsKjG8wx8LQgG-WpucuXjOT0jneEaXywbZz6AqyXMa3eZm74wxbpAOL50jUrJw7Fyz9qxzm5hxgBbSBeejBFpVFubj4w", + "created_at": "2023-03-07T08:58:48.620Z", + "_id": 1121 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.americangreetings.com/detail/ecards/birthday/michael-bolton-fun-birthday-song-ecard-personalize-lyrics/pn/prod3465608", + "created_at": "2023-03-09T13:02:45.952Z", + "_id": 1122 + }, + { + "visits": 7, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/W2xyZpH6JG93oYA/download/hbalan.mkv", + "created_at": "2023-03-09T13:16:50.799Z", + "_id": 1123 + }, + { + "visits": 20, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/aWEdnz9DfCkTgNA/download/server_install.sh", + "created_at": "2023-03-29T08:20:46.925Z", + "_id": 1124 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/PACK-Paving-Drainage-Grass-Protector/dp/B00EAJ5KKC/ref=asc_df_B00EAJ5KKC?tag=bingshoppinga-21&linkCode=df0&hvadid=79920808416432&hvnetw=o&hvqmt=e&hvbmt=be&hvdev=c&hvlocint=&hvlocphy=&hvtargid=pla-4583520384050565&psc=1", + "created_at": "2023-04-04T08:24:26.649Z", + "_id": 1125 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://pastebin.caliban.io/+xIivb.txt", + "created_at": "2023-04-08T08:54:56.836Z", + "_id": 1126 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.youtube.com/watch?v=3-UCsM02rKk", + "created_at": "2023-04-21T12:57:55.271Z", + "_id": 1127 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.amazon.co.uk/HomeHarmony%C2%AE-Storage-Bedside-Organizer-Adjustable/dp/B09XHYKNDZ/ref=sr_1_20?crid=23FGJY8XYSVWK&keywords=slim%2Bdrawer%2Bunit&qid=1681562118&sprefix=slim%2Bdrawer%2Bunit%2Caps%2C99&sr=8-20&th=1", + "created_at": "2023-04-23T10:11:28.381Z", + "_id": 1128 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/8dNcLSoXRMyKLf4", + "created_at": "2023-04-23T11:06:31.941Z", + "_id": 1129 + }, + { + "visits": 9, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Motorola-Edge-30-Neo-Magnetic-Gold/dp/B0BH8GT16F/ref=sr_1_53?crid=1OL335WBXIIU6&keywords=motorola%2Bedge%2B30%2Bneo%2Bcase&qid=1681838765&sprefix=motorola%2Bedge%2B30%2Bneo%2Bcase%2Caps%2C131&sr=8-53&th=1", + "created_at": "2023-04-24T17:48:03.071Z", + "_id": 1130 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.amazon.co.uk/AOKUMA-Motorola-Moto-Edge-Neo/dp/B0BG1CNFFN/ref=sr_1_3?crid=188UOLA3V6DHQ&keywords=motorola+edge+30+neo+screen+protector&qid=1682357705&sprefix=motorola+edge+30+neo+scree%2Caps%2C108&sr=8-3", + "created_at": "2023-04-24T17:53:37.253Z", + "_id": 1131 + }, + { + "visits": 23, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/f5X7nTEf3fkWp9L/download/generic_install.sh", + "created_at": "2023-05-25T08:54:23.574Z", + "_id": 1132 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/394643930943?hash=item5be29c7f3f:g:yQcAAOSwdkZkb1PR&amdata=enc%3AAQAIAAAA0EpOdh55oxBOUCYW9fSDd3vFBVN6JDbjc0R5OxmwwFoP1dpIN5mb%2BNf3ESY25xnCIrzpBwSe0jfM9b576sRMOavP8bJFD1f08Sy5IfOq0FBo8%2B0bD0GqkbvEZJqb4737MQjji%2F6sWDP0lz2fWzcYrJwqr7PwOZ8bff1BhfKOO9LW7g8JlYhnMdoqhiap7tT75vhXDxfijJiWNz7g8RxSewr1f7lj4m5hUL5k1isay9%2FY3twNQv15u2p89JGQhEUdYY%2FtC8O%2BwfuJzjuabsWfJ6w%3D%7Ctkp%3ABk9SR6r5ou-KYg", + "created_at": "2023-05-26T07:58:14.479Z", + "_id": 1133 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/304945993768?hash=item4700329828:g:sn4AAOSwDwdkaK8R&amdata=enc%3AAQAIAAAA0B%2Bo2BwzvgZmcL9a9Q1%2FXSVtS7%2BIFpNSDWYw9QTk8fx5XUJGUjPPhxyJHDeDBbbvj4eMcUNMoVZcrr4w1anmIm%2FwZCebWXl1XVp%2BimVel0mQklxD1UMV34D1DtYd2wno1ghR2NFKkyrF1UVgx8wM%2B6r6q%2BWQobRhllOxXYnmh8Pj%2FGuACJSAXOiP0KQVDifkZrGjDCmOh9ZI1mrjodFjmsFfQWu8M2UAdAFRSzP2Fz1mC%2BflhCcSGYW5TQmeLWvw71Oe6frV1HVjpxQZN5aHiCQ%3D%7Ctkp%3ABk9SR-yKm-2JYg", + "created_at": "2023-05-26T17:46:54.291Z", + "_id": 1134 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.amazon.co.uk/AOPO-Containers-Reusable-Preservation-Organization/dp/B0BD8Y1PYQ/ref=sr_1_31?crid=1G3R96CJD1S3F&keywords=food%2Bstorage%2Bairtight%2Bseal%2Btrays%2Bassorted&qid=1685362134&sprefix=food%2Bstorage%2Bairtigth%2Bseal%2Btrays%2Bassorted%2Caps%2C100&sr=8-31&th=1", + "created_at": "2023-05-30T20:16:12.656Z", + "_id": 1135 + }, + { + "visits": 6, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/354816472997?hash=item529cb5b7a5:g:HZwAAOSwqttkdPMK&amdata=enc%3AAQAIAAAA0CmfCbwkijxNzCgxb%2B2VlvQMmJSaMdm1BHo8Y0%2B%2F5vTyoQbqBkei5SlJHtfEHhTrWjkV6kA0pefxqcHaFfVzTgQZBkH%2BzrYDOVklijI9ub9gHqB8BgYdx5jGhOBxPHUeMWZqXgl7W8Ykg7Lk6d9x3aINdD9OyZMu8rndsp4JL6mkixnEVdrNnZw%2Bfv1lQhI42XX5SsU5cUdBNWpBzhPWS1Wl5QXL7Y1PxhSmIEmfC9ma8H%2FlmnDABYvbncfvT98HTiij6FbbiccrcDu%2F%2FfKe77s%3D%7Ctkp%3ABk9SR_yrj7GOYg", + "created_at": "2023-06-05T16:12:11.023Z", + "_id": 1136 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/304933100747?hash=item46ff6ddccb:g:-FIAAOSwUghkXMGB&amdata=enc%3AAQAIAAAA8Mkx7Te1rq9rbIWS1dYjaxzmzM4D9J5pDO7ueVoBVHGpfvcA9MG3bPOSkI3tQKN9IAhhhslYj61itlO4MMm8JsB4DMDW5VQo0l8ZPlFX6iAN4pA2PBtPwBDGQ5ehSVTqeHwYt80NeW2NiYw7umlgUJ6mPBDAyN18U5OX6vprhht%2F6Y4GuB0z%2B%2FZ0ID1DBab9hXZCcmcyPqvtPcMe8%2BGNcATJbwSKqjdju0DvoyFBA70EII2VuauCM4M5%2F6TNvUXfci3fNpN5NlDveHyESAQ%2F%2BaBZgkBf2zGLcPXLVvFJSxlNmMPCCpl4dI%2BPT42ARnvYyA%3D%3D%7Ctkp%3ABk9SR56Hn4SNYg", + "created_at": "2023-06-05T16:12:45.259Z", + "_id": 1137 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.instagram.com%2Freel%2FCs3pbLjJgV5%2F%3Figshid%3DMzRlODBiNWFlZA%253D%253D%26fbclid%3DIwAR2cQCx0vzAbYRp752l9mXzCi_CEZU7O1xtxAo3Q9dPofi50LqzYvklMK5A&h=AT0cywxkDgrbMxZOongVB63BTm0kPeBKxfCTd2cVhfwtXz-LSplnlWw2NFHSutpg4eeX1X1bysTPLVaaJ-kP8PluRyiO9k_C4VMLkbvKa-hGXtTRjJJqOzcD-M28phB0dA&__tn__=-UK-R&c[0]=AT1aunbap6G9YhtvKb9KPzmtRnZ4Qc_ljecTmw2-clXkyNJAtzj48Q75Hxkcx5b2Ovvkkgus2iOE_hzD8t24C8UKp1ukqOyMXe4asyZyQHLEKZ-jicb2bqtLMBQhFzbluyr5lroWAxgvS4r5D3bO-IrzCs5-__RueUmnf8V0iuaUXk1DBx2vjnDSIRzOI1RTwOkw5AKMEB-PVyw765o9JHiIQcMXqIwdp6V3cAkFjqXUR_wjuD_0LR9d", + "created_at": "2023-06-07T07:23:38.516Z", + "_id": 1138 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.debenhams.com/search/facet/categoryTaxonomy/T-Shirts/size/XXL?text=mantaray&sort=price-asc", + "created_at": "2023-08-11T14:26:19.482Z", + "_id": 1142 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.nexusmods.com/site/mods/631", + "created_at": "2023-10-22T12:32:33.116Z", + "_id": 1148 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Biunixin-Submersible-Sterilizer-Disinfection-Aquarium/dp/B086LJ4S73/ref=sr_1_25?crid=1IQ45LLYFUC58&keywords=waterproof%2BUV%2Blight%2Baquarium%2Blight&qid=1686504508&sprefix=waterproof%2Buv%2Blight%2Baquarium%2Blight%2Caps%2C110&sr=8-25&th=1", + "created_at": "2023-06-11T17:36:23.383Z", + "_id": 1139 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Security-Outdoor-270%C2%BAWide-Waterproof-Powered/dp/B083BS5ZDN/ref=sr_1_5?crid=2ET8ED08IWJPF&keywords=waterproof+submerge+UV+light+solar&qid=1686504394&sprefix=waterproof+submerge+uv+light+solar%2Caps%2C90&sr=8-5", + "created_at": "2023-06-11T17:36:59.217Z", + "_id": 1140 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/394661433927?hash=item5be3a79247:g:CJwAAOSwbVZkfMKk&amdata=enc%3AAQAIAAAA8Ogkz1G2SZBAZfNADB1sXIo5LxnoWPaZauyJEkOVPlZOlRGwSTxfvRGSdMjoM5ulUn1hibQ5i7GCAy2P2Qr9RjbF0JKsz0gN5WN%2FP1OyY8qk96kG40x3utW2YHeE%2FTC4yBGlr6v%2F4QPzBcY1UWNRE%2BRc22MK2%2Bz%2FmJ67d1swRwd6IicNfpzK2bad0i0dVBDoib8vk%2B4VG837dYU3mh3lgB139FGS86%2FeHBWplV54nlVsP1baCfGgSo3dmrgUG56YUl3oDEER68yLlbs6hUtNrETyHTDGdmGmfdY7an5V2T6vfX8irCItEDhVoWBW138uXA%3D%3D%7Ctkp%3ABk9SR46N3_mZYg", + "created_at": "2023-06-18T17:52:55.128Z", + "_id": 1141 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.debenhams.com/product/mantaray-textured-multi-stripe-notch-neck-tee_mdd07998?colour=blue", + "created_at": "2023-08-11T14:26:44.097Z", + "_id": 1143 + }, + { + "visits": 6, + "__v": 0, + "long_url": "https://web.archive.org/web/20220626153541/https://fanfusionuk.com/index.php/earpfusionuk/", + "created_at": "2023-08-12T15:37:33.054Z", + "_id": 1144 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://cloud.caliban.io/index.php/s/j7cMXMGLTwsiPQj/download/installer.sh", + "created_at": "2023-09-06T13:30:45.714Z", + "_id": 1145 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://bitbucket.org/mimetonyross/devops/downloads/server_install.sh", + "created_at": "2023-10-11T15:23:54.518Z", + "_id": 1146 + }, + { + "visits": 3, + "__v": 0, + "long_url": "http://www.mirrorservice.org/sites/cdimage.ubuntu.com/cdimage/xubuntu/releases/22.04/release/", + "created_at": "2023-10-17T08:17:09.661Z", + "_id": 1147 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://files.aiber.dev/f/d03ce2cc655a40ca9577/?dl=1", + "created_at": "2023-10-23T09:57:35.253Z", + "_id": 1149 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/DXK-Swimming-Mirrored-Protection-Bridgefor/dp/B083TXN75D/ref=sxin_16_pa_sp_search_thematic_sspa?content-id=amzn1.sym.381a8b2b-c260-43ab-89a0-4b68bc0bb8f7%3Aamzn1.sym.381a8b2b-c260-43ab-89a0-4b68bc0bb8f7&crid=1G6IS4P757SZB&cv_ct_cx=blue%2Bgoggles&keywords=blue%2Bgoggles&pd_rd_i=B083TXN75D&pd_rd_r=d2680c17-8db4-400a-8574-4ce8715bf06a&pd_rd_w=3aZqs&pd_rd_wg=gUxKN&pf_rd_p=381a8b2b-c260-43ab-89a0-4b68bc0bb8f7&pf_rd_r=NHKEFR9W1SCC1BBGCHT0&qid=1699118286&sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&sprefix=blue%2Bgoggl%2Caps%2C296&sr=1-146-348cbd3d-5326-49d0-9a61-a07d46fb35bd-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9zZWFyY2hfdGhlbWF0aWM&th=1", + "created_at": "2023-11-04T17:32:49.526Z", + "_id": 1150 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://nmcheck.gnome.org/check_network_status.txt", + "created_at": "2023-11-05T00:17:05.274Z", + "_id": 1151 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://chat.google.com/dm/nyTsbgAAAAE/3j6dtYOrZY8/3j6dtYOrZY8", + "created_at": "2023-11-09T22:07:21.422Z", + "_id": 1152 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://github.com/rbishop/dotfiles", + "created_at": "2023-11-14T20:38:42.474Z", + "_id": 1153 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://uk.frankgreen.com/collections/reusable-cups", + "created_at": "2023-12-12T15:46:43.811Z", + "_id": 1154 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://wordpress-157866-0.cloudclusters.net/wp-admin/sopol/", + "created_at": "2023-12-15T16:48:33.764Z", + "_id": 1155 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://wordpress-157866-0.cloudclusters.net/wp-admin/splsaudi/", + "created_at": "2023-12-16T14:58:19.281Z", + "_id": 1156 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/284656243353?hash=item4246d59299:g:PvgAAOSwcQZiDRJb&amdata=enc%3AAQAIAAAA0B0Q9VkkHrjYAAA7frjNxJ1Eps1Dti7FEen3874%2BHvToKYkqmBcOswfiXfr2RA6CNx%2F%2BkLGX5wXoW9zD0OCBCT7F08VPe7A3e3F5E%2B%2BmDVPaAMsKTrxeWAztpeKDTA%2F9Zc8JVV9vyJ8qXAP%2BzdozQEzKLd7TAZ1cVSThYoXDSJZWgwj1DctzdwHDWXaZiq1K7aNrOTh%2Fi8cHvV5aVjWd2pNcE6lIpCUzBEjhTzCI0k%2F2WJSI4ounld%2BOLEHlMibKjnu0iAmabq1bsDgJii4holI%3D%7Ctkp%3ABk9SR6SrvciVYw", + "created_at": "2023-12-27T18:41:31.588Z", + "_id": 1157 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Miunana-Clothes-Accessories-Sweater-Fashion/dp/B0B5QSTFC5?ref_=ast_sto_dp", + "created_at": "2024-01-01T20:28:57.151Z", + "_id": 1158 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/STORMGUARD-02SR6630914LWO-Internal-Draught-Excluder-Light/dp/B01CR7TLJO/ref=sr_1_50?crid=2C8O91WK4MCI9&keywords=stormguard%2Bunder%2Bdoor%2Bseal&qid=1704376804&sprefix=stormguard%2Bunder%2Bdoor%2Bseal%2Caps%2C145&sr=8-50&th=1", + "created_at": "2024-01-04T14:02:23.148Z", + "_id": 1159 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/VASAGLE-Storage-Organiser-Cloakroom-LBS200T16/dp/B0C7V77SGN?ref_=ast_sto_dp&th=1", + "created_at": "2024-01-04T14:11:24.023Z", + "_id": 1160 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.mixcloud.com/djpaulette-paulettegoesbang/", + "created_at": "2024-01-18T23:38:09.620Z", + "_id": 1161 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://pixeldrain.com/u/9kZvnTMs", + "created_at": "2024-01-20T22:55:32.317Z", + "_id": 1162 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Walfos-Silicone-Trivets-Pots-Pans/dp/B09L5VZY4C?ref_=ast_sto_dp&th=1", + "created_at": "2024-01-21T16:22:14.391Z", + "_id": 1163 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Tongboke-Necklace-Earrings-Compartments-Organization/dp/B0CLVC1C4H/ref=sr_1_98_sspa?crid=1TJI6SCW96F12&keywords=charm%2Bbracelet%2Bjewellery%2Bbox&qid=1706294723&sprefix=charm%2Bbracelet%2Bjewellery%2Bbox%2Caps%2C81&sr=8-98-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9tdGY&th=1", + "created_at": "2024-01-26T18:57:46.573Z", + "_id": 1164 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://imgur.com/gallery/Ke6WQyM", + "created_at": "2024-01-29T22:12:30.375Z", + "_id": 1165 + }, + { + "visits": 22, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Funko-76672/dp/B0C5Z9NGZ6/ref=sxin_34_hcs-la-eu-tqprod?content-id=amzn1.sym.3352d273-775b-4853-b97b-53b436a94d9e%3Aamzn1.sym.3352d273-775b-4853-b97b-53b436a94d9e&crid=1HGE8M9FSUEJQ&cv_ct_cx=funko+pop+diamond&keywords=funko+pop+diamond&pd_rd_i=B0C5Z9NGZ6&pd_rd_r=c1e4866b-6f20-4c70-9af9-1a2255c0f6b2&pd_rd_w=LsVeK&pd_rd_wg=Mxosk&pf_rd_p=3352d273-775b-4853-b97b-53b436a94d9e&pf_rd_r=DEW8ETRK6NPK1P64F1KG&qid=1706642739&sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&sprefix=funko+pop+diamond%2Caps%2C92&sr=1-2-ca1238e8-4946-4218-b362-7c3431ea8df6", + "created_at": "2024-01-30T19:27:27.469Z", + "_id": 1166 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://pixeldrain.com/u/6Q5f1fCZ", + "created_at": "2024-02-02T16:25:06.856Z", + "_id": 1167 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.zoopla.co.uk/for-sale/details/66683399/?search_identifier=7639884fba77d98e66eaf98bbd3d7ec008a8233dc4132d2238f0f0dc2cda522b", + "created_at": "2024-02-21T23:15:49.943Z", + "_id": 1168 + }, + { + "visits": 6, + "__v": 0, + "long_url": "https://www.cv-library.co.uk/job/221119726/Senior-Civil-Technician?s=104217&jbe_link_clicked=html_alert-1_one-day-results_expanded_job-6_full-details&utm_source=system&utm_medium=email&candidate_apply_only=MjcwMjExODQ6MTcwOTI4NzE0NjrW0_GqwMevSj1T3g5Gft8eLdSC0OtppA6Y0OgwymKvtA&utm_campaign=First_JBE&utm_content=eee5a338-8b6a-4bed-9ec4-b9d8b6f3bd15&utm_term=expanded-job-6", + "created_at": "2024-02-23T10:06:53.596Z", + "_id": 1169 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://dasfasdgasdg.com/", + "created_at": "2024-03-12T21:07:38.573Z", + "_id": 1170 + }, + { + "visits": 0, + "__v": 0, + "long_url": "https://fitnessprogramer.com/exercise/scott-press/", + "created_at": "2024-04-08T11:05:20.728Z", + "_id": 1171 + }, + { + "visits": 5, + "__v": 0, + "long_url": "https://www.facebook.com/groups/830789737328951/?multi_permalinks=1734019650339284&hoisted_section_header_type=recently_seen&__cft__[0]=AZXkl9eiHZwH2kbGrHULUEzvh_8Yw1TQZ3Xv24ky86kyEKuKG8pr6OQdSQXxWlw735mKVebs3aEWeaAuEewQghBCbjPBATu_uIhlOLii5jS-oNs1otVPcKpMAjp_c4hjVUCloQnkqou4D2dmKqXrnmmLrnYQmfjCJ3SgpQxWCdhnxXnM2BdgD5S4O0k2BONyMgisSYC25qUzJgXmd-RAW7EeyhNYneayOPFwFkmiZHNkNQ&__tn__=%2CO%2CP-R", + "created_at": "2024-04-27T20:04:39.833Z", + "_id": 1172 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://voca.ro/1g9dhzauNp7V", + "created_at": "2024-05-07T15:40:45.905Z", + "_id": 1173 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://voca.ro/1gPgEYIwMLgF", + "created_at": "2024-05-07T16:08:00.814Z", + "_id": 1174 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://browser.geekbench.com/v6/cpu/6095709", + "created_at": "2024-05-14T14:35:03.009Z", + "_id": 1175 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://browser.geekbench.com/v6/cpu/6096251", + "created_at": "2024-05-14T15:13:18.943Z", + "_id": 1176 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://track.dpdlocal.co.uk/parcels/15976946448308*20588", + "created_at": "2024-05-14T15:32:17.008Z", + "_id": 1177 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://browser.geekbench.com/v6/cpu/6116525", + "created_at": "2024-05-15T20:02:24.643Z", + "_id": 1178 + }, + { + "visits": 1, + "__v": 0, + "long_url": "http://as-hls-ww-live.akamaized.net/pool_904/live/ww/bbc_radio_five_live/bbc_radio_five_live.isml/bbc_radio_five_live-audio%3d48000.norewind.m3u8", + "created_at": "2024-05-22T11:46:59.543Z", + "_id": 1179 + }, + { + "visits": 25, + "__v": 0, + "long_url": "https://www.ebay.co.uk/itm/145780050727?itmmeta=01HYGMGMZXV6T75MX3XTN4258E&hash=item21f12b0b27:g:J4MAAOSwFRRlzi15&itmprp=enc%3AAQAJAAAA0OOalE%2BjUYicDIOpSswzXO%2BltnNwryBP4Zi3OE5no66OAJfI0sbYabT%2Fc%2BDETcqrg7ozEpqhbnh3tEUL05rFa81pVFHw84uwwZe6WM2RYxF%2B8ba8OHGC2fc2eGrbW7XZRZkz5EQMnEuTRBRVzkFdTIkpESqy2jBBzASDhuLGmANJr%2BrbWdKIxRyZ4r78fyKz6j9chZkSA5A9uQbU3S%2BTwXlA%2FEwklmGtBdLN055P53PHN4OETiVsOZIZwf53EXEDUC8Sj%2BrPmukXqx7n%2FsYmzA4%3D%7Ctkp%3ABk9SR4TQwpT0Yw", + "created_at": "2024-05-22T17:12:21.048Z", + "_id": 1180 + }, + { + "visits": 124, + "__v": 0, + "long_url": "https://iptv-org.github.io/iptv/countries/uk.m3u", + "created_at": "2024-05-23T20:48:01.429Z", + "_id": 1181 + }, + { + "visits": 122, + "__v": 0, + "long_url": "https://iptv-org.github.io/iptv/countries/us.m3u", + "created_at": "2024-05-23T21:03:09.245Z", + "_id": 1182 + }, + { + "visits": 9, + "__v": 0, + "long_url": "https://www.amazon.co.uk/UK-GROW-Pebbles-hydroponic-Substrate/dp/B0B9Y9SXBJ/ref=sr_1_7?crid=XTU2PLPE962R&dib=eyJ2IjoiMSJ9.DCuLOuWjlO8Z0uX4KpLa1vL9ao8ZPvyqbgAzJNpQsvm_1TseLO8VtjAv2RohMi-AQA-mipTKMK29JzhWH9TwyJ_yMZXwjhaDYQCsJ0N1ZXHUwBBfViaInbno_hpOKIXd-vPboBNMwZX-9YDOoleHViZDiMrW57M-zfszWv1If4nOrIIbuxkVJfm6dOOo6MuOY5DkxbmHlqD6DwAdngil93dzmPN7zbYuXpqjhM00sn4Yb_v7dabhHib5EC1_fA_xYtWfSSZ1ogEapGmK5fIfEqu5QVR5dzkdqq6VNziGnXQ.aZ3dKzDNFOYk8rFFb0SXfhuw7ZFxugeTXLP_z4tzjak&dib_tag=se&keywords=clay%2Bpebbles&qid=1716656345&sprefix=clay%2Bpe%2Caps%2C93&sr=8-7&th=1", + "created_at": "2024-05-25T20:11:13.557Z", + "_id": 1183 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.amazon.co.uk/iklestar-stackable-Detachable-Organiser-Practical/dp/B0CH4MVT17/ref=sr_1_4_sspa?crid=2VWD01G8OLTR3&dib=eyJ2IjoiMSJ9.vLscRxJuepuo_WzScR5OchjdS37CPHEFU_FgfneabCctWXgPp4z9w0GOkRddEzPMKmvgNwQXUJ-Dg5avFMPEghR8TJnIAcwUetHg9WlHF5ZGB2vnd71qE18uRFFwTxlvLb_ykjdp_Toa0WIQMPa0NdE4OlxAJStqZxYMM-_SrEQ3YiOQL1lUZ0gW-G1ofQoUqM3fEP9fy1W7cQ9M77VNp09wCoLATWB0gMGKT-fV43aG4Xs5Fm2sp7dW5OsaTExMstwLUC4StitjGi9Je_uW_egpHV5_YfdRa7r4XjgGXQc.G-bxksyNlFHgdep13W9_MfJwMS-BQ744rOBOyo0cTek&dib_tag=se&keywords=reusable%2Bbottle%2Borganiser&qid=1716669614&sprefix=reusable%2Bbottle%2Borginiser%2Caps%2C86&sr=8-4-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&th=1", + "created_at": "2024-05-25T21:08:08.857Z", + "_id": 1184 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.civilservicejobs.service.gov.uk/csr/index.cgi?SID=cGFnZWFjdGlvbj12aWV3dmFjYnlqb2JsaXN0JnVzZXJzZWFyY2hjb250ZXh0PTgzMjU2NjM2Jm93bmVyPTUwNzAwMDAmam9ibGlzdF92aWV3X3ZhYz0xOTExMTEyJnNlYXJjaHNvcnQ9Z2VvZGlzdGFuY2UmcGFnZWNsYXNzPUpvYnMmc2VhcmNocGFnZT0xJm93bmVydHlwZT1mYWlyJnJlcXNpZz0xNzE3NjAyMzY3LTc1ZWUxYjIyZjc0Nzc5ZmNkZTI2MDdiMTMxOTcxNTdhY2M2ZWM1YmE=", + "created_at": "2024-06-05T15:51:34.047Z", + "_id": 1185 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.saltyoldgeek.com/posts/ollama-llama3-openwebui/", + "created_at": "2024-06-07T10:06:17.804Z", + "_id": 1186 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://dev.to/berk/running-ollama-and-open-webui-self-hosted-4ih5", + "created_at": "2024-06-07T11:12:09.470Z", + "_id": 1187 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://web.archive.org/web/20170704102514/https://play.google.com/store/apps/details?id=org.urbian.android.tools.vintagecam", + "created_at": "2024-06-22T16:47:05.996Z", + "_id": 1188 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Exploding-Minions-Card-Game-Family-Friendly/dp/B091F4DYQN/ref=sr_1_5?crid=27TBZ6XCT5T3Q&dib=eyJ2IjoiMSJ9.UAJIButjfWG_jYm-5RLXWBUTa_PH_NDZSgb2XbDkBxCulbxUMUTJuW2xqM_g7COLmj-Gu2rOkl37EYKgUEo2hm-bxcvyIFCEBXhL1rVLR8Oj9mrHhMIYZhX75Z_dzFEnvr58AaDVSXWJdcTr_QDYZ-ilxdCwp2vExfQ2gqMorNVUU9ZkNOXuNrBDYT48SZ_qnKIrYjxiciG1uo1OKYjN3IkPQj2JoqWVysGYVHZwOvUQ_K5OWA1aMMx-OfopQRpWD-EHhbkrsYuSf68m2KO5LaOrcIFJ0Y2qqicx_Xujps4.Og6pJ1ntg1GvJjyjle9geDKcHhOIqHLfCsaB9Xar0rw&dib_tag=se&keywords=exploding%2Bminions&qid=1721240497&sprefix=exploding%2Bminions%2Caps%2C156&sr=8-5&th=1", + "created_at": "2024-07-17T18:22:23.942Z", + "_id": 1189 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/GHOSTS-Archives-bestseller-companion-television/dp/1526669900/ref=sr_1_4?crid=1G5YAQV1QMUTE&dib=eyJ2IjoiMSJ9.gUyjSVa7g2HrtEyQ1tKyS7_Oc7KvWrspD9msR4LhwtTtmMjd3duhZ46Xh7pqSEU2VQ_8-slLpCH-qT-2Gkeu4ymIGgl_2ekaMGxlEuhJLPQL_Qcy8roNWgkw8YoFp3bK1nFKD4cN31p1e5y4vtDbfj1TL_EwyBsB26xyO9pwh0fMzLECDf5x5WnRTTzO1n113ABflnBKQw5f5POS2U_5P7WNi_aF9p5VFxh-ULm3u20.pV9OQmE5pkRF66AdBj2Pf2s3ZAt5fz4dVfvsYoH0L9g&dib_tag=se&keywords=ghosts+book&qid=1721241017&sprefix=ghosts%2Caps%2C144&sr=8-4", + "created_at": "2024-07-17T18:31:27.562Z", + "_id": 1190 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Despicable-Minions-Transformation-Transform-Training/dp/B0CCX4FP6J/ref=sr_1_15?crid=2KB6XVQV91QH6&dib=eyJ2IjoiMSJ9.dVIfBmoepILsuCxh-YMS5YNiGDbBqfqlcrvA_ZAnHPXFLEA4hYcSDzFiGXvLVgBPdF2cNrFYxnulv6xHoTWy93QzBkCs3dumOdM34N425EE_MPFYXPYzDasOnwAc2uG2m9vB6n20GDprj0Rcu1Bne58Fm0QEZfsHCCPuwX3Uv3MCyTwb0vq54GmSWrcZRguatBNCX3N0iq9zay4C4b97w2YuDGlpih8CpzLTxBGaCX8.jF1yf-VS5WlTdxHTPfR-wE2SnP9bnoOQhjDgf2eSxYo&dib_tag=se&keywords=despicable+me+minions&qid=1721239711&sprefix=despicable+me+minions%2Caps%2C159&sr=8-15", + "created_at": "2024-07-17T18:44:35.592Z", + "_id": 1191 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Zombaes-Forever-Abandoned-Customisable-Accessories/dp/B0BRQY47FZ/ref=sr_1_1?crid=NLKSILI30BQQ&dib=eyJ2IjoiMSJ9.drQtJBjbCCaGTL5187BbEGq_WzHIuSgO3bl_aFWUoucv1UYsrwrfh0Ic8WhaUAoRGg0imiv9bDpNE5F9Ln6dpadtr2idZXPSrnHDRCP-_haEDw02z2RvTAIlU-zoL-K1nPWMQ2fYso8RUFt_xaACS-KPfaD1uGRrutCBmHz--CO1ViJtV8QJw5EuE4L8B09fix7QhI8TB58BXL013qMX4-K7Ru8WLBBgCIDB15BcTho.4b3HHX8O43TGd63oDxANOGc1rEytHbvLrIJh9hPTWeQ&dib_tag=se&keywords=zombaes&qid=1721241804&sprefix=zombaes%2Caps%2C206&sr=8-1", + "created_at": "2024-07-17T18:50:54.779Z", + "_id": 1192 + }, + { + "visits": 4, + "__v": 0, + "long_url": "https://f.caliban.io/f/b86e5574f382411289f1/?dl=1", + "created_at": "2024-07-27T16:31:31.425Z", + "_id": 1193 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Kikuo-Drawstring-Multi-Functional-Resistance-Accessories/dp/B09K53HRDT/ref=sr_1_4?crid=RCFOREM0N9Z0&dib=eyJ2IjoiMSJ9.mLGlvz0mhoGQ7Au-d8iLguGloWK4NLhka6ca-p8muDVXZuqykJNvjT6_GR1FImF7J60hOZuvdAVnhzObF0E67Wcx31vTusOQ9umKU01TvI9eNbZ_IB_y53OJEsZedYdlljRn41tRY7xHgcDyIkyBxOL85IC1gHQetzAQi6XCdAsq0SkEMFhBTJBo5xQwuUueQH0E0PgkureY2WAyFgM0ZXVtU4xJpiw7BRfbQxxq-2urpeXzSHkatawS1M1KNv-y_YLH1dyEq1fycXHX0rbUr4z13yBcr6rOmowYTNGKnIU.4JgCOhvdqy9AKLeh_TgOFT4LE3lJetkiV6kgaj85URE&dib_tag=se&keywords=kikuo+twist+workout+exercise+plate&qid=1722272392&sprefix=kikuo+twist+workout+exercise+plate%2Caps%2C74&sr=8-4", + "created_at": "2024-07-29T17:02:06.629Z", + "_id": 1194 + }, + { + "visits": 2, + "__v": 0, + "long_url": "https://www.amazon.co.uk/Dirtbusters-Ultrasonic-Cleaning-Solution-Jewellery/dp/B017Z56F6U/ref=sr_1_6?crid=YFWBDN27FHYE&dib=eyJ2IjoiMSJ9.pYEQbwpP5TaF25gBfMbQC-t-5HDiTQcMryN05F-pyvtyPItpvJ86ppbNzsP2Q4RNKLEWWPkuk3ZcSDzNowVuRs25qXtcQJEEySmWpZlyPlDVFJ4soYfGXnB-RFmBNVfuO8k5uy1SPpkVpr3wcxTsznv-KgFmjPT87L85j1vsp_FEUL9aU7Wd7p5okd9Q7HGN_a2Yy2c4tLkqRdgOU0uOaqxzfEU88AlSNTgOYD-4z11OBywNzdIIOL2WN0kli2XsnTa1_Io0QXxVW8-FUWJLcNo9g4MUS7q26ydInI0FAAw.Wn8CB2N81Kpiihj-LYspPRJbbU7xMI4OhFyE14kn-pc&dib_tag=se&keywords=sonic%2Bjewellery%2Bcleaner%2Bsolution&qid=1722272567&sprefix=sonic%2Bjewellery%2Bcleaner%2Bsoulution%2Caps%2C83&sr=8-6&th=1", + "created_at": "2024-07-29T17:04:12.835Z", + "_id": 1195 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://www.cineworld.co.uk/static/en/uk/offers-and-promotions/deadpool-and-wolverine-merch", + "created_at": "2024-07-31T17:04:40.193Z", + "_id": 1196 + }, + { + "visits": 1, + "__v": 0, + "long_url": "https://www.odeon.co.uk/offers-and-competitions/deadpool-and-wolverine-collectors-combo/", + "created_at": "2024-07-31T17:05:02.342Z", + "_id": 1197 + }, + { + "visits": 3, + "__v": 0, + "long_url": "https://funkoeurope.com/products/jack-sparrow-pirates-of-the-caribbean?nosto_source=cmp&nosto=1900055919", + "created_at": "2024-07-31T17:24:03.798Z", + "_id": 1198 + } +] diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..85e1eb8 --- /dev/null +++ b/go.mod @@ -0,0 +1,80 @@ +module nurl + +go 1.22.4 + +require github.com/pocketbase/pocketbase v0.22.20 + +require ( + github.com/AlecAivazis/survey/v2 v2.3.7 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.31 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.30 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 // indirect + github.com/aws/smithy-go v1.20.4 // indirect + github.com/disintegration/imaging v1.6.2 // indirect + github.com/domodwyer/mailyak/v3 v3.6.2 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/fatih/color v1.17.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.5 // indirect + github.com/ganigeorgiev/fexpr v0.4.1 // indirect + github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect + github.com/goccy/go-json v0.10.3 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-sqlite3 v1.14.22 // indirect + github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect + github.com/ncruces/go-strftime v0.1.9 // indirect + github.com/pocketbase/dbx v1.10.1 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/spf13/cast v1.7.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect + go.opencensus.io v0.24.0 // indirect + gocloud.dev v0.39.0 // indirect + golang.org/x/crypto v0.26.0 // indirect + golang.org/x/image v0.19.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.24.0 // indirect + golang.org/x/term v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect + golang.org/x/time v0.6.0 // indirect + golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect + google.golang.org/api v0.194.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect + google.golang.org/grpc v1.65.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect + modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect + modernc.org/libc v1.55.3 // indirect + modernc.org/mathutil v1.6.0 // indirect + modernc.org/memory v1.8.0 // indirect + modernc.org/sqlite v1.32.0 // indirect + modernc.org/strutil v1.2.0 // indirect + modernc.org/token v1.1.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..597249b --- /dev/null +++ b/go.sum @@ -0,0 +1,360 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= +cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= +cloud.google.com/go/auth v0.9.1 h1:+pMtLEV2k0AXKvs/tGZojuj6QaioxfUjOpMsG5Gtx+w= +cloud.google.com/go/auth v0.9.1/go.mod h1:Sw8ocT5mhhXxFklyhT12Eiy0ed6tTrPMCJjSI8KhYLk= +cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= +cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= +cloud.google.com/go/iam v1.1.13 h1:7zWBXG9ERbMLrzQBRhFliAV+kjcRToDTgQT3CTwYyv4= +cloud.google.com/go/iam v1.1.13/go.mod h1:K8mY0uSXwEXS30KrnVb+j54LB/ntfZu1dr+4zFMNbus= +cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs= +cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= +github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= +github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8= +github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= +github.com/aws/aws-sdk-go-v2/config v1.27.31 h1:kxBoRsjhT3pq0cKthgj6RU6bXTm/2SgdoUMyrVw0rAI= +github.com/aws/aws-sdk-go-v2/config v1.27.31/go.mod h1:z04nZdSWFPaDwK3DdJOG2r+scLQzMYuJeW0CujEm9FM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.30 h1:aau/oYFtibVovr2rDt8FHlU17BTicFEMAi29V1U+L5Q= +github.com/aws/aws-sdk-go-v2/credentials v1.17.30/go.mod h1:BPJ/yXV92ZVq6G8uYvbU0gSl8q94UB63nMT5ctNO38g= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 h1:yjwoSyDZF8Jth+mUk5lSPJCkMC0lMy6FaCD51jm6ayE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12/go.mod h1:fuR57fAgMk7ot3WcNQfb6rSEn+SUffl7ri+aa8uKysI= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15 h1:ijB7hr56MngOiELJe0C5aQRaBQ11LveNgWFyG02AUto= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15/go.mod h1:0QEmQSSWMVfiAk93l1/ayR9DQ9+jwni7gHS2NARZXB0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 h1:mx2ucgtv+MWzJesJY9Ig/8AFHgoE5FwLXwUVgW/FGdI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 h1:zCsFCKvbj25i7p1u94imVoO447I/sFv8qq+lGJhRN0c= +github.com/aws/aws-sdk-go-v2/service/sso v1.22.5/go.mod h1:ZeDX1SnKsVlejeuz41GiajjZpRSWR7/42q/EyA/QEiM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 h1:SKvPgvdvmiTWoi0GAJ7AsJfOz3ngVkD/ERbs5pUnHNI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5/go.mod h1:20sz31hv/WsPa3HhU3hfrIet2kxM4Pe0r20eBZ20Tac= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 h1:OMsEmCyz2i89XwRwPouAJvhj81wINh+4UK+k/0Yo/q8= +github.com/aws/aws-sdk-go-v2/service/sts v1.30.5/go.mod h1:vmSqFK+BVIwVpDAGZB3CoCXHzurt4qBE8lf+I/kRTh0= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= +github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= +github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= +github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCOBXMn8= +github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= +github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= +github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k= +github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ozzo/ozzo-validation/v4 v4.3.0 h1:byhDUpfEwjsVQb1vBunvIjh2BHQ9ead57VkAEY4V+Es= +github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= +github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= +github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= +github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61 h1:FwuzbVh87iLiUQj1+uQUsuw9x5t9m5n5g7rG7o4svW4= +github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61/go.mod h1:paQfF1YtHe+GrGg5fOgjsjoCX/UKDr9bc1DoWpZfns8= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= +github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pocketbase/dbx v1.10.1 h1:cw+vsyfCJD8YObOVeqb93YErnlxwYMkNZ4rwN0G0AaA= +github.com/pocketbase/dbx v1.10.1/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= +github.com/pocketbase/pocketbase v0.22.20 h1:yUkhO5bTPWlzD4ZK6EQlS4R3AcHKDlBD+DxxU2BR83I= +github.com/pocketbase/pocketbase v0.22.20/go.mod h1:Cw5E4uoGhKItBIE2lJL3NfmiUr9Syk2xaNJ2G7Dssow= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= +go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= +go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= +go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= +go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= +go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +gocloud.dev v0.39.0 h1:EYABYGhAalPUaMrbSKOr5lejxoxvXj99nE8XFtsDgds= +gocloud.dev v0.39.0/go.mod h1:drz+VyYNBvrMTW0KZiBAYEdl8lbNZx+OQ7oQvdrFmSQ= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.19.0 h1:D9FX4QWkLfkeqaC62SonffIIuYdOk/UE2XKUBgRIBIQ= +golang.org/x/image v0.19.0/go.mod h1:y0zrRqlQRWQ5PXaYCOMLTW2fpsxZ8Qh9I/ohnInJEys= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= +golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 h1:LLhsEBxRTBLuKlQxFBYUOU8xyFgXv6cOTp2HASDlsDk= +golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +google.golang.org/api v0.194.0 h1:dztZKG9HgtIpbI35FhfuSNR/zmaMVdxNlntHj1sIS4s= +google.golang.org/api v0.194.0/go.mod h1:AgvUFdojGANh3vI+P7EVnxj3AISHllxGCJSFmggmnd0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20240814211410-ddb44dafa142 h1:oLiyxGgE+rt22duwci1+TG7bg2/L1LQsXwfjPlmuJA0= +google.golang.org/genproto v0.0.0-20240814211410-ddb44dafa142/go.mod h1:G11eXq53iI5Q+kyNOmCvnzBaxEA2Q/Ik5Tj7nqBE8j4= +google.golang.org/genproto/googleapis/api v0.0.0-20240812133136-8ffd90a71988 h1:+/tmTy5zAieooKIXfzDm9KiA3Bv6JBwriRN9LY+yayk= +google.golang.org/genproto/googleapis/api v0.0.0-20240812133136-8ffd90a71988/go.mod h1:4+X6GvPs+25wZKbQq9qyAXrwIRExv7w0Ea6MgZLZiDM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed h1:J6izYgfBXAI3xTKLgxzTmUltdYaLsuBxFCgDHWJ/eXg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ= +modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= +modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y= +modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s= +modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= +modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= +modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw= +modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= +modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a h1:CfbpOLEo2IwNzJdMvE8aiRbPMxoTpgAJeyePh0SmO8M= +modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= +modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= +modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= +modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= +modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= +modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= +modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU= +modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= +modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= +modernc.org/sqlite v1.32.0 h1:6BM4uGza7bWypsw4fdLRsLxut6bHe4c58VeqjRgST8s= +modernc.org/sqlite v1.32.0/go.mod h1:UqoylwmTb9F+IqXERT8bW9zzOWN8qwAIcLdzeBZs4hA= +modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= +modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/import/importer.go b/import/importer.go new file mode 100644 index 0000000..7e2351e --- /dev/null +++ b/import/importer.go @@ -0,0 +1,47 @@ +package _import + +import ( + "encoding/json" + "io" + "log" + "os" + "time" +) + +type Data struct { + Visits int64 `json:"visits"` + LongUrl string `json:"long_url"` + CreatedAt time.Time `json:"created_at,omitempty"` + Id int64 `json:"_id"` +} + +func DoImport() []Data { + + jsonFile, err := os.Open("./data.json") + // if we os.Open returns an error then handle it + if err != nil { + log.Fatalln(err) + } + log.Println("Successfully Opened data.json") + // defer the closing of our jsonFile so that we can parse it later on + defer jsonFile.Close() + + byteValue, _ := io.ReadAll(jsonFile) + + data := []Data{} + + json.Unmarshal(byteValue, &data) + + /* for _, v := range data { + + log.Println("v", v) + errr := postImport(app, v) + + if errr != nil { + log.Fatalln(errr) + } + + } + */ + return data +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..791ce61 --- /dev/null +++ b/main.go @@ -0,0 +1,334 @@ +package main + +import ( + "encoding/json" + "errors" + "github.com/labstack/echo/v5" + "github.com/pocketbase/dbx" + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/apis" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/models" + "log" + "net/http" + "nurl/base58" + _import "nurl/import" + "os" + "time" +) + +var ( + Version string + Build string + Webhost = "https://nurl.co/" +) + +type Count struct { + Count int `json:"count" db:"count"` +} + +type UrlRequest struct { + Url string `json:"url"` +} + +type Data struct { + Visits int64 `json:"visits" db:"visits"` + LongUrl string `json:"long_url" db:"long_url"` + CreatedAt time.Time `json:"created_at,omitempty" db:"created_at"` + Id int64 `json:"_id" db:"_id"` +} + +type ShortUrl struct { + ShortUrl string `json:"shortUrl"` +} + +func main() { + log.Printf("GO-PB-NURL v%+v build %+v\n\n", Version, Build) + + app := pocketbase.New() + + app.OnRecordBeforeCreateRequest("urls").Add(func(e *core.RecordCreateEvent) error { + log.Println("OnRecordBeforeCreate") + + count := Count{} + err := app.Dao().DB().NewQuery("select count(*) as count from urls").One(&count) + if err != nil { + log.Println(err) + + } + + log.Println("count:", count.Count) + count.Count++ + + e.Record.Set("_id", count.Count) + + log.Println("Record", e.Record) + + return nil + }) + + app.OnAfterBootstrap().Add(func(e *core.BootstrapEvent) error { + // log.Println(e.App) + + return nil + + collection, err := e.App.Dao().FindCollectionByNameOrId("urls") + if err != nil { + log.Println(err) + return err + } + + data := _import.DoImport() + + // log.Println("Import", data) + + for _, v := range data { + + log.Println("v", v) + record := models.NewRecord(collection) + + record.Set("long_url", v.LongUrl) + record.Set("visits", v.Visits) + record.Set("_id", v.Id) + record.Set("created_at", v.CreatedAt) + + log.Println(record) + + if err := app.Dao().SaveRecord(record); err != nil { + log.Println("ERROR!! postshort save NewRecord") + log.Println(err) + + return err + } + + } + + return nil + }) + + // serves static files from the provided public dir (if exists) + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { + e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS("./pb_public"), false)) + e.Router.GET("/build/*", apis.StaticDirectoryHandler(os.DirFS("./pb_public/build"), false)) + + e.Router.GET("/api/v1/list", func(c echo.Context) error { + + apis.ActivityLogger(app) + + getList() + + return nil + + }) + + e.Router.POST("/api/v1/shorten", func(c echo.Context) error { + + apis.ActivityLogger(app) + + postShort(c, app) + + return nil + }) + + e.Router.GET("/:encoded", func(c echo.Context) error { + + apis.ActivityLogger(app) + + getEncoded(c, app) + + return nil + + }) + + e.Router.GET("/!/hb", func(c echo.Context) error { + + apis.ActivityLogger(app) + + return c.NoContent(200) + + }) + + return nil + }) + + if err := app.Start(); err != nil { + log.Fatal(err) + } else { + log.Println("Nurl is running...") + + } + +} + +func getList() { + log.Println("Getting list") +} + +func getIdByUrl(url string, app *pocketbase.PocketBase) (int64, error) { + + recordData := &Data{} + + log.Println("look for:", url) + + dberr := app.Dao().DB().Select("_id").From("urls").Where(dbx.NewExp("long_url is {:url}", dbx.Params{"url": url})).One(&recordData) + + log.Println(recordData) + + if dberr == nil { + log.Println("Url found", recordData.Id) + + return recordData.Id, nil + } else { + return -1, dberr + } +} + +func saveUrl(url string, app *pocketbase.PocketBase) (string, error) { + count := Count{} + err := app.Dao().DB().NewQuery("select count(*) as count from urls").One(&count) + if err != nil { + log.Println(err) + + } + + count.Count += 2000 // Base everything from 2000 now + count.Count++ + + collection, err := app.Dao().FindCollectionByNameOrId("urls") + if err != nil { + log.Println(err) + return "", err + } + + record := models.NewRecord(collection) + + record.Set("long_url", url) + record.Set("visits", 0) + record.Set("_id", count.Count) + record.Set("created_at", time.Now()) + + if err := app.Dao().SaveRecord(record); err != nil { + log.Println("ERROR!! postshort save NewRecord") + log.Println(err) + + return "", err + } + + shortCode := base58.Encode(count.Count) + log.Println("Return", shortCode) + return shortCode, nil +} + +func postShort(c echo.Context, app *pocketbase.PocketBase) error { + log.Println("Posting short") + + j := GetJSONRawBody(c) + + url := j.Url + + log.Println("url", url) + + if url == "" { + return c.JSON(http.StatusBadRequest, "url is null") + } + + id, err := getIdByUrl(url, app) + + if err != nil { + log.Println("post getIdByUrl error", err) + } else { + log.Println("id:", id) + + if id != -1 { + + shortUrl := ShortUrl{} + + shortUrl.ShortUrl = Webhost + base58.Encode(int(id)) + + return c.JSON(http.StatusOK, shortUrl) + } + + } + + // todo: check that the url doesn't already exist in the db and return it if it does + // todo: breakout working in other functions. ie: getUrl:done, saveUrl:done + + shortCode, err := saveUrl(url, app) + + if err != nil { + log.Println("post saveUrl error", err) + } else { + log.Println("shortCode:", shortCode) + + if shortCode != "" { + + shortUrl := ShortUrl{} + + shortUrl.ShortUrl = Webhost + shortCode + + return c.JSON(http.StatusOK, shortUrl) + } + + } + + return c.NoContent(200) + +} + +func getEncoded(c echo.Context, app *pocketbase.PocketBase) error { + log.Println("Getting encoded") + + Encoded := c.PathParam("encoded") + + log.Println("encoded: ", Encoded) + + if Encoded == "" || len(Encoded) == 0 || len(Encoded) > 3 { + return c.NoContent(404) + } + + Decoded := base58.Decode(Encoded) + + log.Println("decoded: ", Decoded) + + url, err := findById(Decoded, app) + + if err != nil { + return c.NoContent(404) + } + + return c.Redirect(301, url) +} + +func findById(id int, app *pocketbase.PocketBase) (string, error) { + record, recErr := app.Dao().FindRecordsByExpr("urls", dbx.NewExp("_id = {:id}", dbx.Params{"id": id})) + + if recErr != nil { + log.Println(recErr) + return "", recErr + } + + if len(record) != 0 { + log.Println("-- record", record[0]) + rec := record[0] + + longUrl := rec.GetString("long_url") + + return longUrl, nil + } + + return "", errors.New("record not found") +} + +func GetJSONRawBody(c echo.Context) UrlRequest { + + urlBody := UrlRequest{} + err := json.NewDecoder(c.Request().Body).Decode(&urlBody) + + if err != nil { + + log.Println("empty json body") + return urlBody + } + + return urlBody +} diff --git a/pb_data/data.db b/pb_data/data.db new file mode 100644 index 0000000000000000000000000000000000000000..80db92cc604b2949a9e6e938fef624cf562a4d5b GIT binary patch literal 184320 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 literal 0 HcmV?d00001 diff --git a/pb_data/logs.db b/pb_data/logs.db new file mode 100644 index 0000000000000000000000000000000000000000..f4ad477109688a41a294f42fcb08361f3e39d739 GIT binary patch literal 290816 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≥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 NNKmJDD~dMZ{~N06+PMG# literal 0 HcmV?d00001 diff --git a/pb_public/build/bundle.css b/pb_public/build/bundle.css new file mode 100644 index 0000000..47ffb83 --- /dev/null +++ b/pb_public/build/bundle.css @@ -0,0 +1,3 @@ +@import "//fonts.googleapis.com/css2?family=Roboto+Condensed&family=Roboto+Slab&display=swap";html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}body{font-family:Arial, Verdana, Tahoma;font-size:14px;font-weight:400;line-height:1.429;color:rgba(0, 0, 0, 0.87);background-color:#FFF}a{color:#2196F3;text-decoration:none}a:hover,a:focus{text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}p{margin:0 0 10px}ul,ol{margin-top:0;margin-bottom:10px}hr{margin-top:20px;margin-bottom:20px;border:0;height:1px;background-color:rgba(0, 0, 0, 0.12)}strong{font-weight:700}abbr[title]{cursor:help;-webkit-text-decoration-color:#2196F3;text-decoration-color:#2196F3}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}.mui--appbar-height{height:56px}.mui--appbar-min-height,.mui-appbar{min-height:56px}.mui--appbar-line-height{line-height:56px}.mui--appbar-top{top:56px}@media(orientation: landscape) and (max-height: 480px){.mui--appbar-height{height:48px}.mui--appbar-min-height,.mui-appbar{min-height:48px}.mui--appbar-line-height{line-height:48px}.mui--appbar-top{top:48px}}@media(min-width: 480px){.mui--appbar-height{height:64px}.mui--appbar-min-height,.mui-appbar{min-height:64px}.mui--appbar-line-height{line-height:64px}.mui--appbar-top{top:64px}}.mui-appbar{background-color:#2196F3;color:#FFF}.mui-btn{font-weight:500;font-size:14px;line-height:18px;text-transform:uppercase;color:rgba(0, 0, 0, 0.87);background-color:#FFF;transition:all 0.2s ease-in-out;display:inline-block;height:36px;padding:0 26px;margin:6px 0;border:none;border-radius:2px;cursor:pointer;touch-action:manipulation;background-image:none;text-align:center;line-height:36px;vertical-align:middle;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px;font-family:inherit;letter-spacing:0.03em;position:relative;overflow:hidden}.mui-btn:hover,.mui-btn:focus,.mui-btn:active{color:rgba(0, 0, 0, 0.87);background-color:white}.mui-btn[disabled]:hover,.mui-btn[disabled]:focus,.mui-btn[disabled]:active{color:rgba(0, 0, 0, 0.87);background-color:#FFF}.mui-btn.mui-btn--flat{color:rgba(0, 0, 0, 0.87);background-color:transparent}.mui-btn.mui-btn--flat:hover,.mui-btn.mui-btn--flat:focus,.mui-btn.mui-btn--flat:active{color:rgba(0, 0, 0, 0.87);background-color:#f2f2f2}.mui-btn.mui-btn--flat[disabled]:hover,.mui-btn.mui-btn--flat[disabled]:focus,.mui-btn.mui-btn--flat[disabled]:active{color:rgba(0, 0, 0, 0.87);background-color:transparent}.mui-btn:hover,.mui-btn:focus,.mui-btn:active{outline:0;text-decoration:none;color:rgba(0, 0, 0, 0.87)}.mui-btn:hover,.mui-btn:focus{box-shadow:0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-btn:hover,.mui-btn:focus{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}}@supports (-ms-ime-align: auto){.mui-btn:hover,.mui-btn:focus{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}}.mui-btn:active:hover{box-shadow:0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-btn:active:hover{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}}@supports (-ms-ime-align: auto){.mui-btn:active:hover{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}}.mui-btn:disabled,.mui-btn.mui--is-disabled{cursor:not-allowed;pointer-events:none;opacity:0.60;box-shadow:none}.mui-btn + .mui-btn{margin-left:8px}.mui-btn--flat{background-color:transparent}.mui-btn--flat:hover,.mui-btn--flat:focus,.mui-btn--flat:active,.mui-btn--flat:active:hover{box-shadow:none;background-color:#f2f2f2}.mui-btn--raised,.mui-btn--fab{box-shadow:0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-btn--raised,.mui-btn--fab{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}}@supports (-ms-ime-align: auto){.mui-btn--raised,.mui-btn--fab{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2)}}.mui-btn--raised:active,.mui-btn--fab:active{box-shadow:0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-btn--raised:active,.mui-btn--fab:active{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}}@supports (-ms-ime-align: auto){.mui-btn--raised:active,.mui-btn--fab:active{box-shadow:0 -1px 2px rgba(0, 0, 0, 0.12), -1px 0px 2px rgba(0, 0, 0, 0.12), 0 0px 4px rgba(0, 0, 0, 0.12), 1px 3px 4px rgba(0, 0, 0, 0.2)}}.mui-btn--fab{position:relative;padding:0;width:55px;height:55px;line-height:55px;border-radius:50%;z-index:1}.mui-btn--primary{color:#FFF;background-color:#2196F3}.mui-btn--primary:hover,.mui-btn--primary:focus,.mui-btn--primary:active{color:#FFF;background-color:#39a1f4}.mui-btn--primary[disabled]:hover,.mui-btn--primary[disabled]:focus,.mui-btn--primary[disabled]:active{color:#FFF;background-color:#2196F3}.mui-btn--primary.mui-btn--flat{color:#2196F3;background-color:transparent}.mui-btn--primary.mui-btn--flat:hover,.mui-btn--primary.mui-btn--flat:focus,.mui-btn--primary.mui-btn--flat:active{color:#2196F3;background-color:#f2f2f2}.mui-btn--primary.mui-btn--flat[disabled]:hover,.mui-btn--primary.mui-btn--flat[disabled]:focus,.mui-btn--primary.mui-btn--flat[disabled]:active{color:#2196F3;background-color:transparent}.mui-btn--dark{color:#FFF;background-color:#424242}.mui-btn--dark:hover,.mui-btn--dark:focus,.mui-btn--dark:active{color:#FFF;background-color:#4f4f4f}.mui-btn--dark[disabled]:hover,.mui-btn--dark[disabled]:focus,.mui-btn--dark[disabled]:active{color:#FFF;background-color:#424242}.mui-btn--dark.mui-btn--flat{color:#424242;background-color:transparent}.mui-btn--dark.mui-btn--flat:hover,.mui-btn--dark.mui-btn--flat:focus,.mui-btn--dark.mui-btn--flat:active{color:#424242;background-color:#f2f2f2}.mui-btn--dark.mui-btn--flat[disabled]:hover,.mui-btn--dark.mui-btn--flat[disabled]:focus,.mui-btn--dark.mui-btn--flat[disabled]:active{color:#424242;background-color:transparent}.mui-btn--danger{color:#FFF;background-color:#F44336}.mui-btn--danger:hover,.mui-btn--danger:focus,.mui-btn--danger:active{color:#FFF;background-color:#f55a4e}.mui-btn--danger[disabled]:hover,.mui-btn--danger[disabled]:focus,.mui-btn--danger[disabled]:active{color:#FFF;background-color:#F44336}.mui-btn--danger.mui-btn--flat{color:#F44336;background-color:transparent}.mui-btn--danger.mui-btn--flat:hover,.mui-btn--danger.mui-btn--flat:focus,.mui-btn--danger.mui-btn--flat:active{color:#F44336;background-color:#f2f2f2}.mui-btn--danger.mui-btn--flat[disabled]:hover,.mui-btn--danger.mui-btn--flat[disabled]:focus,.mui-btn--danger.mui-btn--flat[disabled]:active{color:#F44336;background-color:transparent}.mui-btn--accent{color:#FFF;background-color:#FF4081}.mui-btn--accent:hover,.mui-btn--accent:focus,.mui-btn--accent:active{color:#FFF;background-color:#ff5a92}.mui-btn--accent[disabled]:hover,.mui-btn--accent[disabled]:focus,.mui-btn--accent[disabled]:active{color:#FFF;background-color:#FF4081}.mui-btn--accent.mui-btn--flat{color:#FF4081;background-color:transparent}.mui-btn--accent.mui-btn--flat:hover,.mui-btn--accent.mui-btn--flat:focus,.mui-btn--accent.mui-btn--flat:active{color:#FF4081;background-color:#f2f2f2}.mui-btn--accent.mui-btn--flat[disabled]:hover,.mui-btn--accent.mui-btn--flat[disabled]:focus,.mui-btn--accent.mui-btn--flat[disabled]:active{color:#FF4081;background-color:transparent}.mui-btn--small{height:30.6px;line-height:30.6px;padding:0 16px;font-size:13px}.mui-btn--large{height:54px;line-height:54px;padding:0 26px;font-size:14px}.mui-btn--fab.mui-btn--small{width:44px;height:44px;line-height:44px}.mui-btn--fab.mui-btn--large{width:75px;height:75px;line-height:75px}.mui-radio,.mui-checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.mui-radio > label,.mui-checkbox > label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.mui-radio input:disabled,.mui-checkbox input:disabled{cursor:not-allowed}.mui-radio input:focus,.mui-checkbox input:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.mui-radio > label > input[type="radio"],.mui-radio--inline > label > input[type="radio"],.mui-checkbox > label > input[type="checkbox"],.mui-checkbox--inline > label > input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px}.mui-radio + .mui-radio,.mui-checkbox + .mui-checkbox{margin-top:-5px}.mui-radio--inline,.mui-checkbox--inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.mui-radio--inline > input[type="radio"],.mui-radio--inline > input[type="checkbox"],.mui-radio--inline > label > input[type="radio"],.mui-radio--inline > label > input[type="checkbox"],.mui-checkbox--inline > input[type="radio"],.mui-checkbox--inline > input[type="checkbox"],.mui-checkbox--inline > label > input[type="radio"],.mui-checkbox--inline > label > input[type="checkbox"]{margin:4px 0 0;line-height:normal}.mui-radio--inline + .mui-radio--inline,.mui-checkbox--inline + .mui-checkbox--inline{margin-top:0;margin-left:10px}.mui-container{box-sizing:border-box;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.mui-container:before,.mui-container:after{content:" ";display:table}.mui-container:after{clear:both}@media(min-width: 544px){.mui-container{max-width:570px}}@media(min-width: 768px){.mui-container{max-width:740px}}@media(min-width: 992px){.mui-container{max-width:960px}}@media(min-width: 1200px){.mui-container{max-width:1170px}}.mui-container-fluid{box-sizing:border-box;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.mui-container-fluid:before,.mui-container-fluid:after{content:" ";display:table}.mui-container-fluid:after{clear:both}.mui-divider{display:block;height:1px;background-color:rgba(0, 0, 0, 0.12)}.mui--divider-top{border-top:1px solid rgba(0, 0, 0, 0.12)}.mui--divider-bottom{border-bottom:1px solid rgba(0, 0, 0, 0.12)}.mui--divider-left{border-left:1px solid rgba(0, 0, 0, 0.12)}.mui--divider-right{border-right:1px solid rgba(0, 0, 0, 0.12)}.mui-dropdown{display:inline-block;position:relative}[data-mui-toggle="dropdown"]{outline:0}.mui-dropdown__menu{position:absolute;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#FFF;border-radius:2px;z-index:1;background-clip:padding-box}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-dropdown__menu{border-top:1px solid rgba(0, 0, 0, 0.12);border-left:1px solid rgba(0, 0, 0, 0.12)}}@supports (-ms-ime-align: auto){.mui-dropdown__menu{border-top:1px solid rgba(0, 0, 0, 0.12);border-left:1px solid rgba(0, 0, 0, 0.12)}}.mui-dropdown__menu.mui--is-open{display:block}.mui-dropdown__menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.429;color:rgba(0, 0, 0, 0.87);text-decoration:none;white-space:nowrap}.mui-dropdown__menu > li > a:hover,.mui-dropdown__menu > li > a:focus{text-decoration:none;color:rgba(0, 0, 0, 0.87);background-color:#EEEEEE}.mui-dropdown__menu > .mui--is-disabled > a,.mui-dropdown__menu > .mui--is-disabled > a:hover,.mui-dropdown__menu > .mui--is-disabled > a:focus{color:#EEEEEE}.mui-dropdown__menu > .mui--is-disabled > a:hover,.mui-dropdown__menu > .mui--is-disabled > a:focus{text-decoration:none;background-color:transparent;background-image:none;cursor:not-allowed}.mui-dropdown__menu--right{left:auto;right:0}.mui-dropdown--up > .mui-dropdown__menu{margin:0 0 2px}.mui-dropdown--right > .mui-dropdown__menu{margin:0 0 0 2px}.mui-dropdown--left > .mui-dropdown__menu{margin:0 2px 0 0}.mui-form legend{display:block;width:100%;padding:0;margin-bottom:10px;font-size:21px;color:rgba(0, 0, 0, 0.87);line-height:inherit;border:0}.mui-form fieldset{border:0;padding:0;margin:0 0 20px 0}@media(min-width: 544px){.mui-form--inline .mui-textfield{display:inline-block;vertical-align:bottom;margin-bottom:0}.mui-form--inline .mui-radio,.mui-form--inline .mui-checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.mui-form--inline .mui-radio > label,.mui-form--inline .mui-checkbox > label{padding-left:0}.mui-form--inline .mui-radio > label > input[type="radio"],.mui-form--inline .mui-checkbox > label > input[type="checkbox"]{position:relative;margin-left:0}.mui-form--inline .mui-select{display:inline-block;vertical-align:bottom;margin-bottom:0}.mui-form--inline .mui-btn{margin-bottom:0;margin-top:0;vertical-align:bottom}}.mui-row{margin-left:-15px;margin-right:-15px}.mui-row:before,.mui-row:after{content:" ";display:table}.mui-row:after{clear:both}.mui-col-xs-1,.mui-col-sm-1,.mui-col-md-1,.mui-col-lg-1,.mui-col-xs-2,.mui-col-sm-2,.mui-col-md-2,.mui-col-lg-2,.mui-col-xs-3,.mui-col-sm-3,.mui-col-md-3,.mui-col-lg-3,.mui-col-xs-4,.mui-col-sm-4,.mui-col-md-4,.mui-col-lg-4,.mui-col-xs-5,.mui-col-sm-5,.mui-col-md-5,.mui-col-lg-5,.mui-col-xs-6,.mui-col-sm-6,.mui-col-md-6,.mui-col-lg-6,.mui-col-xs-7,.mui-col-sm-7,.mui-col-md-7,.mui-col-lg-7,.mui-col-xs-8,.mui-col-sm-8,.mui-col-md-8,.mui-col-lg-8,.mui-col-xs-9,.mui-col-sm-9,.mui-col-md-9,.mui-col-lg-9,.mui-col-xs-10,.mui-col-sm-10,.mui-col-md-10,.mui-col-lg-10,.mui-col-xs-11,.mui-col-sm-11,.mui-col-md-11,.mui-col-lg-11,.mui-col-xs-12,.mui-col-sm-12,.mui-col-md-12,.mui-col-lg-12{box-sizing:border-box;min-height:1px;padding-left:15px;padding-right:15px}.mui-col-xs-1,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12{float:left}.mui-col-xs-1{width:8.33333%}.mui-col-xs-2{width:16.66667%}.mui-col-xs-3{width:25%}.mui-col-xs-4{width:33.33333%}.mui-col-xs-5{width:41.66667%}.mui-col-xs-6{width:50%}.mui-col-xs-7{width:58.33333%}.mui-col-xs-8{width:66.66667%}.mui-col-xs-9{width:75%}.mui-col-xs-10{width:83.33333%}.mui-col-xs-11{width:91.66667%}.mui-col-xs-12{width:100%}.mui-col-xs-offset-0{margin-left:0%}.mui-col-xs-offset-1{margin-left:8.33333%}.mui-col-xs-offset-2{margin-left:16.66667%}.mui-col-xs-offset-3{margin-left:25%}.mui-col-xs-offset-4{margin-left:33.33333%}.mui-col-xs-offset-5{margin-left:41.66667%}.mui-col-xs-offset-6{margin-left:50%}.mui-col-xs-offset-7{margin-left:58.33333%}.mui-col-xs-offset-8{margin-left:66.66667%}.mui-col-xs-offset-9{margin-left:75%}.mui-col-xs-offset-10{margin-left:83.33333%}.mui-col-xs-offset-11{margin-left:91.66667%}.mui-col-xs-offset-12{margin-left:100%}@media(min-width: 544px){.mui-col-sm-1,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12{float:left}.mui-col-sm-1{width:8.33333%}.mui-col-sm-2{width:16.66667%}.mui-col-sm-3{width:25%}.mui-col-sm-4{width:33.33333%}.mui-col-sm-5{width:41.66667%}.mui-col-sm-6{width:50%}.mui-col-sm-7{width:58.33333%}.mui-col-sm-8{width:66.66667%}.mui-col-sm-9{width:75%}.mui-col-sm-10{width:83.33333%}.mui-col-sm-11{width:91.66667%}.mui-col-sm-12{width:100%}.mui-col-sm-offset-0{margin-left:0%}.mui-col-sm-offset-1{margin-left:8.33333%}.mui-col-sm-offset-2{margin-left:16.66667%}.mui-col-sm-offset-3{margin-left:25%}.mui-col-sm-offset-4{margin-left:33.33333%}.mui-col-sm-offset-5{margin-left:41.66667%}.mui-col-sm-offset-6{margin-left:50%}.mui-col-sm-offset-7{margin-left:58.33333%}.mui-col-sm-offset-8{margin-left:66.66667%}.mui-col-sm-offset-9{margin-left:75%}.mui-col-sm-offset-10{margin-left:83.33333%}.mui-col-sm-offset-11{margin-left:91.66667%}.mui-col-sm-offset-12{margin-left:100%}}@media(min-width: 768px){.mui-col-md-1,.mui-col-md-2,.mui-col-md-3,.mui-col-md-4,.mui-col-md-5,.mui-col-md-6,.mui-col-md-7,.mui-col-md-8,.mui-col-md-9,.mui-col-md-10,.mui-col-md-11,.mui-col-md-12{float:left}.mui-col-md-1{width:8.33333%}.mui-col-md-2{width:16.66667%}.mui-col-md-3{width:25%}.mui-col-md-4{width:33.33333%}.mui-col-md-5{width:41.66667%}.mui-col-md-6{width:50%}.mui-col-md-7{width:58.33333%}.mui-col-md-8{width:66.66667%}.mui-col-md-9{width:75%}.mui-col-md-10{width:83.33333%}.mui-col-md-11{width:91.66667%}.mui-col-md-12{width:100%}.mui-col-md-offset-0{margin-left:0%}.mui-col-md-offset-1{margin-left:8.33333%}.mui-col-md-offset-2{margin-left:16.66667%}.mui-col-md-offset-3{margin-left:25%}.mui-col-md-offset-4{margin-left:33.33333%}.mui-col-md-offset-5{margin-left:41.66667%}.mui-col-md-offset-6{margin-left:50%}.mui-col-md-offset-7{margin-left:58.33333%}.mui-col-md-offset-8{margin-left:66.66667%}.mui-col-md-offset-9{margin-left:75%}.mui-col-md-offset-10{margin-left:83.33333%}.mui-col-md-offset-11{margin-left:91.66667%}.mui-col-md-offset-12{margin-left:100%}}@media(min-width: 992px){.mui-col-lg-1,.mui-col-lg-2,.mui-col-lg-3,.mui-col-lg-4,.mui-col-lg-5,.mui-col-lg-6,.mui-col-lg-7,.mui-col-lg-8,.mui-col-lg-9,.mui-col-lg-10,.mui-col-lg-11,.mui-col-lg-12{float:left}.mui-col-lg-1{width:8.33333%}.mui-col-lg-2{width:16.66667%}.mui-col-lg-3{width:25%}.mui-col-lg-4{width:33.33333%}.mui-col-lg-5{width:41.66667%}.mui-col-lg-6{width:50%}.mui-col-lg-7{width:58.33333%}.mui-col-lg-8{width:66.66667%}.mui-col-lg-9{width:75%}.mui-col-lg-10{width:83.33333%}.mui-col-lg-11{width:91.66667%}.mui-col-lg-12{width:100%}.mui-col-lg-offset-0{margin-left:0%}.mui-col-lg-offset-1{margin-left:8.33333%}.mui-col-lg-offset-2{margin-left:16.66667%}.mui-col-lg-offset-3{margin-left:25%}.mui-col-lg-offset-4{margin-left:33.33333%}.mui-col-lg-offset-5{margin-left:41.66667%}.mui-col-lg-offset-6{margin-left:50%}.mui-col-lg-offset-7{margin-left:58.33333%}.mui-col-lg-offset-8{margin-left:66.66667%}.mui-col-lg-offset-9{margin-left:75%}.mui-col-lg-offset-10{margin-left:83.33333%}.mui-col-lg-offset-11{margin-left:91.66667%}.mui-col-lg-offset-12{margin-left:100%}}@media(min-width: 1200px){.mui-col-xl-1,.mui-col-xl-2,.mui-col-xl-3,.mui-col-xl-4,.mui-col-xl-5,.mui-col-xl-6,.mui-col-xl-7,.mui-col-xl-8,.mui-col-xl-9,.mui-col-xl-10,.mui-col-xl-11,.mui-col-xl-12{float:left}.mui-col-xl-1{width:8.33333%}.mui-col-xl-2{width:16.66667%}.mui-col-xl-3{width:25%}.mui-col-xl-4{width:33.33333%}.mui-col-xl-5{width:41.66667%}.mui-col-xl-6{width:50%}.mui-col-xl-7{width:58.33333%}.mui-col-xl-8{width:66.66667%}.mui-col-xl-9{width:75%}.mui-col-xl-10{width:83.33333%}.mui-col-xl-11{width:91.66667%}.mui-col-xl-12{width:100%}.mui-col-xl-offset-0{margin-left:0%}.mui-col-xl-offset-1{margin-left:8.33333%}.mui-col-xl-offset-2{margin-left:16.66667%}.mui-col-xl-offset-3{margin-left:25%}.mui-col-xl-offset-4{margin-left:33.33333%}.mui-col-xl-offset-5{margin-left:41.66667%}.mui-col-xl-offset-6{margin-left:50%}.mui-col-xl-offset-7{margin-left:58.33333%}.mui-col-xl-offset-8{margin-left:66.66667%}.mui-col-xl-offset-9{margin-left:75%}.mui-col-xl-offset-10{margin-left:83.33333%}.mui-col-xl-offset-11{margin-left:91.66667%}.mui-col-xl-offset-12{margin-left:100%}}.mui-panel{padding:15px;margin-bottom:20px;border-radius:0;background-color:#FFF;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12)}.mui-panel:before,.mui-panel:after{content:" ";display:table}.mui-panel:after{clear:both}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-panel{box-shadow:0 -1px 2px 0 rgba(0, 0, 0, 0.12), -1px 0px 2px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12)}}@supports (-ms-ime-align: auto){.mui-panel{box-shadow:0 -1px 2px 0 rgba(0, 0, 0, 0.12), -1px 0px 2px 0 rgba(0, 0, 0, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0px 2px 0 rgba(0, 0, 0, 0.12)}}.mui-select{display:block;padding-top:15px;margin-bottom:20px;position:relative}.mui-select:focus{outline:0}.mui-select:focus > select{height:calc(32px + 1px);margin-bottom:-1px;border-color:#2196F3;border-width:2px}.mui-select > select{display:block;height:32px;width:100%;appearance:none;-webkit-appearance:none;-moz-appearance:none;outline:none;border:none;border-bottom:1px solid rgba(0, 0, 0, 0.26);border-radius:0px;box-shadow:none;background-color:transparent;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNiIgd2lkdGg9IjEwIj48cG9seWdvbiBwb2ludHM9IjAsMCAxMCwwIDUsNiIgc3R5bGU9ImZpbGw6cmdiYSgwLDAsMCwuMjQpOyIvPjwvc3ZnPg==");background-repeat:no-repeat;background-position:right center;cursor:pointer;color:rgba(0, 0, 0, 0.87);font-size:16px;font-family:inherit;line-height:inherit;padding:0 25px 0 0}.mui-select > select::-ms-expand{display:none}.mui-select > select:focus{outline:0;height:calc(32px + 1px);margin-bottom:-1px;border-color:#2196F3;border-width:2px}.mui-select > select:disabled{color:rgba(0, 0, 0, 0.38);cursor:not-allowed;background-color:transparent;opacity:1}.mui-select > select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.mui-select > select:focus::-ms-value{background:none;color:rgba(0, 0, 0, 0.87)}.mui-select > select.mui--text-placeholder{color:rgba(0, 0, 0, 0.26)}.mui-select > label{position:absolute;top:0;display:block;width:100%;color:rgba(0, 0, 0, 0.54);font-size:12px;font-weight:400;line-height:15px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.mui-select:focus > label,.mui-select > select:focus ~ label{color:#2196F3}.mui-select__menu{position:absolute;z-index:2;min-width:100%;overflow-y:auto;padding:8px 0;box-sizing:border-box;background-color:#FFF;font-size:16px}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.mui-select__menu{border-left:1px solid rgba(0, 0, 0, 0.12);border-top:1px solid rgba(0, 0, 0, 0.12)}}@supports (-ms-ime-align: auto){.mui-select__menu{border-left:1px solid rgba(0, 0, 0, 0.12);border-top:1px solid rgba(0, 0, 0, 0.12)}}.mui-select__menu > div{padding:0 22px;height:42px;line-height:42px;cursor:pointer;white-space:nowrap}.mui-select__menu > div.mui--is-selected{background-color:#EEEEEE}.mui-select__menu > div.mui--is-disabled{color:rgba(0, 0, 0, 0.38);cursor:not-allowed}.mui-select__menu > div:not(.mui-optgroup__label):not(.mui--is-disabled):hover{background-color:#E0E0E0}.mui-optgroup__option{text-indent:1em}.mui-optgroup__label{color:rgba(0, 0, 0, 0.54);font-size:0.9em}.mui-table{width:100%;max-width:100%;margin-bottom:20px}.mui-table > thead > tr > th,.mui-table > tbody > tr > th,.mui-table > tfoot > tr > th{text-align:left}.mui-table > thead > tr > th,.mui-table > thead > tr > td,.mui-table > tbody > tr > th,.mui-table > tbody > tr > td,.mui-table > tfoot > tr > th,.mui-table > tfoot > tr > td{padding:10px;line-height:1.429}.mui-table > thead > tr > th{border-bottom:2px solid rgba(0, 0, 0, 0.12);font-weight:700}.mui-table > tbody + tbody{border-top:2px solid rgba(0, 0, 0, 0.12)}.mui-table.mui-table--bordered > tbody > tr > td{border-bottom:1px solid rgba(0, 0, 0, 0.12)}.mui-tabs__bar{list-style:none;padding-left:0;margin-bottom:0;background-color:transparent;white-space:nowrap;overflow-x:auto}.mui-tabs__bar > li{display:inline-block}.mui-tabs__bar > li > a{display:block;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;color:rgba(0, 0, 0, 0.87);cursor:default;height:48px;line-height:48px;padding-left:24px;padding-right:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mui-tabs__bar > li > a:hover{text-decoration:none}.mui-tabs__bar > li.mui--is-active{border-bottom:2px solid #2196F3}.mui-tabs__bar > li.mui--is-active > a{color:#2196F3}.mui-tabs__bar.mui-tabs__bar--justified{display:table;width:100%;table-layout:fixed}.mui-tabs__bar.mui-tabs__bar--justified > li{display:table-cell}.mui-tabs__bar.mui-tabs__bar--justified > li > a{text-align:center;padding-left:0px;padding-right:0px}.mui-tabs__pane{display:none}.mui-tabs__pane.mui--is-active{display:block}.mui-textfield{display:block;padding-top:15px;margin-bottom:20px;position:relative}.mui-textfield > label{position:absolute;top:0;display:block;width:100%;color:rgba(0, 0, 0, 0.54);font-size:12px;font-weight:400;line-height:15px;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.mui-textfield > textarea{padding-top:5px}.mui-textfield > input:focus ~ label,.mui-textfield > textarea:focus ~ label{color:#2196F3}.mui-textfield--float-label > label{position:absolute;transform:translate(0px, 15px);font-size:16px;line-height:32px;color:rgba(0, 0, 0, 0.26);text-overflow:clip;cursor:text;pointer-events:none}.mui-textfield--float-label > input:-webkit-autofill ~ label,.mui-textfield--float-label > textarea:-webkit-autofill ~ label{transform:translate(0px, 0px);font-size:12px;line-height:15px;text-overflow:ellipsis}.mui-textfield--float-label > input:focus ~ label,.mui-textfield--float-label > textarea:focus ~ label{transform:translate(0px, 0px);font-size:12px;line-height:15px;text-overflow:ellipsis}.mui-textfield--float-label > input:not(:focus).mui--is-not-empty ~ label,.mui-textfield--float-label > input:not(:focus)[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield--float-label > input:not(:focus):not(:empty):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield--float-label > textarea:not(:focus).mui--is-not-empty ~ label,.mui-textfield--float-label > textarea:not(:focus)[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield--float-label > textarea:not(:focus):not(:empty):not(.mui--is-empty):not(.mui--is-not-empty) ~ label{color:rgba(0, 0, 0, 0.54);font-size:12px;line-height:15px;transform:translate(0px, 0px);text-overflow:ellipsis}.mui-textfield--wrap-label{display:table;width:100%;padding-top:0px}.mui-textfield--wrap-label:not(.mui-textfield--float-label) > label{display:table-header-group;position:static;white-space:normal;overflow-x:visible}.mui-textfield > input,.mui-textfield > textarea{box-sizing:border-box;display:block;background-color:transparent;color:rgba(0, 0, 0, 0.87);border:none;border-bottom:1px solid rgba(0, 0, 0, 0.26);outline:none;width:100%;padding:0;box-shadow:none;border-radius:0px;font-size:16px;font-family:inherit;line-height:inherit;background-image:none}.mui-textfield > input:focus,.mui-textfield > textarea:focus{border-color:#2196F3;border-width:2px}.mui-textfield > input:-moz-read-only,.mui-textfield > textarea:-moz-read-only{cursor:not-allowed;background-color:transparent;opacity:1}.mui-textfield > input:disabled,.mui-textfield > input:read-only,.mui-textfield > textarea:disabled,.mui-textfield > textarea:read-only{cursor:not-allowed;background-color:transparent;opacity:1}.mui-textfield > input::-webkit-input-placeholder,.mui-textfield > textarea::-webkit-input-placeholder{color:rgba(0, 0, 0, 0.26);opacity:1}.mui-textfield > input::-moz-placeholder,.mui-textfield > textarea::-moz-placeholder{color:rgba(0, 0, 0, 0.26);opacity:1}.mui-textfield > input:-ms-input-placeholder,.mui-textfield > textarea:-ms-input-placeholder{color:rgba(0, 0, 0, 0.26);opacity:1}.mui-textfield > input::-ms-input-placeholder,.mui-textfield > textarea::-ms-input-placeholder{color:rgba(0, 0, 0, 0.26);opacity:1}.mui-textfield > input::placeholder,.mui-textfield > textarea::placeholder{color:rgba(0, 0, 0, 0.26);opacity:1}.mui-textfield > input{height:32px}.mui-textfield > input:focus{height:calc(32px + 1px);margin-bottom:-1px}.mui-textfield > textarea{min-height:64px}.mui-textfield > textarea[rows]:not([rows="2"]):focus{margin-bottom:-1px}.mui-textfield > input:focus{height:calc(32px + 1px);margin-bottom:-1px}.mui-textfield > input:invalid:not(:focus):not(:required),.mui-textfield > input:invalid:not(:focus):required.mui--is-not-empty,.mui-textfield > input:invalid:not(:focus):required.mui--is-empty.mui--is-touched,.mui-textfield > input:invalid:not(:focus):required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:invalid:not(:focus):required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > textarea:invalid:not(:focus):not(:required),.mui-textfield > textarea:invalid:not(:focus):required.mui--is-not-empty,.mui-textfield > textarea:invalid:not(:focus):required.mui--is-empty.mui--is-touched,.mui-textfield > textarea:invalid:not(:focus):required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > textarea:invalid:not(:focus):required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:not(:focus).mui--is-invalid:not(:required),.mui-textfield > input:not(:focus).mui--is-invalid:required.mui--is-not-empty,.mui-textfield > input:not(:focus).mui--is-invalid:required.mui--is-empty.mui--is-touched,.mui-textfield > input:not(:focus).mui--is-invalid:required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:not(:focus).mui--is-invalid:required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > textarea:not(:focus).mui--is-invalid:not(:required),.mui-textfield > textarea:not(:focus).mui--is-invalid:required.mui--is-not-empty,.mui-textfield > textarea:not(:focus).mui--is-invalid:required.mui--is-empty.mui--is-touched,.mui-textfield > textarea:not(:focus).mui--is-invalid:required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > textarea:not(:focus).mui--is-invalid:required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty){border-color:#F44336;border-width:2px}.mui-textfield > input:invalid:not(:focus):not(:required),.mui-textfield > input:invalid:not(:focus):required.mui--is-not-empty,.mui-textfield > input:invalid:not(:focus):required.mui--is-empty.mui--is-touched,.mui-textfield > input:invalid:not(:focus):required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:invalid:not(:focus):required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:not(:focus).mui--is-invalid:not(:required),.mui-textfield > input:not(:focus).mui--is-invalid:required.mui--is-not-empty,.mui-textfield > input:not(:focus).mui--is-invalid:required.mui--is-empty.mui--is-touched,.mui-textfield > input:not(:focus).mui--is-invalid:required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty),.mui-textfield > input:not(:focus).mui--is-invalid:required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty){height:calc(32px + 1px);margin-bottom:-1px}.mui-textfield.mui-textfield--float-label > input:invalid:not(:focus):not(:required) ~ label,.mui-textfield.mui-textfield--float-label > input:invalid:not(:focus):required.mui--is-not-empty ~ label,.mui-textfield.mui-textfield--float-label > input:invalid:not(:focus):required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield.mui-textfield--float-label > input:invalid:not(:focus):required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield.mui-textfield--float-label > textarea:invalid:not(:focus):not(:required) ~ label,.mui-textfield.mui-textfield--float-label > textarea:invalid:not(:focus):required.mui--is-not-empty ~ label,.mui-textfield.mui-textfield--float-label > textarea:invalid:not(:focus):required[value]:not([value=""]):not(.mui--is-empty):not(.mui--is-not-empty) ~ label,.mui-textfield.mui-textfield--float-label > textarea:invalid:not(:focus):required:not(:empty):not(.mui--is-empty):not(.mui--is-not-empty) ~ label{color:#F44336}.mui-textfield:not(.mui-textfield--float-label) > input:invalid:not(:focus):not(:required) ~ label,.mui-textfield:not(.mui-textfield--float-label) > input:invalid:not(:focus):required.mui--is-empty.mui--is-touched ~ label,.mui-textfield:not(.mui-textfield--float-label) > input:invalid:not(:focus):required.mui--is-not-empty ~ label,.mui-textfield:not(.mui-textfield--float-label) > textarea:invalid:not(:focus):not(:required) ~ label,.mui-textfield:not(.mui-textfield--float-label) > textarea:invalid:not(:focus):required.mui--is-empty.mui--is-touched ~ label,.mui-textfield:not(.mui-textfield--float-label) > textarea:invalid:not(:focus):required.mui--is-not-empty ~ label{color:#F44336}.mui-textfield.mui-textfield--float-label > .mui--is-invalid.mui--is-not-empty:not(:focus) ~ label{color:#F44336}.mui-textfield:not(.mui-textfield--float-label) > .mui--is-invalid:not(:focus) ~ label{color:#F44336}.mui--no-transition{transition:none !important}.mui--no-user-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mui-caret{display:inline-block;width:0;height:0;margin:0 0 0 2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.mui-caret.mui-caret--up{transform:rotate(180deg);margin:0 0 2px 2px}.mui-caret.mui-caret--right{transform:rotate(-90deg);margin:0 0 2px 2px}.mui-caret.mui-caret--left{transform:rotate(90deg);margin:0 2px 2px 0}.mui--text-left{text-align:left !important}.mui--text-right{text-align:right !important}.mui--text-center{text-align:center !important}.mui--text-justify{text-align:justify !important}.mui--text-nowrap{white-space:nowrap !important}.mui--align-baseline{vertical-align:baseline !important}.mui--align-top{vertical-align:top !important}.mui--align-middle{vertical-align:middle !important}.mui--align-bottom{vertical-align:bottom !important}.mui--text-dark{color:rgba(0, 0, 0, 0.87)}.mui--text-dark-secondary{color:rgba(0, 0, 0, 0.54)}.mui--text-dark-hint{color:rgba(0, 0, 0, 0.38)}.mui--text-light{color:#FFF}.mui--text-light-secondary{color:rgba(255, 255, 255, 0.7)}.mui--text-light-hint{color:rgba(255, 255, 255, 0.3)}.mui--text-accent{color:rgba(255, 64, 129, 0.87)}.mui--text-accent-secondary{color:rgba(255, 64, 129, 0.54)}.mui--text-accent-hint{color:rgba(255, 64, 129, 0.38)}.mui--text-black{color:#000}.mui--text-white{color:#FFF}.mui--text-danger{color:#F44336}.mui--text-placeholder{color:rgba(0, 0, 0, 0.26)}.mui--bg-primary{background-color:#2196F3}.mui--bg-primary-dark{background-color:#1976D2}.mui--bg-primary-light{background-color:#BBDEFB}.mui--bg-accent{background-color:#FF4081}.mui--bg-accent-dark{background-color:#F50057}.mui--bg-accent-light{background-color:#FF80AB}.mui--bg-danger{background-color:#F44336}.mui-list--unstyled{padding-left:0;list-style:none}.mui-list--inline{padding-left:0;list-style:none;margin-left:-5px}.mui-list--inline > li{display:inline-block;padding-left:5px;padding-right:5px}.mui--z1,.mui-dropdown__menu,.mui-select__menu{box-shadow:0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)}.mui--z2{box-shadow:0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23)}.mui--z3{box-shadow:0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23)}.mui--z4{box-shadow:0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22)}.mui--z5{box-shadow:0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22)}.mui--clearfix:before,.mui--clearfix:after{content:" ";display:table}.mui--clearfix:after{clear:both}.mui--pull-right{float:right !important}.mui--pull-left{float:left !important}.mui--hide{display:none !important}.mui--show{display:block !important}.mui--invisible{visibility:hidden}.mui--overflow-hidden{overflow:hidden !important}.mui--overflow-hidden-x{overflow-x:hidden !important}.mui--overflow-hidden-y{overflow-y:hidden !important}.mui--visible-xs-block,.mui--visible-xs-inline,.mui--visible-xs-inline-block,.mui--visible-sm-block,.mui--visible-sm-inline,.mui--visible-sm-inline-block,.mui--visible-md-block,.mui--visible-md-inline,.mui--visible-md-inline-block,.mui--visible-lg-block,.mui--visible-lg-inline,.mui--visible-lg-inline-block,.mui--visible-xl-block,.mui--visible-xl-inline,.mui--visible-xl-inline-block{display:none !important}@media(max-width: 543px){.mui-visible-xs{display:block !important}table.mui-visible-xs{display:table}tr.mui-visible-xs{display:table-row !important}th.mui-visible-xs,td.mui-visible-xs{display:table-cell !important}.mui--visible-xs-block{display:block !important}.mui--visible-xs-inline{display:inline !important}.mui--visible-xs-inline-block{display:inline-block !important}}@media(min-width: 544px) and (max-width: 767px){.mui-visible-sm{display:block !important}table.mui-visible-sm{display:table}tr.mui-visible-sm{display:table-row !important}th.mui-visible-sm,td.mui-visible-sm{display:table-cell !important}.mui--visible-sm-block{display:block !important}.mui--visible-sm-inline{display:inline !important}.mui--visible-sm-inline-block{display:inline-block !important}}@media(min-width: 768px) and (max-width: 991px){.mui-visible-md{display:block !important}table.mui-visible-md{display:table}tr.mui-visible-md{display:table-row !important}th.mui-visible-md,td.mui-visible-md{display:table-cell !important}.mui--visible-md-block{display:block !important}.mui--visible-md-inline{display:inline !important}.mui--visible-md-inline-block{display:inline-block !important}}@media(min-width: 992px) and (max-width: 1199px){.mui-visible-lg{display:block !important}table.mui-visible-lg{display:table}tr.mui-visible-lg{display:table-row !important}th.mui-visible-lg,td.mui-visible-lg{display:table-cell !important}.mui--visible-lg-block{display:block !important}.mui--visible-lg-inline{display:inline !important}.mui--visible-lg-inline-block{display:inline-block !important}}@media(min-width: 1200px){.mui-visible-xl{display:block !important}table.mui-visible-xl{display:table}tr.mui-visible-xl{display:table-row !important}th.mui-visible-xl,td.mui-visible-xl{display:table-cell !important}.mui--visible-xl-block{display:block !important}.mui--visible-xl-inline{display:inline !important}.mui--visible-xl-inline-block{display:inline-block !important}}@media(max-width: 543px){.mui--hidden-xs{display:none !important}}@media(min-width: 544px) and (max-width: 767px){.mui--hidden-sm{display:none !important}}@media(min-width: 768px) and (max-width: 991px){.mui--hidden-md{display:none !important}}@media(min-width: 992px) and (max-width: 1199px){.mui--hidden-lg{display:none !important}}@media(min-width: 1200px){.mui--hidden-xl{display:none !important}}.mui-scrlock--showbar-y{overflow-y:scroll !important}.mui-scrlock--showbar-x{overflow-x:scroll !important}#mui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999999;background-color:rgba(0, 0, 0, 0.2);overflow:auto}.mui-btn__ripple-container{position:absolute;top:0;left:0;display:block;height:100%;width:100%;overflow:hidden;z-index:0;pointer-events:none}.mui-ripple{position:absolute;top:0;left:0;border-radius:50%;opacity:0;pointer-events:none;transform:scale(0.0001, 0.0001)}.mui-ripple.mui--is-animating{transform:none;transition:transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.3s cubic-bezier(0, 0, 0.2, 1)}.mui-ripple.mui--is-visible{opacity:0.3}.mui-btn .mui-ripple{background-color:#a6a6a6}.mui-btn--primary .mui-ripple{background-color:#FFF}.mui-btn--dark .mui-ripple{background-color:#FFF}.mui-btn--danger .mui-ripple{background-color:#FFF}.mui-btn--accent .mui-ripple{background-color:#FFF}.mui-btn--flat .mui-ripple{background-color:#a6a6a6}.mui--text-display4{font-weight:300;font-size:112px;line-height:112px}.mui--text-display3{font-weight:400;font-size:56px;line-height:56px}.mui--text-display2{font-weight:400;font-size:45px;line-height:48px}.mui--text-display1,h1{font-weight:400;font-size:34px;line-height:40px}.mui--text-headline,h2{font-weight:400;font-size:24px;line-height:32px}.mui--text-title,h3{font-weight:400;font-size:20px;line-height:28px}.mui--text-subhead,h4{font-weight:400;font-size:16px;line-height:24px}.mui--text-body2,h5{font-weight:500;font-size:14px;line-height:24px}.mui--text-body1{font-weight:400;font-size:14px;line-height:20px}.mui--text-caption{font-weight:400;font-size:12px;line-height:16px}.mui--text-menu{font-weight:500;font-size:13px;line-height:17px}.mui--text-button{font-weight:500;font-size:14px;line-height:18px;text-transform:uppercase}.btn:focus,.btn-shorten:focus{outline:0 !important}html,body{height:100%;background-color:#FFC107}body,main{color:#4A148C;text-align:center;font-family:'Roboto Slab', sans-serif}.btn-shorten{color:#ffffff;border:none;font-family:'Roboto Condensed', sans-serif}.btn-shorten:hover,.btn-shorten:focus,.btn-shorten:active,.btn-shorten.active{color:#ffffff;background-color:#FA8900;border:none}.site-wrapper{display:table;width:100%;height:100%;min-height:100%}.site-wrapper-inner{display:table-cell;vertical-align:top}.main-container{margin-right:auto;margin-left:auto;margin-top:80px}.inner{padding:30px}.inner h4{padding-bottom:30px}.glyphicon-link{font-size:2em}.inner h1{margin-top:5px}#link{padding-top:15px}#link a{color:#FF4081;font-size:1.5em;margin-right:20px}@media(min-width: 768px){.main-container{width:100%}}@media(min-width: 992px){.main-container{width:700px}}body,html{font-family:"Roboto", "Arial", sans-serif;font-weight:normal;font-style:normal}h1{font-family:"Roboto Slab", monospace;font-weight:700;font-style:normal}h2,h3,h4{font-family:"Ubuntu", sans-serif;font-weight:500;font-style:normal} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/pb_public/build/bundle.js b/pb_public/build/bundle.js new file mode 100644 index 0000000..26277dd --- /dev/null +++ b/pb_public/build/bundle.js @@ -0,0 +1 @@ +var app=function(){"use strict";function e(){}function t(e){return e()}function n(){return Object.create(null)}function r(e){e.forEach(t)}function o(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function a(e,t){e.appendChild(t)}function s(e,t,n){e.insertBefore(t,n||null)}function u(e){e.parentNode.removeChild(e)}function c(e){return document.createElement(e)}function f(e){return document.createTextNode(e)}function l(){return f(" ")}function d(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function p(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function h(e,t){(null!=t||e.value)&&(e.value=t)}let m;function g(e){m=e}const y=[],v=[],b=[],w=[],x=Promise.resolve();let E=!1;function S(e){b.push(e)}let C=!1;const $=new Set;function R(){if(!C){C=!0;do{for(let e=0;e{const r=n.length?n[0]:t;return y.ctx&&f(y.ctx[e],y.ctx[e]=r)&&(y.bound[e]&&y.bound[e](r),v&&N(i,e)),t}):[],y.update(),v=!0,r(y.before_update),y.fragment=!!c&&c(y.ctx),a.target){if(a.hydrate){const e=function(e){return Array.from(e.childNodes)}(a.target);y.fragment&&y.fragment.l(e),e.forEach(u)}else y.fragment&&y.fragment.c();a.intro&&((b=i.$$.fragment)&&b.i&&(A.delete(b),b.i(w))),function(e,n,i){const{fragment:a,on_mount:s,on_destroy:u,after_update:c}=e.$$;a&&a.m(n,i),S(()=>{const n=s.map(t).filter(o);u?u.push(...n):r(n),e.$$.on_mount=[]}),c.forEach(S)}(i,a.target,a.anchor),R()}var b,w;g(p)}var T=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r=0)return;u[o]="set-cookie"===o?(u[o]?u[o]:[]).concat([a]):u[o]?u[o]+", "+a:a}})),u):u):null,f={data:e.responseType&&"text"!==e.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:c,config:e,request:i};!function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(J("Request failed with status code "+n.status,n.config,null,n.request,n))}(t,n,f),i=null}},i.onabort=function(){i&&(n(J("Request aborted",e,"ECONNABORTED",i)),i=null)},i.onerror=function(){n(J("Network Error",e,null,i)),i=null},i.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(J(t,e,"ECONNABORTED",i)),i=null},P.isStandardBrowserEnv()){var l=G,d=(e.withCredentials||K(f))&&e.xsrfCookieName?l.read(e.xsrfCookieName):void 0;d&&(o[e.xsrfHeaderName]=d)}if("setRequestHeader"in i&&P.forEach(o,(function(e,t){void 0===r&&"content-type"===t.toLowerCase()?delete o[t]:i.setRequestHeader(t,e)})),P.isUndefined(e.withCredentials)||(i.withCredentials=!!e.withCredentials),e.responseType)try{i.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&i.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&i.upload&&i.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){i&&(i.abort(),n(e),i=null)})),void 0===r&&(r=null),i.send(r)}))},W={"Content-Type":"application/x-www-form-urlencoded"};function Y(e,t){!P.isUndefined(e)&&P.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var Z,ee={adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(Z=Q),Z),transformRequest:[function(e,t){return X(t,"Accept"),X(t,"Content-Type"),P.isFormData(e)||P.isArrayBuffer(e)||P.isBuffer(e)||P.isStream(e)||P.isFile(e)||P.isBlob(e)?e:P.isArrayBufferView(e)?e.buffer:P.isURLSearchParams(e)?(Y(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):P.isObject(e)?(Y(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};ee.headers={common:{Accept:"application/json, text/plain, */*"}},P.forEach(["delete","get","head"],(function(e){ee.headers[e]={}})),P.forEach(["post","put","patch"],(function(e){ee.headers[e]=P.merge(W)}));var te=ee;function ne(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var re=function(e){return ne(e),e.headers=e.headers||{},e.data=M(e.data,e.headers,e.transformRequest),e.headers=P.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),P.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||te.adapter)(e).then((function(t){return ne(e),t.data=M(t.data,t.headers,e.transformResponse),t}),(function(t){return I(t)||(ne(e),t&&t.response&&(t.response.data=M(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))},oe=function(e,t){t=t||{};var n={},r=["url","method","params","data"],o=["headers","auth","proxy"],i=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];P.forEach(r,(function(e){void 0!==t[e]&&(n[e]=t[e])})),P.forEach(o,(function(r){P.isObject(t[r])?n[r]=P.deepMerge(e[r],t[r]):void 0!==t[r]?n[r]=t[r]:P.isObject(e[r])?n[r]=P.deepMerge(e[r]):void 0!==e[r]&&(n[r]=e[r])})),P.forEach(i,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var a=r.concat(o).concat(i),s=Object.keys(t).filter((function(e){return-1===a.indexOf(e)}));return P.forEach(s,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n};function ie(e){this.defaults=e,this.interceptors={request:new z,response:new z}}ie.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=oe(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[re,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},ie.prototype.getUri=function(e){return e=oe(this.defaults,e),F(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},P.forEach(["delete","get","head","options"],(function(e){ie.prototype[e]=function(t,n){return this.request(P.merge(n||{},{method:e,url:t}))}})),P.forEach(["post","put","patch"],(function(e){ie.prototype[e]=function(t,n,r){return this.request(P.merge(r||{},{method:e,url:t,data:n}))}}));var ae=ie;function se(e){this.message=e}se.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},se.prototype.__CANCEL__=!0;var ue=se;function ce(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new ue(e),t(n.reason))}))}ce.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},ce.source=function(){var e;return{token:new ce((function(t){e=t})),cancel:e}};var fe=ce;function le(e){var t=new ae(e),n=T(ae.prototype.request,t);return P.extend(n,ae.prototype,t),P.extend(n,t),n}var de=le(te);de.Axios=ae,de.create=function(e){return le(oe(de.defaults,e))},de.Cancel=ue,de.CancelToken=fe,de.isCancel=I,de.all=function(e){return Promise.all(e)},de.spread=function(e){return function(t){return e.apply(null,t)}};var pe=de,he=de;pe.default=he;var me=pe;function ge(e){let t,n,r,o;return{c(){t=c("div"),n=c("div"),r=c("a"),o=f(e[1]),p(r,"class","result"),p(r,"href",e[1]),p(n,"class","mui-col-lg-12"),p(n,"id","link"),p(t,"class","mui-row")},m(e,i){s(e,t,i),a(t,n),a(n,r),a(r,o)},p(e,t){2&t&&function(e,t){t=""+t,e.data!==t&&(e.data=t)}(o,e[1]),2&t&&p(r,"href",e[1])},d(e){e&&u(t)}}}function ye(t){let n,o,i,m,g,y,v,b,w,x,E,S,C,$,R,j=t[1].length>0&&ge(t);return{c(){n=c("main"),o=c("div"),i=c("div"),i.textContent="nURL",m=l(),g=c("div"),g.textContent="nurl.co",y=l(),v=c("div"),b=c("div"),w=c("input"),x=l(),E=c("button"),S=f("SHORTEN"),$=l(),j&&j.c(),p(i,"class","mui--text-display3"),p(g,"class","mui--text-subhead"),p(w,"id","url-field"),p(w,"placeholder","Paste a link..."),p(w,"type","url"),p(b,"class","mui-textfield"),p(E,"class","mui-btn mui-btn--raised mui-btn--accent btn-shorten"),p(E,"id","btn-shorten"),p(E,"type","button"),E.disabled=C=!t[2],p(v,"class","mui-panel"),p(o,"class","mui-container-fluid")},m(e,u,c){s(e,n,u),a(n,o),a(o,i),a(o,m),a(o,g),a(o,y),a(o,v),a(v,b),a(b,w),h(w,t[0]),a(v,x),a(v,E),a(E,S),a(v,$),j&&j.m(v,null),c&&r(R),R=[d(w,"input",t[5]),d(E,"click",t[3])]},p(e,[t]){1&t&&h(w,e[0]),4&t&&C!==(C=!e[2])&&(E.disabled=C),e[1].length>0?j?j.p(e,t):(j=ge(e),j.c(),j.m(v,null)):j&&(j.d(1),j=null)},i:e,o:e,d(e){e&&u(n),j&&j.d(),r(R)}}}let ve=/([a-z]{1,2}tps?):\/\/((?:(?!(?:\/|#|\?|&)).)+)(?:(\/(?:(?:(?:(?!(?:#|\?|&)).)+\/))?))?(?:((?:(?!(?:\.|$|\?|#)).)+))?(?:(\.(?:(?!(?:\?|$|#)).)+))?(?:(\?(?:(?!(?:$|#)).)+))?(?:(#.+))?/i;function be(e,t,n){let r,o="",i="";async function a(e){await me.post("/api/v1/shorten",e).then(e=>{200===e.status&&(console.log(">> shortUrl",e.data.shortUrl),n(1,i=e.data.shortUrl))}).catch(e=>{console.error(e)})}return e.$$.update=()=>{1&e.$$.dirty&&n(0,o=o.trim()),1&e.$$.dirty&&n(2,r=ve.test(o))},[o,i,r,async function(){console.log("Shorten...");const e={url:o};await a(e)},a,function(){o=this.value,n(0,o)}]}return new class extends class{$destroy(){!function(e,t){const n=e.$$;null!==n.fragment&&(r(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}(this,1),this.$destroy=e}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(){}}{constructor(e){super(),O(this,e,be,ye,i,{})}}({target:document.body,props:{}})}(); diff --git a/pb_public/favicon.png b/pb_public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe7a0a2a9ab9243679a5809258c3042404c12c8 GIT binary patch literal 13331 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 Mx-E`H4(#~<16MJNzW@LL literal 0 HcmV?d00001 diff --git a/pb_public/global.css b/pb_public/global.css new file mode 100644 index 0000000..ec905f5 --- /dev/null +++ b/pb_public/global.css @@ -0,0 +1,66 @@ +html, body { + position: relative; + width: 100%; + height: 100%; +} + +body { + color: #333; + margin: 0; + padding: 8px; + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; +} + +a { + color: rgb(0,100,200); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +a:visited { + color: rgb(0,80,160); +} + +label { + display: block; +} + +input, button, select, textarea { + font-family: inherit; + font-size: inherit; + padding: 0.4em; + margin: 0 0 0.5em 0; + box-sizing: border-box; + border: 1px solid #ccc; + border-radius: 2px; +} + +input:disabled { + color: #ccc; +} + +input[type="range"] { + height: 0; +} + +button { + color: #333; + background-color: #f4f4f4; + outline: none; +} + +button:disabled { + color: #999; +} + +button:not(:disabled):active { + background-color: #ddd; +} + +button:focus { + border-color: #666; +} diff --git a/pb_public/index.html b/pb_public/index.html new file mode 100644 index 0000000..19648f7 --- /dev/null +++ b/pb_public/index.html @@ -0,0 +1,18 @@ + + + + + + + nUrl + + + + + + + + + + +