main 37d533e4de82 cached
505 files
5.5 MB
1.5M tokens
959 symbols
4 requests
Download .txt
Showing preview only (5,883K chars total). Download the full file or copy to clipboard to get everything.
Repository: yangshun/tech-interview-handbook
Branch: main
Commit: 37d533e4de82
Files: 505
Total size: 5.5 MB

Directory structure:
gitextract__wrmwl_2/

├── .editorconfig
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── lint.yml
│       └── tsc.yml
├── .gitignore
├── .vite-hooks/
│   └── pre-commit
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── algorithms/
│   └── README.md
├── apps/
│   ├── portal/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next-env.d.ts
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.cjs
│   │   ├── prisma/
│   │   │   ├── companies.csv
│   │   │   ├── data/
│   │   │   │   ├── cities.json
│   │   │   │   ├── countries.json
│   │   │   │   └── states.json
│   │   │   ├── migrations/
│   │   │   │   ├── 20220928103800_init/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221002033341_add_todos/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221006024246_add_companies/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221006090216_add_resume_schemas/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007062555_add_resume_profile_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007110225_add_questions_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007135344_remove_resumes_profile_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008090846_add_question_types/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008114522_add_questions_company_loaction_role/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008165306_update_vote_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221009093357_update_question_encounter_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221009160601_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221010055218_update_question_encounter_to_use_company_id/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221011042156_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221012161857_add_user_to_replies/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221013032033_update_resume_vote_to_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014192315_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014205230_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014211740_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221019104025_update_offers_remove_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221020101123_add_resume_comment_parent/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221020115540_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021150358_add_vote_count_and_last_seen/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021151424_delete_extra_encounter_fields/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021155717_add_sorting_index/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021231817_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021233952_change_currency_values_to_float/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023100925_update_last_seen_val_to_be_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023102619_add_list_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023203239_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024123252_add_upvotes_to_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024123849_add_upvotes_default_value/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024154046_remove_specialization_and_make_base_bonus_and_stocks_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221027052436_resumes_add_is_resolved_status/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221029180052_add_ecnounter_sort_support/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030024321_locations/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030121147_use_roles_and_location_table/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030133638_add_theory_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221031033529_change_analysis_models_to_allow_for_multiple_company_analysis/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221102121331_update_location_for_offers/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221103031927_change_company_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104042559_add_reference_to_analysed_offer_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104084342_add_cascade_delete_to_analysed_offer_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104084451_add_cascade_delete_to_overall_analysis_in_offers_analysis/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104095551_use_location_database_for_resumes/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221105140124_revert_default_location/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221106002645_country_ranking/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221107014555_company_website/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221108061935_add_comment_deletion/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221109070931_company_city_ranking/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221117094655_add_offersadmin_table/
│   │   │   │   │   └── migration.sql
│   │   │   │   └── migration_lock.toml
│   │   │   ├── salaries.xlsx
│   │   │   ├── schema.prisma
│   │   │   ├── seed-analysis.ts
│   │   │   ├── seed-companies.ts
│   │   │   ├── seed-questions.ts
│   │   │   ├── seed-salaries.ts
│   │   │   └── seed.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── global/
│   │   │   │   │   ├── AppShell.tsx
│   │   │   │   │   ├── GlobalNavigation.ts
│   │   │   │   │   ├── GoogleAnalytics.tsx
│   │   │   │   │   ├── HomeNavigation.ts
│   │   │   │   │   ├── MobileNavigation.tsx
│   │   │   │   │   └── ProductNavigation.tsx
│   │   │   │   ├── offers/
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── EducationFields.ts
│   │   │   │   │   ├── EducationLevels.ts
│   │   │   │   │   ├── InternshipCycles.ts
│   │   │   │   │   ├── JobTypeTabs.tsx
│   │   │   │   │   ├── OffersNavigation.tsx
│   │   │   │   │   ├── Years.ts
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   ├── OffersHeader.tsx
│   │   │   │   │   │   ├── OffersRow.tsx
│   │   │   │   │   │   ├── OffersTable.tsx
│   │   │   │   │   │   ├── OffersTablePagination.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── dashboard/
│   │   │   │   │   │   ├── DashboardOfferCard.tsx
│   │   │   │   │   │   └── DashboardProfileCard.tsx
│   │   │   │   │   ├── features/
│   │   │   │   │   │   ├── LeftTextCard.tsx
│   │   │   │   │   │   └── RightTextCard.tsx
│   │   │   │   │   ├── forms/
│   │   │   │   │   │   ├── FormCitiesTypeahead.tsx
│   │   │   │   │   │   ├── FormCompaniesTypeahead.tsx
│   │   │   │   │   │   ├── FormJobTitlesTypeahead.tsx
│   │   │   │   │   │   ├── FormMonthYearPicker.tsx
│   │   │   │   │   │   ├── FormRadioList.tsx
│   │   │   │   │   │   ├── FormSection.tsx
│   │   │   │   │   │   ├── FormSelect.tsx
│   │   │   │   │   │   ├── FormTextArea.tsx
│   │   │   │   │   │   └── FormTextInput.tsx
│   │   │   │   │   ├── offerAnalysis/
│   │   │   │   │   │   ├── OfferAnalysis.tsx
│   │   │   │   │   │   ├── OfferPercentileAnalysisText.tsx
│   │   │   │   │   │   └── OfferProfileCard.tsx
│   │   │   │   │   ├── offersSubmission/
│   │   │   │   │   │   ├── OffersProfileSave.tsx
│   │   │   │   │   │   ├── OffersSubmissionAnalysis.tsx
│   │   │   │   │   │   ├── OffersSubmissionForm.tsx
│   │   │   │   │   │   └── submissionForm/
│   │   │   │   │   │       ├── BackgroundForm.tsx
│   │   │   │   │   │       └── OfferDetailsForm.tsx
│   │   │   │   │   ├── profile/
│   │   │   │   │   │   ├── EducationCard.tsx
│   │   │   │   │   │   ├── OfferCard.tsx
│   │   │   │   │   │   ├── ProfileComments.tsx
│   │   │   │   │   │   ├── ProfileDetails.tsx
│   │   │   │   │   │   ├── ProfileHeader.tsx
│   │   │   │   │   │   ├── ProfilePhotoHolder.tsx
│   │   │   │   │   │   └── comments/
│   │   │   │   │   │       ├── CommentCard.tsx
│   │   │   │   │   │       └── ExpandableCommentCard.tsx
│   │   │   │   │   ├── table/
│   │   │   │   │   │   ├── OffersHeader.tsx
│   │   │   │   │   │   ├── OffersRow.tsx
│   │   │   │   │   │   ├── OffersTable.tsx
│   │   │   │   │   │   ├── OffersTablePagination.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── util/
│   │   │   │   │       └── Tooltip.tsx
│   │   │   │   ├── questions/
│   │   │   │   │   ├── AddToListDropdown.tsx
│   │   │   │   │   ├── ContributeQuestionCard.tsx
│   │   │   │   │   ├── ContributeQuestionDialog.tsx
│   │   │   │   │   ├── CreateListDialog.tsx
│   │   │   │   │   ├── DeleteListDialog.tsx
│   │   │   │   │   ├── DiscardDraftDialog.tsx
│   │   │   │   │   ├── FullScreenSpinner.tsx
│   │   │   │   │   ├── LandingComponent.tsx
│   │   │   │   │   ├── PaginationLoadMoreButton.tsx
│   │   │   │   │   ├── QuestionAggregateBadge.tsx
│   │   │   │   │   ├── QuestionContainer.tsx
│   │   │   │   │   ├── QuestionSearchBar.tsx
│   │   │   │   │   ├── QuestionTypeBadge.tsx
│   │   │   │   │   ├── QuestionsNavigation.tsx
│   │   │   │   │   ├── SortOptionsSelect.tsx
│   │   │   │   │   ├── VotingButtons.tsx
│   │   │   │   │   ├── card/
│   │   │   │   │   │   ├── AnswerCard.tsx
│   │   │   │   │   │   ├── FullAnswerCard.tsx
│   │   │   │   │   │   ├── QuestionAnswerCard.tsx
│   │   │   │   │   │   └── question/
│   │   │   │   │   │       ├── BaseQuestionCard.tsx
│   │   │   │   │   │       ├── FullQuestionCard.tsx
│   │   │   │   │   │       ├── QuestionListCard.tsx
│   │   │   │   │   │       ├── QuestionOverviewCard.tsx
│   │   │   │   │   │       └── SimilarQuestionCard.tsx
│   │   │   │   │   ├── comments/
│   │   │   │   │   │   ├── AnswerCommentListItem.tsx
│   │   │   │   │   │   ├── CommentListItem.tsx
│   │   │   │   │   │   └── QuestionCommentListItem.tsx
│   │   │   │   │   ├── filter/
│   │   │   │   │   │   └── FilterSection.tsx
│   │   │   │   │   ├── forms/
│   │   │   │   │   │   ├── ContributeQuestionForm.tsx
│   │   │   │   │   │   └── CreateQuestionEncounterForm.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   └── BackButtonLayout.tsx
│   │   │   │   │   ├── protected/
│   │   │   │   │   │   ├── ProtectedContextProvider.tsx
│   │   │   │   │   │   └── ProtectedDialog.tsx
│   │   │   │   │   └── typeahead/
│   │   │   │   │       ├── CompanyTypeahead.tsx
│   │   │   │   │       ├── ExpandedTypeahead.tsx
│   │   │   │   │       ├── LocationTypeahead.tsx
│   │   │   │   │       └── RoleTypeahead.tsx
│   │   │   │   ├── resumes/
│   │   │   │   │   ├── ResumePdf.tsx
│   │   │   │   │   ├── ResumesNavigation.tsx
│   │   │   │   │   ├── badgeIcons/
│   │   │   │   │   │   ├── popularResumes/
│   │   │   │   │   │   │   ├── ResumeBadgeCoolIcon.tsx
│   │   │   │   │   │   │   ├── ResumeBadgeRocketIcon.tsx
│   │   │   │   │   │   │   └── ResumeBadgeTreasureIcon.tsx
│   │   │   │   │   │   ├── resume-badge.d.ts
│   │   │   │   │   │   ├── reviewer/
│   │   │   │   │   │   │   ├── ResumeBadgeDetectiveIcon.tsx
│   │   │   │   │   │   │   ├── ResumeBadgeEagleIcon.tsx
│   │   │   │   │   │   │   └── ResumeBadgeSuperheroIcon.tsx
│   │   │   │   │   │   └── topComment/
│   │   │   │   │   │       ├── ResumeBadgeBookIcon.tsx
│   │   │   │   │   │       ├── ResumeBadgeOwlIcon.tsx
│   │   │   │   │   │       └── ResumeBadgeSageIcon.tsx
│   │   │   │   │   ├── badges/
│   │   │   │   │   │   ├── ResumeUserBadge.tsx
│   │   │   │   │   │   ├── ResumeUserBadges.tsx
│   │   │   │   │   │   └── resumeBadgeConstants.ts
│   │   │   │   │   ├── browse/
│   │   │   │   │   │   ├── ResumeFilterPill.tsx
│   │   │   │   │   │   ├── ResumeListItem.tsx
│   │   │   │   │   │   └── ResumeListItems.tsx
│   │   │   │   │   ├── comments/
│   │   │   │   │   │   ├── ResumeCommentListItem.tsx
│   │   │   │   │   │   ├── ResumeCommentsForm.tsx
│   │   │   │   │   │   ├── ResumeCommentsList.tsx
│   │   │   │   │   │   ├── comment/
│   │   │   │   │   │   │   ├── ResumeCommentDeleteForm.tsx
│   │   │   │   │   │   │   ├── ResumeCommentEditForm.tsx
│   │   │   │   │   │   │   ├── ResumeCommentReplyForm.tsx
│   │   │   │   │   │   │   └── ResumeCommentVoteButtons.tsx
│   │   │   │   │   │   └── resumeCommentConstants.ts
│   │   │   │   │   ├── landing/
│   │   │   │   │   │   ├── CallToAction.tsx
│   │   │   │   │   │   ├── Container.tsx
│   │   │   │   │   │   ├── Hero.tsx
│   │   │   │   │   │   ├── Logo.tsx
│   │   │   │   │   │   └── PrimaryFeatures.tsx
│   │   │   │   │   ├── shared/
│   │   │   │   │   │   ├── ResumeExpandableText.tsx
│   │   │   │   │   │   ├── ResumeExperienceTypeahead.tsx
│   │   │   │   │   │   └── ResumeSignInButton.tsx
│   │   │   │   │   └── submit-form/
│   │   │   │   │       └── ResumeSubmissionGuidelines.tsx
│   │   │   │   └── shared/
│   │   │   │       ├── CitiesTypeahead.tsx
│   │   │   │       ├── CompaniesTypeahead.tsx
│   │   │   │       ├── CompanyProfileImage.tsx
│   │   │   │       ├── Container.tsx
│   │   │   │       ├── CountriesTypeahead.tsx
│   │   │   │       ├── JobTitles.ts
│   │   │   │       ├── JobTitlesTypeahead.tsx
│   │   │   │       ├── MonthYearPicker.tsx
│   │   │   │       ├── icons/
│   │   │   │       │   └── GitHubIcon.tsx
│   │   │   │       └── loginPageHref.ts
│   │   │   ├── constants/
│   │   │   │   └── file-storage-keys.ts
│   │   │   ├── env/
│   │   │   │   ├── client.mjs
│   │   │   │   ├── schema.mjs
│   │   │   │   └── server.mjs
│   │   │   ├── mappers/
│   │   │   │   └── offers-mappers.ts
│   │   │   ├── middleware.ts
│   │   │   ├── pages/
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── [...nextauth].ts
│   │   │   │   │   ├── file-storage.ts
│   │   │   │   │   ├── restricted.ts
│   │   │   │   │   └── trpc/
│   │   │   │   │       └── [trpc].ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── login.tsx
│   │   │   │   ├── offers/
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── admin.tsx
│   │   │   │   │   ├── dashboard.tsx
│   │   │   │   │   ├── features.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── profile/
│   │   │   │   │   │   ├── [offerProfileId].tsx
│   │   │   │   │   │   └── edit/
│   │   │   │   │   │       └── [offerProfileId].tsx
│   │   │   │   │   └── submit/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── result/
│   │   │   │   │           └── [offerProfileId].tsx
│   │   │   │   ├── profile.tsx
│   │   │   │   ├── questions/
│   │   │   │   │   ├── [questionId]/
│   │   │   │   │   │   └── [questionSlug]/
│   │   │   │   │   │       ├── answer/
│   │   │   │   │   │       │   └── [answerId]/
│   │   │   │   │   │       │       └── [answerSlug]/
│   │   │   │   │   │       │           └── index.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── browse.tsx
│   │   │   │   │   ├── history.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lists.tsx
│   │   │   │   │   └── my-questions.tsx
│   │   │   │   ├── resumes/
│   │   │   │   │   ├── [resumeId].tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── features.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── submit.tsx
│   │   │   │   ├── settings.tsx
│   │   │   │   ├── test__.tsx
│   │   │   │   └── todos/
│   │   │   │       ├── index.tsx
│   │   │   │       └── new.tsx
│   │   │   ├── server/
│   │   │   │   ├── common/
│   │   │   │   │   └── get-server-auth-session.ts
│   │   │   │   ├── db/
│   │   │   │   │   └── client.ts
│   │   │   │   └── router/
│   │   │   │       ├── companies-router.ts
│   │   │   │       ├── context.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── locations-router.ts
│   │   │   │       ├── offers/
│   │   │   │       │   ├── offers-admin-router.ts
│   │   │   │       │   ├── offers-analysis-router.ts
│   │   │   │       │   ├── offers-comments-router.ts
│   │   │   │       │   ├── offers-profile-router.ts
│   │   │   │       │   ├── offers-user-profile-router.ts
│   │   │   │       │   └── offers.ts
│   │   │   │       ├── protected-example-router.ts
│   │   │   │       ├── questions/
│   │   │   │       │   ├── questions-answer-comment-router.ts
│   │   │   │       │   ├── questions-answer-comment-user-router.ts
│   │   │   │       │   ├── questions-answer-router.ts
│   │   │   │       │   ├── questions-answer-user-router.ts
│   │   │   │       │   ├── questions-list-router.ts
│   │   │   │       │   ├── questions-question-comment-router.ts
│   │   │   │       │   ├── questions-question-comment-user-router.ts
│   │   │   │       │   ├── questions-question-encounter-router.ts
│   │   │   │       │   ├── questions-question-encounter-user-router.ts
│   │   │   │       │   ├── questions-question-router.ts
│   │   │   │       │   └── questions-question-user-router.ts
│   │   │   │       ├── resumes/
│   │   │   │       │   ├── resumes-comments-router.ts
│   │   │   │       │   ├── resumes-comments-user-router.ts
│   │   │   │       │   ├── resumes-comments-votes-router.ts
│   │   │   │       │   ├── resumes-comments-votes-user-router.ts
│   │   │   │       │   ├── resumes-resume-router.ts
│   │   │   │       │   ├── resumes-resume-user-router.ts
│   │   │   │       │   └── resumes-star-user-router.ts
│   │   │   │       ├── todos-user-router.ts
│   │   │   │       ├── todos.ts
│   │   │   │       └── user-router.ts
│   │   │   ├── styles/
│   │   │   │   └── globals.css
│   │   │   ├── types/
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── next-auth.d.ts
│   │   │   │   ├── offers.d.ts
│   │   │   │   ├── questions.d.ts
│   │   │   │   ├── resume-comments.d.ts
│   │   │   │   └── resume.d.ts
│   │   │   ├── ui/
│   │   │   │   ├── Alert/
│   │   │   │   │   └── Alert.tsx
│   │   │   │   ├── Badge/
│   │   │   │   │   └── Badge.tsx
│   │   │   │   ├── Banner/
│   │   │   │   │   └── Banner.tsx
│   │   │   │   ├── Button/
│   │   │   │   │   └── Button.tsx
│   │   │   │   ├── CheckboxInput/
│   │   │   │   │   └── CheckboxInput.tsx
│   │   │   │   ├── CheckboxList/
│   │   │   │   │   └── CheckboxList.tsx
│   │   │   │   ├── Collapsible/
│   │   │   │   │   └── Collapsible.tsx
│   │   │   │   ├── Dialog/
│   │   │   │   │   └── Dialog.tsx
│   │   │   │   ├── DropdownMenu/
│   │   │   │   │   ├── DropdownMenu.tsx
│   │   │   │   │   └── DropdownMenuItem.tsx
│   │   │   │   ├── HorizontalDivider/
│   │   │   │   │   └── HorizontalDivider.tsx
│   │   │   │   ├── Pagination/
│   │   │   │   │   └── Pagination.tsx
│   │   │   │   ├── RadioList/
│   │   │   │   │   ├── RadioList.tsx
│   │   │   │   │   ├── RadioListContext.ts
│   │   │   │   │   └── RadioListItem.tsx
│   │   │   │   ├── Select/
│   │   │   │   │   └── Select.tsx
│   │   │   │   ├── SlideOut/
│   │   │   │   │   └── SlideOut.tsx
│   │   │   │   ├── Spinner/
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── Tabs/
│   │   │   │   │   └── Tabs.tsx
│   │   │   │   ├── TextArea/
│   │   │   │   │   └── TextArea.tsx
│   │   │   │   ├── TextInput/
│   │   │   │   │   └── TextInput.tsx
│   │   │   │   ├── Toast/
│   │   │   │   │   ├── Toast.tsx
│   │   │   │   │   └── ToastsProvider.tsx
│   │   │   │   ├── Typeahead/
│   │   │   │   │   └── Typeahead.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── styles.css
│   │   │   └── utils/
│   │   │       ├── JobExperienceLevel.ts
│   │   │       ├── offers/
│   │   │       │   ├── analysis/
│   │   │       │   │   ├── analysisGeneration.ts
│   │   │       │   │   └── analysisInclusion.ts
│   │   │       │   ├── currency/
│   │   │       │   │   ├── CurrencyEnum.tsx
│   │   │       │   │   ├── CurrencySelector.tsx
│   │   │       │   │   ├── currencyExchange.ts
│   │   │       │   │   └── index.tsx
│   │   │       │   ├── form.tsx
│   │   │       │   ├── link.tsx
│   │   │       │   ├── randomGenerator.ts
│   │   │       │   ├── randomNameGenerator.ts
│   │   │       │   ├── string.tsx
│   │   │       │   ├── time.tsx
│   │   │       │   ├── useSearchParam.ts
│   │   │       │   └── zodRegex.ts
│   │   │       ├── questions/
│   │   │       │   ├── RequireAllOrNone.ts
│   │   │       │   ├── companySlug.ts
│   │   │       │   ├── constants.ts
│   │   │       │   ├── createSlug.ts
│   │   │       │   ├── locationSlug.ts
│   │   │       │   ├── mutations.ts
│   │   │       │   ├── relabelQuestionAggregates.ts
│   │   │       │   ├── server/
│   │   │       │   │   └── aggregate-encounters.ts
│   │   │       │   ├── useDefaultCompany.ts
│   │   │       │   ├── useDefaultLocation.ts
│   │   │       │   ├── useFormRegister.ts
│   │   │       │   ├── useLocationOptions.ts
│   │   │       │   ├── useProtectedCallback.ts
│   │   │       │   ├── useSearchParam.ts
│   │   │       │   ├── vote/
│   │   │       │   │   ├── useAnswerCommentVote.ts
│   │   │       │   │   ├── useAnswerVote.ts
│   │   │       │   │   ├── useQuestionCommentVote.ts
│   │   │       │   │   ├── useQuestionVote.ts
│   │   │       │   │   └── useVote.ts
│   │   │       │   └── withHref.tsx
│   │   │       ├── resumes/
│   │   │       │   ├── resumeFilters.ts
│   │   │       │   ├── resumePrismaUtils.ts
│   │   │       │   ├── useDebounceValue.ts
│   │   │       │   └── useSearchParams.ts
│   │   │       ├── shared/
│   │   │       │   ├── useCompanyOptions.ts
│   │   │       │   ├── useCountryOptions.ts
│   │   │       │   └── useJobTitleOptions.ts
│   │   │       ├── supabase.ts
│   │   │       └── trpc.ts
│   │   ├── tailwind.config.cjs
│   │   ├── tsconfig.json
│   │   └── vercel.json
│   └── website/
│       ├── .gitignore
│       ├── .npmrc
│       ├── README.md
│       ├── blog/
│       │   ├── 2019-11-03-are-front-end-development-enough-for-a-career.md
│       │   ├── 2020-05-28-summing-root-to-leaf-numbers.md
│       │   ├── 2021-04-12-importance-of-communicating-effectively-as-an-engineer.md
│       │   ├── 2021-08-19-facebook-career-questions-and-answers.md
│       │   ├── 2021-08-28-front-end-career-questions.md
│       │   ├── 2021-08-29-resume-improvement-case-study.md
│       │   ├── 2021-08-30-a-glimpse-into-front-end-interviews.md
│       │   ├── 2021-10-30-my-experience-working-as-a-meta-engineer.md
│       │   ├── 2021-12-23-front-end-vs-back-end-system-design-interviews.md
│       │   ├── 2022-04-20-take-control-over-your-coding-interview.md
│       │   ├── 2022-04-21-why-you-should-include-debugging-in-the-interview-process.md
│       │   ├── 2022-07-09-getting-a-tech-job-as-an-undergraduate.md
│       │   └── 2023-05-17-how-to-have-successful-software-engineering-internship.md
│       ├── contents/
│       │   ├── _components/
│       │   │   ├── InDocAd.js
│       │   │   ├── QuestionGroups.json
│       │   │   └── QuestionList.js
│       │   ├── _courses/
│       │   │   └── AlgorithmCourses.md
│       │   ├── algorithms/
│       │   │   ├── __template__.md
│       │   │   ├── array.md
│       │   │   ├── binary.md
│       │   │   ├── dynamic-programming.md
│       │   │   ├── geometry.md
│       │   │   ├── graph.md
│       │   │   ├── hash-table.md
│       │   │   ├── heap.md
│       │   │   ├── interval.md
│       │   │   ├── linked-list.md
│       │   │   ├── math.md
│       │   │   ├── matrix.md
│       │   │   ├── oop.md
│       │   │   ├── queue.md
│       │   │   ├── recursion.md
│       │   │   ├── sorting-searching.md
│       │   │   ├── stack.md
│       │   │   ├── string.md
│       │   │   ├── study-cheatsheet.md
│       │   │   ├── tree.md
│       │   │   └── trie.md
│       │   ├── behavioral-interview-questions.md
│       │   ├── behavioral-interview-rubrics.md
│       │   ├── behavioral-interview-senior-candidates.md
│       │   ├── behavioral-interview.md
│       │   ├── best-coding-interview-courses.md
│       │   ├── best-practice-questions.md
│       │   ├── career-growth.md
│       │   ├── choosing-between-companies.md
│       │   ├── coding-interview-cheatsheet.md
│       │   ├── coding-interview-prep.md
│       │   ├── coding-interview-rubrics.md
│       │   ├── coding-interview-study-plan.md
│       │   ├── coding-interview-techniques.md
│       │   ├── engineering-levels.md
│       │   ├── final-questions.md
│       │   ├── interview-formats-top-companies.md
│       │   ├── interviewer-cheatsheet.md
│       │   ├── landscape.md
│       │   ├── mock-interviews.md
│       │   ├── negotiation-rules.md
│       │   ├── negotiation.md
│       │   ├── programming-languages-for-coding-interviews.md
│       │   ├── resume-old.md
│       │   ├── resume.md
│       │   ├── self-introduction.md
│       │   ├── software-engineering-interview-guide.md
│       │   ├── system-design.md
│       │   └── understanding-compensation.md
│       ├── docusaurus.config.js
│       ├── experimental/
│       │   ├── front-end/
│       │   │   └── README.md
│       │   ├── topics.md
│       │   └── utilities/
│       │       ├── javascript/
│       │       │   ├── binToInt.js
│       │       │   ├── binarySearch.js
│       │       │   ├── deepEqual.js
│       │       │   ├── graphTopoSort.js
│       │       │   ├── intToBin.js
│       │       │   ├── intervalsIntersect.js
│       │       │   ├── intervalsMerge.js
│       │       │   ├── isSubsequence.js
│       │       │   ├── matrixClone.js
│       │       │   ├── matrixTranspose.js
│       │       │   ├── matrixTraverse.js
│       │       │   ├── mergeSort.js
│       │       │   ├── treeEqual.js
│       │       │   └── treeMirror.js
│       │       └── python/
│       │           ├── binary_search.py
│       │           ├── char_prime_map.py
│       │           ├── graph_dfs.py
│       │           ├── graph_topo_sort.py
│       │           ├── heap.py
│       │           ├── is_subsequence.py
│       │           ├── linked_list.py
│       │           ├── quick_select.py
│       │           ├── rabin_karp_hash.py
│       │           ├── tree_equal.py
│       │           ├── tree_mirror.py
│       │           ├── tree_traversal.py
│       │           ├── trie.py
│       │           └── union_find.py
│       ├── functions/
│       │   └── grind75/
│       │       └── [[catchall]].js
│       ├── package.json
│       ├── sidebars.js
│       ├── src/
│       │   ├── components/
│       │   │   └── SidebarAd/
│       │   │       ├── index.js
│       │   │       └── styles.module.css
│       │   ├── css/
│       │   │   └── custom.css
│       │   ├── data/
│       │   │   └── successStories.js
│       │   ├── pages/
│       │   │   ├── advertise.md
│       │   │   ├── index.js
│       │   │   └── styles.module.css
│       │   └── theme/
│       │       ├── DocItem/
│       │       │   ├── Content/
│       │       │   │   └── index.js
│       │       │   └── Layout/
│       │       │       ├── index.js
│       │       │       └── styles.module.css
│       │       ├── DocSidebar/
│       │       │   └── Mobile/
│       │       │       ├── index.d.ts
│       │       │       └── index.js
│       │       └── TOC/
│       │           ├── index.js
│       │           └── styles.module.css
│       └── static/
│           ├── CNAME
│           ├── _redirects
│           └── ads.txt
├── package.json
├── packages/
│   ├── tailwind-config/
│   │   ├── package.json
│   │   └── tailwind.config.js
│   └── tsconfig/
│       ├── base.json
│       ├── nextjs.json
│       ├── package.json
│       └── react-library.json
├── pnpm-workspace.yaml
└── vite.config.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{js,py}]
charset = utf-8
indent_style = space
indent_size = 2


================================================
FILE: .github/FUNDING.yml
================================================
github: [yangshun]
open_collective: tech-interview-handbook
custom: https://www.buymeacoffee.com/yangshun


================================================
FILE: .github/workflows/lint.yml
================================================
# Workspace validation using Vite+
name: Check

on:
  pull_request:
    branches:
      - main

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  check:
    name: Check
    timeout-minutes: 30
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Set up Vite+
        uses: voidzero-dev/setup-vp@v1
        with:
          node-version: '25.8.1'
          cache: true
      - name: Installation
        run: vp install
      - name: Check
        run: vp check
      - name: Test
        run: vp test


================================================
FILE: .github/workflows/tsc.yml
================================================
# Framework builds using Vite+ task orchestration
name: Build

on:
  pull_request:
    branches:
      - main

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

permissions:
  contents: read

env:
  DATABASE_URL: 'postgresql://postgres:password@localhost:5432/postgres'
  GITHUB_CLIENT_ID: '1234'
  GITHUB_CLIENT_SECRET: 'abcd'
  NEXTAUTH_SECRET: 'efgh'
  NEXTAUTH_URL: 'http://localhost:3000'
  NODE_ENV: test
  SUPABASE_ANON_KEY: 'ijkl'
  SUPABASE_URL: 'https://abcd.supabase.co'

jobs:
  build:
    name: Build
    timeout-minutes: 30
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Set up Vite+
        uses: voidzero-dev/setup-vp@v1
        with:
          node-version: '25.8.1'
          cache: true
      - name: Installation
        run: vp install
      - name: Build website
        run: vp run --filter @tih/website build
      - name: Build portal
        run: vp run --filter @tih/portal build


================================================
FILE: .gitignore
================================================
.idea
.DS_Store
node_modules
.turbo
*.log
.next
dist
dist-ssr
*.local
.env
.cache
server/dist
public/dist
.turbo

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

tsconfig.tsbuildinfo


================================================
FILE: .vite-hooks/pre-commit
================================================
vp staged


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": ["oxc.oxc-vscode"]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "files.trimFinalNewlines": true,
  "files.trimTrailingWhitespace": true,
  "cSpell.autoFormatConfigFile": true,
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file",
  "javascript.format.enable": true,
  "json.format.enable": true,
  "css.format.enable": true,
  "css.format.newlineBetweenRules": true,
  "css.format.newlineBetweenSelectors": true,
  "css.format.preserveNewLines": true,
  "typescript.format.enable": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.oxc": "always"
  },
  "[prisma]": {
    "editor.defaultFormatter": "Prisma.prisma"
  }
}


================================================
FILE: AGENTS.md
================================================
<!--VITE PLUS START-->

# Using Vite+, the Unified Toolchain for the Web

This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`.

## Vite+ Workflow

`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.

### Start

- create - Create a new project from a template
- migrate - Migrate an existing project to Vite+
- config - Configure hooks and agent integration
- staged - Run linters on staged files
- install (`i`) - Install dependencies
- env - Manage Node.js versions

### Develop

- dev - Run the development server
- check - Run format, lint, and TypeScript type checks
- lint - Lint code
- fmt - Format code
- test - Run tests

### Execute

- run - Run monorepo tasks
- exec - Execute a command from local `node_modules/.bin`
- dlx - Execute a package binary without installing it as a dependency
- cache - Manage the task cache

### Build

- build - Build for production
- pack - Build libraries
- preview - Preview production build

### Manage Dependencies

Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles.

- add - Add packages to dependencies
- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies
- update (`up`) - Update packages to latest versions
- dedupe - Deduplicate dependencies
- outdated - Check for outdated packages
- list (`ls`) - List installed packages
- why (`explain`) - Show why a package is installed
- info (`view`, `show`) - View package information from the registry
- link (`ln`) / unlink - Manage local package links
- pm - Forward a command to the package manager

### Maintain

- upgrade - Update `vp` itself to the latest version

These commands map to their corresponding tools. For example, `vp dev --port 3000` runs Vite's dev server and works the same as Vite. `vp test` runs JavaScript tests through the bundled Vitest. The version of all tools can be checked using `vp --version`. This is useful when researching documentation, features, and bugs.

## Common Pitfalls

- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations.
- **Always use Vite commands to run tools:** Don't attempt to run `vp vitest` or `vp oxlint`. They do not exist. Use `vp test` and `vp lint` instead.
- **Running scripts:** Vite+ built-in commands (`vp dev`, `vp build`, `vp test`, etc.) always run the Vite+ built-in tool, not any `package.json` script of the same name. To run a custom script that shares a name with a built-in command, use `vp run <script>`. For example, if you have a custom `dev` script that runs multiple services concurrently, run it with `vp run dev`, not `vp dev` (which always starts Vite's dev server).
- **Do not install Vitest, Oxlint, Oxfmt, or tsdown directly:** Vite+ wraps these tools. They must not be installed directly. You cannot upgrade these tools by installing their latest versions. Always use Vite+ commands.
- **Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands.
- **Import JavaScript modules from `vite-plus`:** Instead of importing from `vite` or `vitest`, all modules should be imported from the project's `vite-plus` dependency. For example, `import { defineConfig } from 'vite-plus';` or `import { expect, test, vi } from 'vite-plus/test';`. You must not install `vitest` to import test utilities.
- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box.

## Review Checklist for Agents

- [ ] Run `vp install` after pulling remote changes and before getting started.
- [ ] Run `vp check` and `vp test` to validate changes.
<!--VITE PLUS END-->


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

We have adopted the same Code of Conduct as Facebook that we expect project participants to adhere to. Please read [the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated.


================================================
FILE: CONTRIBUTING.md
================================================
## Contributing

When contributing to this repository, if it is a non-trivial change, please first discuss the change you wish to make via creating an issue in this repository.

As much as possible, try to follow the existing format of markdown and code. JavaScript code should adopt [Standard style](https://standardjs.com/).

Please note we have a Code of Conduct, please follow it in all your interactions with the project.


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2017-Present Yangshun Tay

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
<h1 align="center">Tech Interview Handbook</h1>

<div align="center">
  <a href="https://www.techinterviewhandbook.org/">
    <img src="assets/logo.svg" alt="Tech Interview Handbook" width="400" />
  </a>
  <br />
  <h3>
    <a href="https://www.techinterviewhandbook.org/">Read on the website</a>
  </h3>
  <p>
    Join/follow us on <a href="https://discord.com/invite/usMqNaPczq" target="_blank">Discord</a> | <a href="https://twitter.com/techinterviewhb" target="_blank">𝕏 (Twitter)</a> | <a href="https://t.me/techinterviewhandbook" target="_blank">Telegram</a> |  <a href="https://facebook.com/techinterviewhandbook" target="_blank">Facebook</a>
  </p>
</div>

---

<a href="https://www.techinterviewhandbook.org/software-engineering-interview-guide/" target="_blank">
  <img src="assets/start-reading-button.jpg" alt="Start Reading Tech Interview Handbook" />
</a>

## What is this?

Not everyone has the time to do a few hundred LeetCode questions. Here are _free and curated_ technical interview preparation materials for busy engineers, brought to you by me, the author of [Blind 75](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU). Over 1,000,000 people have benefitted from this handbook!

Besides the usual algorithm questions, other **awesome** stuff includes:

- [Best practice questions](https://www.techinterviewhandbook.org/coding-interview-study-plan/) for coding interviews
- [Grind 75](https://www.techinterviewhandbook.org/grind75/) - the next evolution of Blind 75, bigger and better
- [How to prepare](https://www.techinterviewhandbook.org/coding-interview-prep/) for coding interviews
- [Coding interview best practices](https://www.techinterviewhandbook.org/coding-interview-cheatsheet/) - Straight-to-the-point Do's and Don'ts
- [Algorithm cheatsheets and tips](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet/) categorized by topic
- [Step-by-step Software Engineer resume guide](https://www.techinterviewhandbook.org/resume/) to prepare a FAANG-ready resume
- [Behavioral questions](https://www.techinterviewhandbook.org/behavioral-interview-questions/) asked by the top tech companies
- [Front end interview preparation](https://www.frontendinterviewhandbook.com)

Help from you in contributing content would be very much appreciated!

## Why would you read this?

This repository has **practical** content that covers all phases of a technical interview, from applying for a job to passing the interviews to offer negotiation. Technically competent candidates might still find the non-technical content helpful.

The information in this repository is condensed. Ultimately, the key to succeeding in technical interviews is consistent practice and I don't want to bore you with too many words. I tell you the minimum you need to know on how to go about navigating the interview process, you go and practice and land your dream job.

## Who is this for?

Anybody who wants to land a job at a tech company but is new to technical interviews, seasoned engineers who have not been on the other side of the interviewing table in a while and want to get back into the game, or anyone who wants to be better at technical interviewing.

---

<div align="center">
  <h3>💡 Stop grinding mindlessly! Study coding question patterns efficiently with
    <a href="https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU">Grokking the Coding Interview</a> by Design Gurus 💡
  </h3>
</div>

---

## How is this repository different?

There are many awesome books like "Cracking the Coding Interview" and interview-related repositories out there on GitHub, what makes this repository different? The difference is that many existing interview repositories contain mainly links to external resources whereas this repository contains top-quality curated content directly for your consumption.

Also, existing resources focus mainly on algorithm questions and lack coverage for more domain-specific and non-technical questions. This handbook aims to cover content beyond the typical algorithmic coding questions. 😎

## Looking for interview courses?

### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)

AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=)

### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)

This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Get lifetime access today →**](https://www.designgurus.io/course/grokking-the-coding-interview?aff=kJSIoU)

## Looking for Front End content?

Front-end-related content has been moved to a separate website - [Front End Interview Handbook](https://frontendinterviewhandbook.com).

## Looking for System Design content?

We're still working on System Design content. In the meanwhile, check out [ByteByteGo's System Design Interview course](https://bytebytego.com?fpr=techinterviewhandbook) or Design Gurus' [Grokking the System Design Interview course](https://www.designgurus.io/course/grokking-the-system-design-interview?aff=kJSIoU), which in our opinion are among the most useful resources for getting started on system design interviews preparation.

## Contents

A [Docusaurus](https://github.com/facebook/docusaurus) website has been created to provide a better reading experience. Check out the website [here](https://www.techinterviewhandbook.org)!

---

<div align="center">
  <h3>💡 Stop the grind and study with a plan! Developed by Google engineers, <a href="https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=">AlgoMonster</a> is the fastest way to get a software engineering job. <a href="https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=">Join today for a 70% discount!</a> 💡</h3>
</div>

---

## Related

If you are interested in how data structures are implemented, check out [Lago](https://github.com/yangshun/lago), a Data Structures and Algorithms library for JavaScript. It is pretty much still WIP but I intend to make it into a library that can be used in production and also a reference resource for revising Data Structures and Algorithms.

## Contributing

There are no formal contributing guidelines at the moment as things are still in flux and we might find a better approach to structure content as we go along. You are welcome to contribute whatever you think will be helpful to fellow engineers. If you would like to contribute content for different domains, feel free to create an issue or submit a pull request and we can discuss further.

### Contributors

This project exists thanks to all the people who contributed. [[Contribute](CONTRIBUTING.md)]. <a href="https://github.com/yangshun/tech-interview-handbook/graphs/contributors"><img src="https://opencollective.com/tech-interview-handbook/contributors.svg?width=890&button=false"></a>

### Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/tech-interview-handbook#backer)]

<a href="https://opencollective.com/tech-interview-handbook#backers" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/backers.svg?width=890"></a>

<a href="https://www.buymeacoffee.com/yangshun" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important; width: auto !important;"></a>

### Sponsors

Support this project by becoming a sponsor. Your logo/profile picture will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/tech-interview-handbook#sponsor)]

<a href="https://opencollective.com/tech-interview-handbook/sponsor/0/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/1/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/2/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/3/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/4/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/5/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/6/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/7/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/8/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/tech-interview-handbook/sponsor/9/website" target="_blank"><img src="https://opencollective.com/tech-interview-handbook/sponsor/9/avatar.svg"></a>

## Disclaimer

I am providing code in the repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer (Meta).


================================================
FILE: algorithms/README.md
================================================
# Algorithms

The contents have been moved to the [website](https://www.techinterviewhandbook.org/algorithms/study-cheatsheet).

<!-- TODO: Remove in future -->


================================================
FILE: apps/portal/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# database
/prisma/db.sqlite
/prisma/db.sqlite-journal

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo


================================================
FILE: apps/portal/README.md
================================================
# Create T3 App

This is an app bootstrapped according to the [init.tips](https://init.tips) stack, also known as the T3-Stack.

## Why are there `.js` files in here?

As per [T3-Axiom #3](https://github.com/t3-oss/create-t3-app/tree/next#3-typesafety-isnt-optional), we take typesafety as a first class citizen. Unfortunately, not all frameworks and plugins support TypeScript which means some of the configuration files have to be `.js` files.

We try to emphasize that these files are javascript for a reason, by explicitly declaring its type (`cjs` or `mjs`) depending on what's supported by the library it is used by. Also, all the `js` files in this project are still typechecked using a `@ts-check` comment at the top.

## What's next? How do I make an app with this?

We try to keep this project as simple as possible, so you can start with the most basic configuration and then move on to more advanced configuration.

If you are not familiar with the different technologies used in this project, please refer to the respective docs. If you still are in the wind, please join our [Discord](https://t3.gg/discord) and ask for help.

- [Next-Auth.js](https://next-auth.js.org)
- [Prisma](https://prisma.io)
- [TailwindCSS](https://tailwindcss.com)
- [tRPC](https://trpc.io) (using @next version? [see v10 docs here](https://trpc.io/docs/v10/))

Also checkout these awesome tutorials on `create-t3-app`.

- [Build a Blog With the T3 Stack - tRPC, TypeScript, Next.js, Prisma & Zod](https://www.youtube.com/watch?v=syEWlxVFUrY)
- [Build a Live Chat Application with the T3 Stack - TypeScript, Tailwind, tRPC](https://www.youtube.com/watch?v=dXRRY37MPuk)
- [Build a full stack app with create-t3-app](https://www.nexxel.dev/blog/ct3a-guestbook)
- [A first look at create-t3-app](https://dev.to/ajcwebdev/a-first-look-at-create-t3-app-1i8f)

## How do I deploy this?

### Vercel

We recommend deploying to [Vercel](https://vercel.com/?utm_source=t3-oss&utm_campaign=oss). It makes it super easy to deploy NextJs apps.

- Push your code to a GitHub repository.
- Go to [Vercel](https://vercel.com/?utm_source=t3-oss&utm_campaign=oss) and sign up with GitHub.
- Create a Project and import the repository you pushed your code to.
- Add your environment variables.
- Click **Deploy**
- Now whenever you push a change to your repository, Vercel will automatically redeploy your website!

### Docker

You can also dockerize this stack and deploy a container. See the [Docker deployment page](https://create-t3-app-nu.vercel.app/en/deployment/docker) for details.

## Useful resources

Here are some resources that we commonly refer to:

- [Protecting routes with Next-Auth.js](https://next-auth.js.org/configuration/nextjs#unstable_getserversession)


================================================
FILE: apps/portal/next-env.d.ts
================================================
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.


================================================
FILE: apps/portal/next.config.mjs
================================================
import './src/env/server.mjs';

/**
 * Don't be scared of the generics here.
 * All they do is to give us autocompletion when using this.
 *
 * @template {import('next').NextConfig} T
 * @param {T} config - A generic parameter that flows through to the return type
 * @constraint {{import('next').NextConfig}}
 */
function defineNextConfig(config) {
  return config;
}

export default defineNextConfig({
  experimental: {
    esmExternals: 'loose',
  },
  reactStrictMode: true,
  swcMinify: true,
});


================================================
FILE: apps/portal/package.json
================================================
{
  "name": "@tih/portal",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "vp lint next.config.mjs src",
    "tsc": "tsc",
    "postinstall": "prisma generate",
    "seed": "ts-node prisma/seed.ts",
    "seed-salaries": "ts-node prisma/seed-salaries.ts",
    "seed-analysis": "ts-node prisma/seed-analysis.ts",
    "seed-questions": "ts-node prisma/seed-questions.ts",
    "seed-companies": "ts-node prisma/seed-companies.ts"
  },
  "dependencies": {
    "@headlessui/react": "^1.7.3",
    "@heroicons/react": "2.0.11",
    "@next-auth/prisma-adapter": "^1.0.4",
    "@popperjs/core": "^2.11.6",
    "@prisma/client": "^4.4.0",
    "@supabase/supabase-js": "^1.35.7",
    "@trpc/client": "^9.27.2",
    "@trpc/next": "^9.27.2",
    "@trpc/react": "^9.27.2",
    "@trpc/server": "^9.27.2",
    "axios": "^1.1.2",
    "clsx": "^1.2.1",
    "cross-fetch": "^3.1.5",
    "date-fns": "^2.29.3",
    "formidable": "^2.0.1",
    "next": "14.2.4",
    "next-auth": "~4.10.3",
    "node-fetch": "^3.2.10",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-dropzone": "^14.2.3",
    "react-hook-form": "^7.36.1",
    "react-pdf": "^5.7.2",
    "react-popper": "^2.3.0",
    "react-popper-tooltip": "^4.4.2",
    "react-query": "^3.39.2",
    "read-excel-file": "^5.5.3",
    "superjson": "^1.10.0",
    "unique-names-generator": "^4.7.1",
    "xlsx": "^0.18.5",
    "zod": "^3.18.0"
  },
  "devDependencies": {
    "@tih/tailwind-config": "workspace:0.0.0",
    "@tih/tsconfig": "workspace:0.0.0",
    "@types/formidable": "^2.0.5",
    "@types/node": "^18.0.0",
    "@types/react": "18.0.28",
    "@types/react-dom": "18.0.11",
    "@types/react-pdf": "^5.7.2",
    "autoprefixer": "^10.4.12",
    "csv": "^6.2.2",
    "postcss": "^8.4.16",
    "prisma": "^4.4.0",
    "ts-node": "^10.9.1",
    "typescript": "4.8.3"
  },
  "ct3aMetadata": {
    "initVersion": "5.13.1"
  }
}


================================================
FILE: apps/portal/postcss.config.cjs
================================================
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
};


================================================
FILE: apps/portal/prisma/companies.csv
================================================
name,slug,website,logoUrl,description,finalized
3forge,3forge,3forge.com,https://logo.clearbit.com/3forge.com,,TRUE
99.co,99.co,99.co,https://logo.clearbit.com/99.co,,TRUE
"Agency for Science, Technology and Research (A*Star) Singapore",a-star-sg,a-star.edu.sg,https://logo.clearbit.com/a-star.edu.sg,,TRUE
Accenture,accenture,accenture.com,https://logo.clearbit.com/accenture.com,,TRUE
Accuracy,accuracy,accuracy.com,https://logo.clearbit.com/accuracy.com,,TRUE
Acronis,acronis,acronis.com,https://logo.clearbit.com/acronis.com,,TRUE
Agoda,agoda,agoda.com,https://logo.clearbit.com/agoda.com,,TRUE
AlphaLab Capital,alphalab-capital,alphalab.capital,https://logo.clearbit.com/alphalab.capital,,TRUE
Alstom,alstom,alstom.com,https://logo.clearbit.com/alstom.com,,TRUE
Amaris AI Pte Ltd,amaris-ai-pte-ltd,amaris.ai,https://logo.clearbit.com/amaris.ai,,TRUE
Amazon,amazon,amazon.com,https://logo.clearbit.com/amazon.com,"Amazon.com, Inc. is an American multinational technology company that focuses on e-commerce, cloud computing, digital streaming, and artificial intelligence.",TRUE
Amazon Web Services,amazon-web-services,aws.amazon.com,https://logo.clearbit.com/aws.amazon.com,,TRUE
AMD,amd,amd.com,https://logo.clearbit.com/amd.com,,TRUE
Ant Group,ant-group,antgroup.com,https://logo.clearbit.com/antgroup.com,,TRUE
Apple,apple,apple.com,https://logo.clearbit.com/apple.com,"Apple Inc. is an American multinational technology company that specializes in consumer electronics, software and online services headquartered in Cupertino, California, United States.",TRUE
Ascenda,ascenda,ascendaloyalty.com,https://logo.clearbit.com/ascendaloyalty.com,,TRUE
Atome,atome,atome.sg,https://logo.clearbit.com/atome.sg,,TRUE
Autodesk,autodesk,autodesk.com,https://logo.clearbit.com/autodesk.com,,TRUE
Avanade,avanade,avanade.com,https://logo.clearbit.com/avanade.com,,TRUE
Bank of America,bank-of-america,bankofamerica.com,https://logo.clearbit.com/bankofamerica.com,,TRUE
Bank of Singapore,bank-of-singapore,bankofsingapore.com,https://logo.clearbit.com/bankofsingapore.com,,TRUE
betterdata,betterdata,betterdata.ai,https://logo.clearbit.com/betterdata.ai,,TRUE
Binance,binance,binance.com,https://logo.clearbit.com/binance.com,,TRUE
Bosch,bosch,bosch.com,https://logo.clearbit.com/bosch.com,,TRUE
ByteDance,bytedance,bytedance.com,https://logo.clearbit.com/bytedance.com,,TRUE
Carousell,carousell,carousell.com,https://logo.clearbit.com/carousell.com,,TRUE
Carro,carro,carro.sg,https://logo.clearbit.com/carro.sg,,TRUE
Circles.Life,circles.life,circles.life,https://logo.clearbit.com/circles.life,,TRUE
Cisco,cisco,cisco.com,https://logo.clearbit.com/cisco.com,,TRUE
Citadel,citadel,citadel.com,https://logo.clearbit.com/citadel.com,,TRUE
CitiBank,citibank,citibank.com,https://logo.clearbit.com/citibank.com,,TRUE
Cloudflare,cloudflare,cloudflare.com,https://logo.clearbit.com/cloudflare.com,,TRUE
Coinhako,coinhako,coinhako.com,https://logo.clearbit.com/coinhako.com,,TRUE
ComfortDelGro,comfortdelgro,comfortdelgro.com,https://logo.clearbit.com/comfortdelgro.com,,TRUE
Constructor,constructor,constructor.io,https://logo.clearbit.com/constructor.io,,TRUE
Continental,continental,continental.com,https://logo.clearbit.com/continental.com,,TRUE
Creative,creative,creative.com,https://logo.clearbit.com/creative.com,,TRUE
Credit Agricole,credit-agricole,ca-cib.com,https://logo.clearbit.com/ca-cib.com,,TRUE
Credit Suisse,credit-suisse,credit-suisse.com,https://logo.clearbit.com/credit-suisse.com,,TRUE
Crypto.com,crypto-com,crypto.com,https://logo.clearbit.com/crypto.com,,TRUE
CSIT,csit,csit.gov.sg,https://logo.clearbit.com/csit.gov.sg,,TRUE
Daiwa Capital Markets,daiwacm,daiwacm.com,https://logo.clearbit.com/daiwacm.com,,TRUE
DBS,dbs,dbs.com,https://logo.clearbit.com/dbs.com,,TRUE
Defence Science and Technology Agency (DSTA),dsta,dsta.gov.sg,https://logo.clearbit.com/dsta.gov.sg,,TRUE
Dell,dell,dell.com,https://logo.clearbit.com/dell.com,,TRUE
Deloitte,deloitte,deloitte.com,https://logo.clearbit.com/deloitte.com,,TRUE
DHL,dhl,dhl.com,https://logo.clearbit.com/dhl.com,,TRUE
DRW,drw,drw.com,https://logo.clearbit.com/drw.com,,TRUE
DSO National Laboratories,dso-national-laboratories,www.dso.org.sg,https://logo.clearbit.com/www.dso.org.sg,,TRUE
Dyson,dyson,dyson.com,https://logo.clearbit.com/dyson.com,,TRUE
Energy Market Authority (EMA),energy-market-authority-(ema),ema.gov.sg,https://logo.clearbit.com/ema.gov.sg,,TRUE
Ensign InfoSecurity,ensign-infosecurity,ensigninfosecurity.com,https://logo.clearbit.com/ensigninfosecurity.com,,TRUE
Envision Digital,envision-digital,envision-digital.com,https://logo.clearbit.com/envision-digital.com,,TRUE
Equinix,equinix,equinix.com,https://logo.clearbit.com/equinix.com,,TRUE
Ernst and Young,ey,ey.com,https://logo.clearbit.com/ey.com,,TRUE
ExpressVPN,expressvpn,expressvpn.com,https://logo.clearbit.com/expressvpn.com,,TRUE
F5 Networks,f5,f5networks.com,https://logo.clearbit.com/f5networks.com,,TRUE
Foodpanda,foodpanda,foodpanda.com,https://logo.clearbit.com/foodpanda.com,,TRUE
Garena,garena,garena.com,https://logo.clearbit.com/garena.com,,TRUE
GIC Singapore,gic-singapore,gic.com.sg,https://logo.clearbit.com/gic.com.sg,,TRUE
GlobalFoundries,globalfoundries,globalfoundries.com,https://logo.clearbit.com/globalfoundries.com,,TRUE
Goldman Sachs,goldman-sachs,goldmansachs.com,https://logo.clearbit.com/goldmansachs.com,,TRUE
Google,google,google.com,https://logo.clearbit.com/google.com,"Google LLC is an American multinational technology company that focuses on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics.",TRUE
GovTech Singapore,govtech-singapore,tech.gov.sg,https://logo.clearbit.com/tech.gov.sg,,TRUE
Grab,grab,grab.com,https://logo.clearbit.com/grab.com,,TRUE
Grasshopper,grasshopper,grasshopper.com,https://logo.clearbit.com/grasshopper.com,,TRUE
Hewlett Packard (HP),hp,hp.com,https://logo.clearbit.com/hp.com,,TRUE
Hitachi Vantara,hitachi-vantara,hitachivantara.com,https://logo.clearbit.com/hitachivantara.com,,TRUE
Hodlnaut,hodlnaut,hodlnaut.com,https://logo.clearbit.com/hodlnaut.com,,TRUE
Home Team Science and Technology Agency Singapore,htx-sg,htx.gov.sg,https://logo.clearbit.com/htx.gov.sg,,TRUE
HOPE Technik,hope-technik,hopetechnik.com,https://logo.clearbit.com/hopetechnik.com,,TRUE
Housing Development Board (HDB) Singapore,hdb-sg,hdb.gov.sg,https://logo.clearbit.com/hdb.gov.sg,,TRUE
Huawei,huawei,huawei.com,https://logo.clearbit.com/huawei.com,,TRUE
Hypotenuse AI,hypotenuse-ai,hypotenuse.ai,https://logo.clearbit.com/hypotenuse.ai,,TRUE
IBM,ibm,ibm.com,https://logo.clearbit.com/ibm.com,,TRUE
IDEMIA,idemia,idemia.com,https://logo.clearbit.com/idemia.com,,TRUE
Illumina,illumina,illumina.com,https://logo.clearbit.com/illumina.com,,TRUE
Income (NTUC) Singapore,ntuc-income-sg,income.com.sg,https://logo.clearbit.com/income.com.sg,,TRUE
Indeed,indeed,indeed.com,https://logo.clearbit.com/indeed.com,,TRUE
Infineon,infineon,infineon.com,https://logo.clearbit.com/infineon.com,,TRUE
Infocomm Media Development Authority (IMDA) Singapore,imda-sg,imda.gov.sg,https://logo.clearbit.com/imda.gov.sg,,TRUE
Integrated Health Information Systems (IHIS) Singapore,ihis-sg,ihis.com.sg,https://logo.clearbit.com/ihis.com.sg,,TRUE
J.P. Morgan (JP Morgan),jp-morgan,jpmorgan.com,https://logo.clearbit.com/jpmorgan.com,,TRUE
Jane Street,jane-street,janestreet.com,https://logo.clearbit.com/janestreet.com,,TRUE
Johnson & Johnson,jnj,jnj.com,https://logo.clearbit.com/jnj.com,,TRUE
Jump Trading,jump-trading,jumptrading.com,https://logo.clearbit.com/jumptrading.com,,TRUE
KPMG,kpmg,kpmg.com,https://logo.clearbit.com/kpmg.com,,TRUE
Lazada,lazada,lazada.com,https://logo.clearbit.com/lazada.com,,TRUE
Mandiant,mandiant,mandiant.com,https://logo.clearbit.com/mandiant.com,,TRUE
Meta,meta,meta.com,https://logo.clearbit.com/meta.com,"Meta Platforms, Inc., doing business as Meta and formerly named Facebook, Inc., and TheFacebook, Inc., is an American multinational technology conglomerate based in Menlo Park, California. The company owns Facebook, Instagram, and WhatsApp, among other products and services.",TRUE
Micron,micron,micron.com,https://logo.clearbit.com/micron.com,,TRUE
Microsoft,microsoft,microsoft.com,https://logo.clearbit.com/microsoft.com,"Microsoft Corporation is an American multinational technology corporation which produces computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washington, United States.",TRUE
Millennium Management,mlp,mlp.com,https://logo.clearbit.com/mlp.com,,TRUE
Monetary Authority of Singapore,mas-sg,mas.gov.sg,https://logo.clearbit.com/mas.gov.sg,,TRUE
Morgan Stanley,morgan-stanley,morganstanley.com,https://logo.clearbit.com/morganstanley.com,,TRUE
Motional,motional,motional.com,https://logo.clearbit.com/motional.com,,TRUE
NCS,ncs,ncs.co,https://logo.clearbit.com/ncs.co,,TRUE
NE Digital (NTUC) Singapore,ne-digital-sg,nedigital.sg,https://logo.clearbit.com/nedigital.sg,,TRUE
Netflix,netflix,netflix.com,https://logo.clearbit.com/netflix.com,,TRUE
Ninja Van,ninja-van,ninjavan.co,https://logo.clearbit.com/ninjavan.co,,TRUE
OCBC,ocbc,ocbc.com,https://logo.clearbit.com/ocbc.com,,TRUE
Open Government Products (OGP),open-government-products-(ogp),ogp.gov.sg,https://logo.clearbit.com/ogp.gov.sg,,TRUE
Optiver,optiver,optiver.com,https://logo.clearbit.com/optiver.com,,TRUE
Pactera Edge,pactera-edge,pacteraedge.com,https://logo.clearbit.com/pacteraedge.com,,TRUE
Panasonic,panasonic,panasonic.com,https://logo.clearbit.com/panasonic.com,,TRUE
PayPal,paypal,paypal.com,https://logo.clearbit.com/paypal.com,,TRUE
PricewaterhouseCoopers (PwC),pwc,pwc.com,https://logo.clearbit.com/pwc.com,,TRUE
Procter & Gamble (P&G),pg,pg.com,https://logo.clearbit.com/pg.com,,TRUE
PSA Singapore,psa-singapore,singaporepsa.com,https://logo.clearbit.com/singaporepsa.com,,TRUE
QuantEdge,quantedge,quantedge.com,https://logo.clearbit.com/quantedge.com,,TRUE
Rakuten,rakuten,rakuten.com,https://logo.clearbit.com/rakuten.com,,TRUE
Ramco,ramco,ramco.com,https://logo.clearbit.com/ramco.com,,TRUE
Razer,razer,razer.com,https://logo.clearbit.com/razer.com,,TRUE
Riot Games,riot-games,riotgames.com,https://logo.clearbit.com/riotgames.com,,TRUE
SAP,sap,sap.com,https://logo.clearbit.com/sap.com,,TRUE
Schneider Electric Pte Ltd,se,se.com,https://logo.clearbit.com/se.com,,TRUE
Schroders,schroders,schroders.com,https://logo.clearbit.com/schroders.com,,TRUE
Sea Group,sea-group,sea.com,https://logo.clearbit.com/sea.com,,TRUE
Seagate,seagate,seagate.com,https://logo.clearbit.com/seagate.com,,TRUE
SenseTime,sensetime,sensetime.com,https://logo.clearbit.com/sensetime.com,,TRUE
Sentient.io,sentient-io,sentient.io.com,https://logo.clearbit.com/sentient.io.com,,TRUE
SGInnovate,sginnovate,sginnovate.com,https://logo.clearbit.com/sginnovate.com,,TRUE
Shop,shop,shop.com,https://logo.clearbit.com/shop.com,,TRUE
ShopBack,shopback,shopback.com,https://logo.clearbit.com/shopback.com,,TRUE
Shopee,shopee,shopee.com,https://logo.clearbit.com/shopee.com,,TRUE
Siemens,siemens,siemens.com,https://logo.clearbit.com/siemens.com,,TRUE
Singapore Airlines (SIA),singaporeair,singaporeair.com.sg,,,TRUE
Singapore Armed Forces (MINDEF SAF),singapore-armed-forces-(mindef-saf),mindef.gov.sg,https://logo.clearbit.com/mindef.gov.sg,,TRUE
Singapore Institute of Technology (SIT),sit-sg,singaporetech.edu.sg,https://logo.clearbit.com/singaporetech.edu.sg,,TRUE
SingTel,singtel,singtel.com,https://logo.clearbit.com/singtel.com,,TRUE
Skyline Communications,skyline-communications,skyline.be,https://logo.clearbit.com/skyline.be,,TRUE
Sprinklr,sprinklr,sprinklr.com,https://logo.clearbit.com/sprinklr.com,,TRUE
Squarepoint Capital,squarepoint-capital,squarepoint-capital.com,https://logo.clearbit.com/squarepoint-capital.com,,TRUE
ST Engineering (Singapore),stengg,stengg.com,https://logo.clearbit.com/stengg.com,,TRUE
Standard Chartered,standard-chartered,standardchartered.com,https://logo.clearbit.com/standardchartered.com,,TRUE
StashAway,stashaway,stashaway.sg,https://logo.clearbit.com/stashaway.sg,,TRUE
Stripe,stripe,stripe.com,https://logo.clearbit.com/stripe.com,,TRUE
Syngenta,syngenta,syngenta.com,https://logo.clearbit.com/syngenta.com,,TRUE
Tesla,tesla,tesla.com,https://logo.clearbit.com/tesla.com,,TRUE
Thales,thales,thales.com,https://logo.clearbit.com/thales.com,,TRUE
Thermo Fisher,thermo-fisher,thermofisher.com,https://logo.clearbit.com/thermofisher.com,,TRUE
Thoughtworks,thoughtworks,thoughtworks.com,https://logo.clearbit.com/thoughtworks.com,,TRUE
TikTok,tiktok,tiktok.com,https://logo.clearbit.com/tiktok.com,,TRUE
Titansoft,titansoft,titansoft.com,https://logo.clearbit.com/titansoft.com,,TRUE
Trail of Bits,trail-of-bits,trailofbits.com,https://logo.clearbit.com/trailofbits.com,,TRUE
Trust (Bank),trust-bank,trustbank.sg,https://logo.clearbit.com/trustbank.sg,,TRUE
Trustana,trustana,trustana.com,https://logo.clearbit.com/trustana.com,,TRUE
Ubisoft,ubisoft,ubisoft.com,https://logo.clearbit.com/ubisoft.com,,TRUE
Ubisoft Singapore,ubisoft-singapore,ubisoftsingapore.com,https://logo.clearbit.com/ubisoftsingapore.com,,TRUE
UCARS,ucars,ucars.com,https://logo.clearbit.com/ucars.com,,TRUE
UOB,uob,uob.com,https://logo.clearbit.com/uob.com,,TRUE
Viki,viki,viki.com,https://logo.clearbit.com/viki.com,,TRUE
Virtu Financial,virtu-financial,virtu.com,https://logo.clearbit.com/virtu.com,,TRUE
Visa,visa,visa.com,https://logo.clearbit.com/visa.com,,TRUE
Wintermute,wintermute,wintermute.com,https://logo.clearbit.com/wintermute.com,,TRUE
Wise,wise,wise.com,https://logo.clearbit.com/wise.com,,TRUE
Workato,workato,workato.com,https://logo.clearbit.com/workato.com,,TRUE
WorkClass,WorkClass,workclass.co,https://logo.clearbit.com/workclass.co,,TRUE
Zendesk,zendesk,zendesk.com,https://logo.clearbit.com/zendesk.com,,TRUE
D.E. Shaw,deshaw,deshaw.com,https://logo.clearbit.com/deshaw.com,,TRUE
Five Rings,five-rings,fiverings.com,https://logo.clearbit.com/fiverings.com,,TRUE
Databricks,databricks,databricks.com,https://logo.clearbit.com/databricks.com,,TRUE
Scale AI,scale-ai,scale.com,https://logo.clearbit.com/scale.com,,TRUE
Snap,snap,snap.com,https://logo.clearbit.com/snap.com,,TRUE
Two Sigma,two-sigma,twosigma.com,https://logo.clearbit.com/twosigma.com,,TRUE
Roblox,roblox,roblox.com,https://logo.clearbit.com/roblox.com,,TRUE
Airbnb,airbnb,airbnb.com,https://logo.clearbit.com/airbnb.com,,TRUE
Lyft,lyft,lyft.com,https://logo.clearbit.com/lyft.com,,TRUE
IMC Trading,imc-trading,imc.com,https://logo.clearbit.com/imc.com,,TRUE
Asana,asana,asana.com,https://logo.clearbit.com/asana.com,,TRUE
Robinhood,robinhood,robinhood.com,https://logo.clearbit.com/robinhood.com,,TRUE
Figma,figma,figma.com,https://logo.clearbit.com/figma.com,,TRUE
Coinbase,coinbase,coinbase.com,https://logo.clearbit.com/coinbase.com,,TRUE
Palantir,palantir,palantir.com,https://logo.clearbit.com/palantir.com,,TRUE
Confluent,confluent,confluent.io,https://logo.clearbit.com/confluent.io,,TRUE
Hudson River Trading,hudson-river-trading,hudsonrivertrading.com,https://logo.clearbit.com/hudsonrivertrading.com,,TRUE
Akuna Capital,akuna-capital,akunacapital.com,https://logo.clearbit.com/akunacapital.com,,TRUE
Uber,uber,uber.com,https://logo.clearbit.com/uber.com,,TRUE
Pinterest,pinterest,pinterest.com,https://logo.clearbit.com/pinterest.com,,TRUE
Github,github,github.com,https://logo.clearbit.com/github.com,,TRUE
Slack,slack,slack.com,https://logo.clearbit.com/slack.com,,TRUE
Square,square,square.com,https://logo.clearbit.com/square.com,,TRUE
Doordash,doordash,doordash.com,https://logo.clearbit.com/doordash.com,,TRUE
Linkedin,linkedin,linkedin.com,https://logo.clearbit.com/linkedin.com,,TRUE
Instacart,instacart,instacart.com,https://logo.clearbit.com/instacart.com,,TRUE
Datadog,datadog,datadog.com,https://logo.clearbit.com/datadog.com,,TRUE
Twitter,twitter,twitter.com,https://logo.clearbit.com/twitter.com,,TRUE
Chime,chime,chime.com,https://logo.clearbit.com/chime.com,,TRUE
Nvidia,nvidia,nvidia.com,https://logo.clearbit.com/nvidia.com,,TRUE
Aurora,aurora,aurora.tech,https://logo.clearbit.com/aurora.tech,,TRUE
Twitch,twitch,twitch.com,https://logo.clearbit.com/twitch.com,,TRUE
MongoDB,mongodb,mongodb.com,https://logo.clearbit.com/mongodb.com,,TRUE
Salesforce,salesforce,salesforce.com,https://logo.clearbit.com/salesforce.com,,TRUE
Tableau,tableau,tableau.com,https://logo.clearbit.com/tableau.com,,TRUE
Bloomberg,bloomberg,bloomberg.com,https://logo.clearbit.com/bloomberg.com,,TRUE
Reddit,reddit,reddit.com,https://logo.clearbit.com/reddit.com,,TRUE
Nextdoor,nextdoor,nextdoor.com,https://logo.clearbit.com/nextdoor.com,,TRUE
Argo Ai,argo-ai,argo.ai,https://logo.clearbit.com/argo.ai,,TRUE
Wish,wish,wish.com,https://logo.clearbit.com/wish.com,,TRUE
Zoom,zoom,zoom.com,https://logo.clearbit.com/zoom.com,,TRUE
Atlasssian,atlasssian,atlasssian.com,https://logo.clearbit.com/atlasssian.com,,TRUE
Twilio,twilio,twilio.com,https://logo.clearbit.com/twilio.com,,TRUE
Snowflake,snowflake,snowflake.com,https://logo.clearbit.com/snowflake.com,,TRUE
Dropbox,dropbox,dropbox.com,https://logo.clearbit.com/dropbox.com,,TRUE
Qualtrics,qualtrics,qualtrics.com,https://logo.clearbit.com/qualtrics.com,,TRUE
HubSpot,hubspot,hubspot.com,https://logo.clearbit.com/hubspot.com,,TRUE
Peleton,peleton,onepeleton.com,https://logo.clearbit.com/onepeleton.com,,TRUE
Adobe,adobe,adobe.com,https://logo.clearbit.com/adobe.com,,TRUE
Splunk,splunk,splunk.com,https://logo.clearbit.com/splunk.com,,TRUE
Postmates,postmates,postmates.com,https://logo.clearbit.com/postmates.com,,TRUE
Coursera,coursera,coursera.com,https://logo.clearbit.com/coursera.com,,TRUE
Niantic Labs,niantic-labs,nianticlabs.com,https://logo.clearbit.com/nianticlabs.com,,TRUE
Audible,audible,audible.com,https://logo.clearbit.com/audible.com,,TRUE
Samsung,samsung,samsung.com,https://logo.clearbit.com/samsung.com,,TRUE
Shopify,shopify,shopify.com,https://logo.clearbit.com/shopify.com,,TRUE
VMware,vmware,vmware.com,https://logo.clearbit.com/vmware.com,,TRUE
Zillow,zillow,zillow.com,https://logo.clearbit.com/zillow.com,,TRUE
Spotify,spotify,spotify.com,https://logo.clearbit.com/spotify.com,,TRUE
Cisco Merkari,cisco-merkari,meraki.cisco.com,https://logo.clearbit.com/meraki.cisco.com,,TRUE
Instabase,instabase,instabase.com,https://logo.clearbit.com/instabase.com,,TRUE
Yext,yext,yext.com,https://logo.clearbit.com/yext.com,,TRUE
Disney,disney,disney.com,https://logo.clearbit.com/disney.com,,TRUE
Hulu,hulu,hulu.com,https://logo.clearbit.com/hulu.com,,TRUE
GrubHub,grubhub,grubhub.com,https://logo.clearbit.com/grubhub.com,,TRUE
Duolingo,duolingo,duolingo.com,https://logo.clearbit.com/duolingo.com,,TRUE
Roku,roku,roku.com,https://logo.clearbit.com/roku.com,,TRUE
Okta,okta,okta.com,https://logo.clearbit.com/okta.com,,TRUE
Palo Alto Software,palo-alto-software,paloaltosoftware.com,https://logo.clearbit.com/paloaltosoftware.com,,TRUE
Palo Alto Networks,palo-alto-networks,paloaltonetworks.com,https://logo.clearbit.com/paloaltonetworks.com,,FALSE
Oracle,oracle,oracle.com,https://logo.clearbit.com/oracle.com,,TRUE
Red Hat,red-hat,redhat.com,https://logo.clearbit.com/redhat.com,,TRUE
Intuit,intuit,intuit.com,https://logo.clearbit.com/intuit.com,,TRUE
Box,box,box.com,https://logo.clearbit.com/box.com,,TRUE
Yelp,yelp,yelp.com,https://logo.clearbit.com/yelp.com,,TRUE
Docusign,docusign,docusign.com,https://logo.clearbit.com/docusign.com,,TRUE
Etsy,etsy,etsy.com,https://logo.clearbit.com/etsy.com,,TRUE
Quora,quora,quora.com,https://logo.clearbit.com/quora.com,,TRUE
SquareSpace,squarespace,squarespace.com,https://logo.clearbit.com/squarespace.com,,TRUE
Expedia,expedia,expedia.com,https://logo.clearbit.com/expedia.com,,TRUE
Chewy,chewy,chewy.com,https://logo.clearbit.com/chewy.com,,TRUE
Intel,intel,intel.com,https://logo.clearbit.com/intel.com,,TRUE
Capital One,capital-one,capitalone.com,https://logo.clearbit.com/capitalone.com,,TRUE
American Express,american-express,americanexpress.com,https://logo.clearbit.com/americanexpress.com,,TRUE
Blackrock,blackrock,blackrock.com,https://logo.clearbit.com/blackrock.com,,TRUE
Walmart Labs,walmart-labs,walmartlabs.com,https://logo.clearbit.com/walmartlabs.com,,TRUE
Workday,workday,workday.com,https://logo.clearbit.com/workday.com,,TRUE
SAP,sap,sap.com,https://logo.clearbit.com/sap.com,,TRUE
Pure Storage,pure-storage,purestorage.com,https://logo.clearbit.com/purestorage.com,,TRUE
Nordstrom,nordstrom,nordstrom.com,https://logo.clearbit.com/nordstrom.com,,TRUE
Groupon,groupon,groupon.com,https://logo.clearbit.com/groupon.com,,TRUE
Norton Lifelock,norton-lifelock,nortonlifelock.com,https://logo.clearbit.com/nortonlifelock.com,,TRUE
Yahoo,yahoo,yahoo.com,https://logo.clearbit.com/yahoo.com,,TRUE
PNC Financial Services,pnc-financial-services,pnc.com,https://logo.clearbit.com/pnc.com,,TRUE
NetApp,netapp,netapp.com,https://logo.clearbit.com/netapp.com,,TRUE
GoDaddy,godaddy,godaddy.com,https://logo.clearbit.com/godaddy.com,,TRUE
Wipro,wipro,wipro.com,https://logo.clearbit.com/wipro.com,,TRUE
Infosys,infosys,infosys.com,https://logo.clearbit.com/infosys.com,,TRUE
TCS,tcs,tcs.com,https://logo.clearbit.com/tcs.com,,TRUE
Cognizant,cognizant,cognizant.com,https://logo.clearbit.com/cognizant.com,,TRUE
HCL,hcl,hcl.com,https://logo.clearbit.com/hcl.com,,TRUE
Tech Mahindra,tech-mahindra,techmahindra.com,https://logo.clearbit.com/techmahindra.com,,TRUE
Fujitsu,fujitsu,fujitsu.com,https://logo.clearbit.com/fujitsu.com,,TRUE
NIIT,niit,niit.com,https://logo.clearbit.com/niit.com,,TRUE
Larson & Toubro (L&T),larson-toubro,larsentoubro.com,https://logo.clearbit.com/larsentoubro.com,,TRUE

================================================
FILE: apps/portal/prisma/data/cities.json
================================================
{
  "data": [
    { "city_id": "1", "city_name": "Bombuflat", "state_id": "1" },
    { "city_id": "2", "city_name": "Garacharma", "state_id": "1" },
    { "city_id": "3", "city_name": "Port Blair", "state_id": "1" },
    { "city_id": "4", "city_name": "Rangat", "state_id": "1" },
    { "city_id": "5", "city_name": "Addanki", "state_id": "2" },
    { "city_id": "6", "city_name": "Adivivaram", "state_id": "2" },
    { "city_id": "7", "city_name": "Adoni", "state_id": "2" },
    { "city_id": "8", "city_name": "Aganampudi", "state_id": "2" },
    { "city_id": "9", "city_name": "Ajjaram", "state_id": "2" },
    { "city_id": "10", "city_name": "Akividu", "state_id": "2" },
    { "city_id": "11", "city_name": "Akkarampalle", "state_id": "2" },
    { "city_id": "12", "city_name": "Akkayapalle", "state_id": "2" },
    { "city_id": "13", "city_name": "Akkireddipalem", "state_id": "2" },
    { "city_id": "14", "city_name": "Alampur", "state_id": "2" },
    { "city_id": "15", "city_name": "Amalapuram", "state_id": "2" },
    { "city_id": "16", "city_name": "Amudalavalasa", "state_id": "2" },
    { "city_id": "17", "city_name": "Amur", "state_id": "2" },
    { "city_id": "18", "city_name": "Anakapalle", "state_id": "2" },
    { "city_id": "19", "city_name": "Anantapur", "state_id": "2" },
    { "city_id": "20", "city_name": "Andole", "state_id": "2" },
    { "city_id": "21", "city_name": "Atmakur", "state_id": "2" },
    { "city_id": "22", "city_name": "Attili", "state_id": "2" },
    { "city_id": "23", "city_name": "Avanigadda", "state_id": "2" },
    { "city_id": "24", "city_name": "Badepalli", "state_id": "2" },
    { "city_id": "25", "city_name": "Badvel", "state_id": "2" },
    { "city_id": "26", "city_name": "Balapur", "state_id": "2" },
    { "city_id": "27", "city_name": "Bandarulanka", "state_id": "2" },
    { "city_id": "28", "city_name": "Banganapalle", "state_id": "2" },
    { "city_id": "29", "city_name": "Bapatla", "state_id": "2" },
    { "city_id": "30", "city_name": "Bapulapadu", "state_id": "2" },
    { "city_id": "31", "city_name": "Belampalli", "state_id": "2" },
    { "city_id": "32", "city_name": "Bestavaripeta", "state_id": "2" },
    { "city_id": "33", "city_name": "Betamcherla", "state_id": "2" },
    { "city_id": "34", "city_name": "Bhattiprolu", "state_id": "2" },
    { "city_id": "35", "city_name": "Bhimavaram", "state_id": "2" },
    { "city_id": "36", "city_name": "Bhimunipatnam", "state_id": "2" },
    { "city_id": "37", "city_name": "Bobbili", "state_id": "2" },
    { "city_id": "38", "city_name": "Bombuflat", "state_id": "2" },
    { "city_id": "39", "city_name": "Bommuru", "state_id": "2" },
    { "city_id": "40", "city_name": "Bugganipalle", "state_id": "2" },
    { "city_id": "41", "city_name": "Challapalle", "state_id": "2" },
    { "city_id": "42", "city_name": "Chandur", "state_id": "2" },
    { "city_id": "43", "city_name": "Chatakonda", "state_id": "2" },
    { "city_id": "44", "city_name": "Chemmumiahpet", "state_id": "2" },
    { "city_id": "45", "city_name": "Chidiga", "state_id": "2" },
    { "city_id": "46", "city_name": "Chilakaluripet", "state_id": "2" },
    { "city_id": "47", "city_name": "Chimakurthy", "state_id": "2" },
    { "city_id": "48", "city_name": "Chinagadila", "state_id": "2" },
    { "city_id": "49", "city_name": "Chinagantyada", "state_id": "2" },
    { "city_id": "50", "city_name": "Chinnachawk", "state_id": "2" },
    { "city_id": "51", "city_name": "Chintalavalasa", "state_id": "2" },
    { "city_id": "52", "city_name": "Chipurupalle", "state_id": "2" },
    { "city_id": "53", "city_name": "Chirala", "state_id": "2" },
    { "city_id": "54", "city_name": "Chittoor", "state_id": "2" },
    { "city_id": "55", "city_name": "Chodavaram", "state_id": "2" },
    { "city_id": "56", "city_name": "Choutuppal", "state_id": "2" },
    { "city_id": "57", "city_name": "Chunchupalle", "state_id": "2" },
    { "city_id": "58", "city_name": "Cuddapah", "state_id": "2" },
    { "city_id": "59", "city_name": "Cumbum", "state_id": "2" },
    { "city_id": "60", "city_name": "Darnakal", "state_id": "2" },
    { "city_id": "61", "city_name": "Dasnapur", "state_id": "2" },
    { "city_id": "62", "city_name": "Dauleshwaram", "state_id": "2" },
    { "city_id": "63", "city_name": "Dharmavaram", "state_id": "2" },
    { "city_id": "64", "city_name": "Dhone", "state_id": "2" },
    { "city_id": "65", "city_name": "Dommara Nandyal", "state_id": "2" },
    { "city_id": "66", "city_name": "Dowlaiswaram", "state_id": "2" },
    { "city_id": "67", "city_name": "East Godavari Dist.", "state_id": "2" },
    { "city_id": "68", "city_name": "Eddumailaram", "state_id": "2" },
    { "city_id": "69", "city_name": "Edulapuram", "state_id": "2" },
    { "city_id": "70", "city_name": "Ekambara kuppam", "state_id": "2" },
    { "city_id": "71", "city_name": "Eluru", "state_id": "2" },
    { "city_id": "72", "city_name": "Enikapadu", "state_id": "2" },
    { "city_id": "73", "city_name": "Fakirtakya", "state_id": "2" },
    { "city_id": "74", "city_name": "Farrukhnagar", "state_id": "2" },
    { "city_id": "75", "city_name": "Gaddiannaram", "state_id": "2" },
    { "city_id": "76", "city_name": "Gajapathinagaram", "state_id": "2" },
    { "city_id": "77", "city_name": "Gajularega", "state_id": "2" },
    { "city_id": "78", "city_name": "Gajuvaka", "state_id": "2" },
    { "city_id": "79", "city_name": "Gannavaram", "state_id": "2" },
    { "city_id": "80", "city_name": "Garacharma", "state_id": "2" },
    { "city_id": "81", "city_name": "Garimellapadu", "state_id": "2" },
    { "city_id": "82", "city_name": "Giddalur", "state_id": "2" },
    { "city_id": "83", "city_name": "Godavarikhani", "state_id": "2" },
    { "city_id": "84", "city_name": "Gopalapatnam", "state_id": "2" },
    { "city_id": "85", "city_name": "Gopalur", "state_id": "2" },
    { "city_id": "86", "city_name": "Gorrekunta", "state_id": "2" },
    { "city_id": "87", "city_name": "Gudivada", "state_id": "2" },
    { "city_id": "88", "city_name": "Gudur", "state_id": "2" },
    { "city_id": "89", "city_name": "Guntakal", "state_id": "2" },
    { "city_id": "90", "city_name": "Guntur", "state_id": "2" },
    { "city_id": "91", "city_name": "Guti", "state_id": "2" },
    { "city_id": "92", "city_name": "Hindupur", "state_id": "2" },
    { "city_id": "93", "city_name": "Hukumpeta", "state_id": "2" },
    { "city_id": "94", "city_name": "Ichchapuram", "state_id": "2" },
    { "city_id": "95", "city_name": "Isnapur", "state_id": "2" },
    { "city_id": "96", "city_name": "Jaggayyapeta", "state_id": "2" },
    { "city_id": "97", "city_name": "Jallaram Kamanpur", "state_id": "2" },
    { "city_id": "98", "city_name": "Jammalamadugu", "state_id": "2" },
    { "city_id": "99", "city_name": "Jangampalli", "state_id": "2" },
    { "city_id": "100", "city_name": "Jarjapupeta", "state_id": "2" },
    { "city_id": "101", "city_name": "Kadiri", "state_id": "2" },
    { "city_id": "102", "city_name": "Kaikalur", "state_id": "2" },
    { "city_id": "103", "city_name": "Kakinada", "state_id": "2" },
    { "city_id": "104", "city_name": "Kallur", "state_id": "2" },
    { "city_id": "105", "city_name": "Kalyandurg", "state_id": "2" },
    { "city_id": "106", "city_name": "Kamalapuram", "state_id": "2" },
    { "city_id": "107", "city_name": "Kamareddi", "state_id": "2" },
    { "city_id": "108", "city_name": "Kanapaka", "state_id": "2" },
    { "city_id": "109", "city_name": "Kanigiri", "state_id": "2" },
    { "city_id": "110", "city_name": "Kanithi", "state_id": "2" },
    { "city_id": "111", "city_name": "Kankipadu", "state_id": "2" },
    { "city_id": "112", "city_name": "Kantabamsuguda", "state_id": "2" },
    { "city_id": "113", "city_name": "Kanuru", "state_id": "2" },
    { "city_id": "114", "city_name": "Karnul", "state_id": "2" },
    { "city_id": "115", "city_name": "Katheru", "state_id": "2" },
    { "city_id": "116", "city_name": "Kavali", "state_id": "2" },
    { "city_id": "117", "city_name": "Kazipet", "state_id": "2" },
    { "city_id": "118", "city_name": "Khanapuram Haveli", "state_id": "2" },
    { "city_id": "119", "city_name": "Kodar", "state_id": "2" },
    { "city_id": "120", "city_name": "Kollapur", "state_id": "2" },
    { "city_id": "121", "city_name": "Kondapalem", "state_id": "2" },
    { "city_id": "122", "city_name": "Kondapalle", "state_id": "2" },
    { "city_id": "123", "city_name": "Kondukur", "state_id": "2" },
    { "city_id": "124", "city_name": "Kosgi", "state_id": "2" },
    { "city_id": "125", "city_name": "Kothavalasa", "state_id": "2" },
    { "city_id": "126", "city_name": "Kottapalli", "state_id": "2" },
    { "city_id": "127", "city_name": "Kovur", "state_id": "2" },
    { "city_id": "128", "city_name": "Kovurpalle", "state_id": "2" },
    { "city_id": "129", "city_name": "Kovvur", "state_id": "2" },
    { "city_id": "130", "city_name": "Krishna", "state_id": "2" },
    { "city_id": "131", "city_name": "Kuppam", "state_id": "2" },
    { "city_id": "132", "city_name": "Kurmannapalem", "state_id": "2" },
    { "city_id": "133", "city_name": "Kurnool", "state_id": "2" },
    { "city_id": "134", "city_name": "Lakshettipet", "state_id": "2" },
    { "city_id": "135", "city_name": "Lalbahadur Nagar", "state_id": "2" },
    { "city_id": "136", "city_name": "Machavaram", "state_id": "2" },
    { "city_id": "137", "city_name": "Macherla", "state_id": "2" },
    { "city_id": "138", "city_name": "Machilipatnam", "state_id": "2" },
    { "city_id": "139", "city_name": "Madanapalle", "state_id": "2" },
    { "city_id": "140", "city_name": "Madaram", "state_id": "2" },
    { "city_id": "141", "city_name": "Madhuravada", "state_id": "2" },
    { "city_id": "142", "city_name": "Madikonda", "state_id": "2" },
    { "city_id": "143", "city_name": "Madugule", "state_id": "2" },
    { "city_id": "144", "city_name": "Mahabubnagar", "state_id": "2" },
    { "city_id": "145", "city_name": "Mahbubabad", "state_id": "2" },
    { "city_id": "146", "city_name": "Malkajgiri", "state_id": "2" },
    { "city_id": "147", "city_name": "Mamilapalle", "state_id": "2" },
    { "city_id": "148", "city_name": "Mancheral", "state_id": "2" },
    { "city_id": "149", "city_name": "Mandapeta", "state_id": "2" },
    { "city_id": "150", "city_name": "Mandasa", "state_id": "2" },
    { "city_id": "151", "city_name": "Mangalagiri", "state_id": "2" },
    { "city_id": "152", "city_name": "Manthani", "state_id": "2" },
    { "city_id": "153", "city_name": "Markapur", "state_id": "2" },
    { "city_id": "154", "city_name": "Marturu", "state_id": "2" },
    { "city_id": "155", "city_name": "Metpalli", "state_id": "2" },
    { "city_id": "156", "city_name": "Mindi", "state_id": "2" },
    { "city_id": "157", "city_name": "Mirpet", "state_id": "2" },
    { "city_id": "158", "city_name": "Moragudi", "state_id": "2" },
    { "city_id": "159", "city_name": "Mothugudam", "state_id": "2" },
    { "city_id": "160", "city_name": "Nagari", "state_id": "2" },
    { "city_id": "161", "city_name": "Nagireddipalle", "state_id": "2" },
    { "city_id": "162", "city_name": "Nandigama", "state_id": "2" },
    { "city_id": "163", "city_name": "Nandikotkur", "state_id": "2" },
    { "city_id": "164", "city_name": "Nandyal", "state_id": "2" },
    { "city_id": "165", "city_name": "Narasannapeta", "state_id": "2" },
    { "city_id": "166", "city_name": "Narasapur", "state_id": "2" },
    { "city_id": "167", "city_name": "Narasaraopet", "state_id": "2" },
    { "city_id": "168", "city_name": "Narayanavanam", "state_id": "2" },
    { "city_id": "169", "city_name": "Narsapur", "state_id": "2" },
    { "city_id": "170", "city_name": "Narsingi", "state_id": "2" },
    { "city_id": "171", "city_name": "Narsipatnam", "state_id": "2" },
    { "city_id": "172", "city_name": "Naspur", "state_id": "2" },
    { "city_id": "173", "city_name": "Nathayyapalem", "state_id": "2" },
    { "city_id": "174", "city_name": "Nayudupeta", "state_id": "2" },
    { "city_id": "175", "city_name": "Nelimaria", "state_id": "2" },
    { "city_id": "176", "city_name": "Nellore", "state_id": "2" },
    { "city_id": "177", "city_name": "Nidadavole", "state_id": "2" },
    { "city_id": "178", "city_name": "Nuzvid", "state_id": "2" },
    { "city_id": "179", "city_name": "Omerkhan daira", "state_id": "2" },
    { "city_id": "180", "city_name": "Ongole", "state_id": "2" },
    { "city_id": "181", "city_name": "Osmania University", "state_id": "2" },
    { "city_id": "182", "city_name": "Pakala", "state_id": "2" },
    { "city_id": "183", "city_name": "Palakole", "state_id": "2" },
    { "city_id": "184", "city_name": "Palakurthi", "state_id": "2" },
    { "city_id": "185", "city_name": "Palasa", "state_id": "2" },
    { "city_id": "186", "city_name": "Palempalle", "state_id": "2" },
    { "city_id": "187", "city_name": "Palkonda", "state_id": "2" },
    { "city_id": "188", "city_name": "Palmaner", "state_id": "2" },
    { "city_id": "189", "city_name": "Pamur", "state_id": "2" },
    { "city_id": "190", "city_name": "Panjim", "state_id": "2" },
    { "city_id": "191", "city_name": "Papampeta", "state_id": "2" },
    { "city_id": "192", "city_name": "Parasamba", "state_id": "2" },
    { "city_id": "193", "city_name": "Parvatipuram", "state_id": "2" },
    { "city_id": "194", "city_name": "Patancheru", "state_id": "2" },
    { "city_id": "195", "city_name": "Payakaraopet", "state_id": "2" },
    { "city_id": "196", "city_name": "Pedagantyada", "state_id": "2" },
    { "city_id": "197", "city_name": "Pedana", "state_id": "2" },
    { "city_id": "198", "city_name": "Peddapuram", "state_id": "2" },
    { "city_id": "199", "city_name": "Pendurthi", "state_id": "2" },
    { "city_id": "200", "city_name": "Penugonda", "state_id": "2" },
    { "city_id": "201", "city_name": "Penukonda", "state_id": "2" },
    { "city_id": "202", "city_name": "Phirangipuram", "state_id": "2" },
    { "city_id": "203", "city_name": "Pithapuram", "state_id": "2" },
    { "city_id": "204", "city_name": "Ponnur", "state_id": "2" },
    { "city_id": "205", "city_name": "Port Blair", "state_id": "2" },
    {
      "city_id": "206",
      "city_name": "Pothinamallayyapalem",
      "state_id": "2"
    },
    { "city_id": "207", "city_name": "Prakasam", "state_id": "2" },
    { "city_id": "208", "city_name": "Prasadampadu", "state_id": "2" },
    { "city_id": "209", "city_name": "Prasantinilayam", "state_id": "2" },
    { "city_id": "210", "city_name": "Proddatur", "state_id": "2" },
    { "city_id": "211", "city_name": "Pulivendla", "state_id": "2" },
    { "city_id": "212", "city_name": "Punganuru", "state_id": "2" },
    { "city_id": "213", "city_name": "Puttur", "state_id": "2" },
    { "city_id": "214", "city_name": "Qutubullapur", "state_id": "2" },
    { "city_id": "215", "city_name": "Rajahmundry", "state_id": "2" },
    { "city_id": "216", "city_name": "Rajamahendri", "state_id": "2" },
    { "city_id": "217", "city_name": "Rajampet", "state_id": "2" },
    { "city_id": "218", "city_name": "Rajendranagar", "state_id": "2" },
    { "city_id": "219", "city_name": "Rajoli", "state_id": "2" },
    { "city_id": "220", "city_name": "Ramachandrapuram", "state_id": "2" },
    { "city_id": "221", "city_name": "Ramanayyapeta", "state_id": "2" },
    { "city_id": "222", "city_name": "Ramapuram", "state_id": "2" },
    { "city_id": "223", "city_name": "Ramarajupalli", "state_id": "2" },
    { "city_id": "224", "city_name": "Ramavarappadu", "state_id": "2" },
    { "city_id": "225", "city_name": "Rameswaram", "state_id": "2" },
    { "city_id": "226", "city_name": "Rampachodavaram", "state_id": "2" },
    { "city_id": "227", "city_name": "Ravulapalam", "state_id": "2" },
    { "city_id": "228", "city_name": "Rayachoti", "state_id": "2" },
    { "city_id": "229", "city_name": "Rayadrug", "state_id": "2" },
    { "city_id": "230", "city_name": "Razam", "state_id": "2" },
    { "city_id": "231", "city_name": "Razole", "state_id": "2" },
    { "city_id": "232", "city_name": "Renigunta", "state_id": "2" },
    { "city_id": "233", "city_name": "Repalle", "state_id": "2" },
    { "city_id": "234", "city_name": "Rishikonda", "state_id": "2" },
    { "city_id": "235", "city_name": "Salur", "state_id": "2" },
    { "city_id": "236", "city_name": "Samalkot", "state_id": "2" },
    { "city_id": "237", "city_name": "Sattenapalle", "state_id": "2" },
    { "city_id": "238", "city_name": "Seetharampuram", "state_id": "2" },
    { "city_id": "239", "city_name": "Serilungampalle", "state_id": "2" },
    { "city_id": "240", "city_name": "Shankarampet", "state_id": "2" },
    { "city_id": "241", "city_name": "Shar", "state_id": "2" },
    { "city_id": "242", "city_name": "Singarayakonda", "state_id": "2" },
    { "city_id": "243", "city_name": "Sirpur", "state_id": "2" },
    { "city_id": "244", "city_name": "Sirsilla", "state_id": "2" },
    { "city_id": "245", "city_name": "Sompeta", "state_id": "2" },
    { "city_id": "246", "city_name": "Sriharikota", "state_id": "2" },
    { "city_id": "247", "city_name": "Srikakulam", "state_id": "2" },
    { "city_id": "248", "city_name": "Srikalahasti", "state_id": "2" },
    { "city_id": "249", "city_name": "Sriramnagar", "state_id": "2" },
    { "city_id": "250", "city_name": "Sriramsagar", "state_id": "2" },
    { "city_id": "251", "city_name": "Srisailam", "state_id": "2" },
    {
      "city_id": "252",
      "city_name": "Srisailamgudem Devasthanam",
      "state_id": "2"
    },
    { "city_id": "253", "city_name": "Sulurpeta", "state_id": "2" },
    { "city_id": "254", "city_name": "Suriapet", "state_id": "2" },
    { "city_id": "255", "city_name": "Suryaraopet", "state_id": "2" },
    { "city_id": "256", "city_name": "Tadepalle", "state_id": "2" },
    { "city_id": "257", "city_name": "Tadepalligudem", "state_id": "2" },
    { "city_id": "258", "city_name": "Tadpatri", "state_id": "2" },
    { "city_id": "259", "city_name": "Tallapalle", "state_id": "2" },
    { "city_id": "260", "city_name": "Tanuku", "state_id": "2" },
    { "city_id": "261", "city_name": "Tekkali", "state_id": "2" },
    { "city_id": "262", "city_name": "Tenali", "state_id": "2" },
    { "city_id": "263", "city_name": "Tigalapahad", "state_id": "2" },
    { "city_id": "264", "city_name": "Tiruchanur", "state_id": "2" },
    { "city_id": "265", "city_name": "Tirumala", "state_id": "2" },
    { "city_id": "266", "city_name": "Tirupati", "state_id": "2" },
    { "city_id": "267", "city_name": "Tirvuru", "state_id": "2" },
    { "city_id": "268", "city_name": "Trimulgherry", "state_id": "2" },
    { "city_id": "269", "city_name": "Tuni", "state_id": "2" },
    { "city_id": "270", "city_name": "Turangi", "state_id": "2" },
    { "city_id": "271", "city_name": "Ukkayapalli", "state_id": "2" },
    { "city_id": "272", "city_name": "Ukkunagaram", "state_id": "2" },
    { "city_id": "273", "city_name": "Uppal Kalan", "state_id": "2" },
    { "city_id": "274", "city_name": "Upper Sileru", "state_id": "2" },
    { "city_id": "275", "city_name": "Uravakonda", "state_id": "2" },
    { "city_id": "276", "city_name": "Vadlapudi", "state_id": "2" },
    { "city_id": "277", "city_name": "Vaparala", "state_id": "2" },
    { "city_id": "278", "city_name": "Vemalwada", "state_id": "2" },
    { "city_id": "279", "city_name": "Venkatagiri", "state_id": "2" },
    { "city_id": "280", "city_name": "Venkatapuram", "state_id": "2" },
    { "city_id": "281", "city_name": "Vepagunta", "state_id": "2" },
    { "city_id": "282", "city_name": "Vetapalem", "state_id": "2" },
    { "city_id": "283", "city_name": "Vijayapuri", "state_id": "2" },
    { "city_id": "284", "city_name": "Vijayapuri South", "state_id": "2" },
    { "city_id": "285", "city_name": "Vijayawada", "state_id": "2" },
    { "city_id": "286", "city_name": "Vinukonda", "state_id": "2" },
    { "city_id": "287", "city_name": "Visakhapatnam", "state_id": "2" },
    { "city_id": "288", "city_name": "Vizianagaram", "state_id": "2" },
    { "city_id": "289", "city_name": "Vuyyuru", "state_id": "2" },
    { "city_id": "290", "city_name": "Wanparti", "state_id": "2" },
    { "city_id": "291", "city_name": "West Godavari Dist.", "state_id": "2" },
    { "city_id": "292", "city_name": "Yadagirigutta", "state_id": "2" },
    { "city_id": "293", "city_name": "Yarada", "state_id": "2" },
    { "city_id": "294", "city_name": "Yellamanchili", "state_id": "2" },
    { "city_id": "295", "city_name": "Yemmiganur", "state_id": "2" },
    { "city_id": "296", "city_name": "Yenamalakudru", "state_id": "2" },
    { "city_id": "297", "city_name": "Yendada", "state_id": "2" },
    { "city_id": "298", "city_name": "Yerraguntla", "state_id": "2" },
    { "city_id": "299", "city_name": "Along", "state_id": "3" },
    { "city_id": "300", "city_name": "Basar", "state_id": "3" },
    { "city_id": "301", "city_name": "Bondila", "state_id": "3" },
    { "city_id": "302", "city_name": "Changlang", "state_id": "3" },
    { "city_id": "303", "city_name": "Daporijo", "state_id": "3" },
    { "city_id": "304", "city_name": "Deomali", "state_id": "3" },
    { "city_id": "305", "city_name": "Itanagar", "state_id": "3" },
    { "city_id": "306", "city_name": "Jairampur", "state_id": "3" },
    { "city_id": "307", "city_name": "Khonsa", "state_id": "3" },
    { "city_id": "308", "city_name": "Naharlagun", "state_id": "3" },
    { "city_id": "309", "city_name": "Namsai", "state_id": "3" },
    { "city_id": "310", "city_name": "Pasighat", "state_id": "3" },
    { "city_id": "311", "city_name": "Roing", "state_id": "3" },
    { "city_id": "312", "city_name": "Seppa", "state_id": "3" },
    { "city_id": "313", "city_name": "Tawang", "state_id": "3" },
    { "city_id": "314", "city_name": "Tezu", "state_id": "3" },
    { "city_id": "315", "city_name": "Ziro", "state_id": "3" },
    { "city_id": "316", "city_name": "Abhayapuri", "state_id": "4" },
    { "city_id": "317", "city_name": "Ambikapur", "state_id": "4" },
    { "city_id": "318", "city_name": "Amguri", "state_id": "4" },
    { "city_id": "319", "city_name": "Anand Nagar", "state_id": "4" },
    { "city_id": "320", "city_name": "Badarpur", "state_id": "4" },
    {
      "city_id": "321",
      "city_name": "Badarpur Railway Town",
      "state_id": "4"
    },
    { "city_id": "322", "city_name": "Bahbari Gaon", "state_id": "4" },
    { "city_id": "323", "city_name": "Bamun Sualkuchi", "state_id": "4" },
    { "city_id": "324", "city_name": "Barbari", "state_id": "4" },
    { "city_id": "325", "city_name": "Barpathar", "state_id": "4" },
    { "city_id": "326", "city_name": "Barpeta", "state_id": "4" },
    { "city_id": "327", "city_name": "Barpeta Road", "state_id": "4" },
    { "city_id": "328", "city_name": "Basugaon", "state_id": "4" },
    { "city_id": "329", "city_name": "Bihpuria", "state_id": "4" },
    { "city_id": "330", "city_name": "Bijni", "state_id": "4" },
    { "city_id": "331", "city_name": "Bilasipara", "state_id": "4" },
    { "city_id": "332", "city_name": "Biswanath Chariali", "state_id": "4" },
    { "city_id": "333", "city_name": "Bohori", "state_id": "4" },
    { "city_id": "334", "city_name": "Bokajan", "state_id": "4" },
    { "city_id": "335", "city_name": "Bokokhat", "state_id": "4" },
    { "city_id": "336", "city_name": "Bongaigaon", "state_id": "4" },
    {
      "city_id": "337",
      "city_name": "Bongaigaon Petro-chemical Town",
      "state_id": "4"
    },
    { "city_id": "338", "city_name": "Borgolai", "state_id": "4" },
    { "city_id": "339", "city_name": "Chabua", "state_id": "4" },
    { "city_id": "340", "city_name": "Chandrapur Bagicha", "state_id": "4" },
    { "city_id": "341", "city_name": "Chapar", "state_id": "4" },
    { "city_id": "342", "city_name": "Chekonidhara", "state_id": "4" },
    { "city_id": "343", "city_name": "Choto Haibor", "state_id": "4" },
    { "city_id": "344", "city_name": "Dergaon", "state_id": "4" },
    { "city_id": "345", "city_name": "Dharapur", "state_id": "4" },
    { "city_id": "346", "city_name": "Dhekiajuli", "state_id": "4" },
    { "city_id": "347", "city_name": "Dhemaji", "state_id": "4" },
    { "city_id": "348", "city_name": "Dhing", "state_id": "4" },
    { "city_id": "349", "city_name": "Dhubri", "state_id": "4" },
    { "city_id": "350", "city_name": "Dhuburi", "state_id": "4" },
    { "city_id": "351", "city_name": "Dibrugarh", "state_id": "4" },
    { "city_id": "352", "city_name": "Digboi", "state_id": "4" },
    { "city_id": "353", "city_name": "Digboi Oil Town", "state_id": "4" },
    { "city_id": "354", "city_name": "Dimaruguri", "state_id": "4" },
    { "city_id": "355", "city_name": "Diphu", "state_id": "4" },
    { "city_id": "356", "city_name": "Dispur", "state_id": "4" },
    { "city_id": "357", "city_name": "Doboka", "state_id": "4" },
    { "city_id": "358", "city_name": "Dokmoka", "state_id": "4" },
    { "city_id": "359", "city_name": "Donkamokan", "state_id": "4" },
    { "city_id": "360", "city_name": "Duliagaon", "state_id": "4" },
    { "city_id": "361", "city_name": "Duliajan", "state_id": "4" },
    { "city_id": "362", "city_name": "Duliajan No.1", "state_id": "4" },
    { "city_id": "363", "city_name": "Dum Duma", "state_id": "4" },
    { "city_id": "364", "city_name": "Durga Nagar", "state_id": "4" },
    { "city_id": "365", "city_name": "Gauripur", "state_id": "4" },
    { "city_id": "366", "city_name": "Goalpara", "state_id": "4" },
    { "city_id": "367", "city_name": "Gohpur", "state_id": "4" },
    { "city_id": "368", "city_name": "Golaghat", "state_id": "4" },
    { "city_id": "369", "city_name": "Golakganj", "state_id": "4" },
    { "city_id": "370", "city_name": "Gossaigaon", "state_id": "4" },
    { "city_id": "371", "city_name": "Guwahati", "state_id": "4" },
    { "city_id": "372", "city_name": "Haflong", "state_id": "4" },
    { "city_id": "373", "city_name": "Hailakandi", "state_id": "4" },
    { "city_id": "374", "city_name": "Hamren", "state_id": "4" },
    { "city_id": "375", "city_name": "Hauli", "state_id": "4" },
    { "city_id": "376", "city_name": "Hauraghat", "state_id": "4" },
    { "city_id": "377", "city_name": "Hojai", "state_id": "4" },
    { "city_id": "378", "city_name": "Jagiroad", "state_id": "4" },
    { "city_id": "379", "city_name": "Jagiroad Paper Mill", "state_id": "4" },
    { "city_id": "380", "city_name": "Jogighopa", "state_id": "4" },
    { "city_id": "381", "city_name": "Jonai Bazar", "state_id": "4" },
    { "city_id": "382", "city_name": "Jorhat", "state_id": "4" },
    { "city_id": "383", "city_name": "Kampur Town", "state_id": "4" },
    { "city_id": "384", "city_name": "Kamrup", "state_id": "4" },
    { "city_id": "385", "city_name": "Kanakpur", "state_id": "4" },
    { "city_id": "386", "city_name": "Karimganj", "state_id": "4" },
    { "city_id": "387", "city_name": "Kharijapikon", "state_id": "4" },
    { "city_id": "388", "city_name": "Kharupetia", "state_id": "4" },
    { "city_id": "389", "city_name": "Kochpara", "state_id": "4" },
    { "city_id": "390", "city_name": "Kokrajhar", "state_id": "4" },
    { "city_id": "391", "city_name": "Kumar Kaibarta Gaon", "state_id": "4" },
    { "city_id": "392", "city_name": "Lakhimpur", "state_id": "4" },
    { "city_id": "393", "city_name": "Lakhipur", "state_id": "4" },
    { "city_id": "394", "city_name": "Lala", "state_id": "4" },
    { "city_id": "395", "city_name": "Lanka", "state_id": "4" },
    { "city_id": "396", "city_name": "Lido Tikok", "state_id": "4" },
    { "city_id": "397", "city_name": "Lido Town", "state_id": "4" },
    { "city_id": "398", "city_name": "Lumding", "state_id": "4" },
    {
      "city_id": "399",
      "city_name": "Lumding Railway Colony",
      "state_id": "4"
    },
    { "city_id": "400", "city_name": "Mahur", "state_id": "4" },
    { "city_id": "401", "city_name": "Maibong", "state_id": "4" },
    { "city_id": "402", "city_name": "Majgaon", "state_id": "4" },
    { "city_id": "403", "city_name": "Makum", "state_id": "4" },
    { "city_id": "404", "city_name": "Mangaldai", "state_id": "4" },
    { "city_id": "405", "city_name": "Mankachar", "state_id": "4" },
    { "city_id": "406", "city_name": "Margherita", "state_id": "4" },
    { "city_id": "407", "city_name": "Mariani", "state_id": "4" },
    { "city_id": "408", "city_name": "Marigaon", "state_id": "4" },
    { "city_id": "409", "city_name": "Moran", "state_id": "4" },
    { "city_id": "410", "city_name": "Moranhat", "state_id": "4" },
    { "city_id": "411", "city_name": "Nagaon", "state_id": "4" },
    { "city_id": "412", "city_name": "Naharkatia", "state_id": "4" },
    { "city_id": "413", "city_name": "Nalbari", "state_id": "4" },
    { "city_id": "414", "city_name": "Namrup", "state_id": "4" },
    { "city_id": "415", "city_name": "Naubaisa Gaon", "state_id": "4" },
    { "city_id": "416", "city_name": "Nazira", "state_id": "4" },
    {
      "city_id": "417",
      "city_name": "New Bongaigaon Railway Colony",
      "state_id": "4"
    },
    { "city_id": "418", "city_name": "Niz-Hajo", "state_id": "4" },
    { "city_id": "419", "city_name": "North Guwahati", "state_id": "4" },
    { "city_id": "420", "city_name": "Numaligarh", "state_id": "4" },
    { "city_id": "421", "city_name": "Palasbari", "state_id": "4" },
    { "city_id": "422", "city_name": "Panchgram", "state_id": "4" },
    { "city_id": "423", "city_name": "Pathsala", "state_id": "4" },
    { "city_id": "424", "city_name": "Raha", "state_id": "4" },
    { "city_id": "425", "city_name": "Rangapara", "state_id": "4" },
    { "city_id": "426", "city_name": "Rangia", "state_id": "4" },
    { "city_id": "427", "city_name": "Salakati", "state_id": "4" },
    { "city_id": "428", "city_name": "Sapatgram", "state_id": "4" },
    { "city_id": "429", "city_name": "Sarthebari", "state_id": "4" },
    { "city_id": "430", "city_name": "Sarupathar", "state_id": "4" },
    { "city_id": "431", "city_name": "Sarupathar Bengali", "state_id": "4" },
    { "city_id": "432", "city_name": "Senchoagaon", "state_id": "4" },
    { "city_id": "433", "city_name": "Sibsagar", "state_id": "4" },
    { "city_id": "434", "city_name": "Silapathar", "state_id": "4" },
    { "city_id": "435", "city_name": "Silchar", "state_id": "4" },
    { "city_id": "436", "city_name": "Silchar Part-X", "state_id": "4" },
    { "city_id": "437", "city_name": "Sonari", "state_id": "4" },
    { "city_id": "438", "city_name": "Sorbhog", "state_id": "4" },
    { "city_id": "439", "city_name": "Sualkuchi", "state_id": "4" },
    { "city_id": "440", "city_name": "Tangla", "state_id": "4" },
    { "city_id": "441", "city_name": "Tezpur", "state_id": "4" },
    { "city_id": "442", "city_name": "Tihu", "state_id": "4" },
    { "city_id": "443", "city_name": "Tinsukia", "state_id": "4" },
    { "city_id": "444", "city_name": "Titabor", "state_id": "4" },
    { "city_id": "445", "city_name": "Udalguri", "state_id": "4" },
    { "city_id": "446", "city_name": "Umrangso", "state_id": "4" },
    {
      "city_id": "447",
      "city_name": "Uttar Krishnapur Part-I",
      "state_id": "4"
    },
    { "city_id": "448", "city_name": "Amarpur", "state_id": "5" },
    { "city_id": "449", "city_name": "Ara", "state_id": "5" },
    { "city_id": "450", "city_name": "Araria", "state_id": "5" },
    { "city_id": "451", "city_name": "Areraj", "state_id": "5" },
    { "city_id": "452", "city_name": "Asarganj", "state_id": "5" },
    { "city_id": "453", "city_name": "Aurangabad", "state_id": "5" },
    { "city_id": "454", "city_name": "Bagaha", "state_id": "5" },
    { "city_id": "455", "city_name": "Bahadurganj", "state_id": "5" },
    { "city_id": "456", "city_name": "Bairgania", "state_id": "5" },
    { "city_id": "457", "city_name": "Bakhtiyarpur", "state_id": "5" },
    { "city_id": "458", "city_name": "Banka", "state_id": "5" },
    { "city_id": "459", "city_name": "Banmankhi", "state_id": "5" },
    { "city_id": "460", "city_name": "Bar Bigha", "state_id": "5" },
    { "city_id": "461", "city_name": "Barauli", "state_id": "5" },
    {
      "city_id": "462",
      "city_name": "Barauni Oil Township",
      "state_id": "5"
    },
    { "city_id": "463", "city_name": "Barh", "state_id": "5" },
    { "city_id": "464", "city_name": "Barhiya", "state_id": "5" },
    { "city_id": "465", "city_name": "Bariapur", "state_id": "5" },
    { "city_id": "466", "city_name": "Baruni", "state_id": "5" },
    { "city_id": "467", "city_name": "Begusarai", "state_id": "5" },
    { "city_id": "468", "city_name": "Behea", "state_id": "5" },
    { "city_id": "469", "city_name": "Belsand", "state_id": "5" },
    { "city_id": "470", "city_name": "Bettiah", "state_id": "5" },
    { "city_id": "471", "city_name": "Bhabua", "state_id": "5" },
    { "city_id": "472", "city_name": "Bhagalpur", "state_id": "5" },
    { "city_id": "473", "city_name": "Bhimnagar", "state_id": "5" },
    { "city_id": "474", "city_name": "Bhojpur", "state_id": "5" },
    { "city_id": "475", "city_name": "Bihar", "state_id": "5" },
    { "city_id": "476", "city_name": "Bihar Sharif", "state_id": "5" },
    { "city_id": "477", "city_name": "Bihariganj", "state_id": "5" },
    { "city_id": "478", "city_name": "Bikramganj", "state_id": "5" },
    { "city_id": "479", "city_name": "Birpur", "state_id": "5" },
    { "city_id": "480", "city_name": "Bodh Gaya", "state_id": "5" },
    { "city_id": "481", "city_name": "Buxar", "state_id": "5" },
    { "city_id": "482", "city_name": "Chakia", "state_id": "5" },
    { "city_id": "483", "city_name": "Chanpatia", "state_id": "5" },
    { "city_id": "484", "city_name": "Chhapra", "state_id": "5" },
    { "city_id": "485", "city_name": "Chhatapur", "state_id": "5" },
    { "city_id": "486", "city_name": "Colgong", "state_id": "5" },
    { "city_id": "487", "city_name": "Dalsingh Sarai", "state_id": "5" },
    { "city_id": "488", "city_name": "Darbhanga", "state_id": "5" },
    { "city_id": "489", "city_name": "Daudnagar", "state_id": "5" },
    { "city_id": "490", "city_name": "Dehri", "state_id": "5" },
    { "city_id": "491", "city_name": "Dhaka", "state_id": "5" },
    { "city_id": "492", "city_name": "Dighwara", "state_id": "5" },
    { "city_id": "493", "city_name": "Dinapur", "state_id": "5" },
    { "city_id": "494", "city_name": "Dinapur Cantonment", "state_id": "5" },
    { "city_id": "495", "city_name": "Dumra", "state_id": "5" },
    { "city_id": "496", "city_name": "Dumraon", "state_id": "5" },
    { "city_id": "497", "city_name": "Fatwa", "state_id": "5" },
    { "city_id": "498", "city_name": "Forbesganj", "state_id": "5" },
    { "city_id": "499", "city_name": "Gaya", "state_id": "5" },
    { "city_id": "500", "city_name": "Gazipur", "state_id": "5" },
    { "city_id": "501", "city_name": "Ghoghardiha", "state_id": "5" },
    { "city_id": "502", "city_name": "Gogri Jamalpur", "state_id": "5" },
    { "city_id": "503", "city_name": "Gopalganj", "state_id": "5" },
    { "city_id": "504", "city_name": "Habibpur", "state_id": "5" },
    { "city_id": "505", "city_name": "Hajipur", "state_id": "5" },
    { "city_id": "506", "city_name": "Hasanpur", "state_id": "5" },
    { "city_id": "507", "city_name": "Hazaribagh", "state_id": "5" },
    { "city_id": "508", "city_name": "Hilsa", "state_id": "5" },
    { "city_id": "509", "city_name": "Hisua", "state_id": "5" },
    { "city_id": "510", "city_name": "Islampur", "state_id": "5" },
    { "city_id": "511", "city_name": "Jagdispur", "state_id": "5" },
    { "city_id": "512", "city_name": "Jahanabad", "state_id": "5" },
    { "city_id": "513", "city_name": "Jamalpur", "state_id": "5" },
    { "city_id": "514", "city_name": "Jamhaur", "state_id": "5" },
    { "city_id": "515", "city_name": "Jamui", "state_id": "5" },
    { "city_id": "516", "city_name": "Janakpur Road", "state_id": "5" },
    { "city_id": "517", "city_name": "Janpur", "state_id": "5" },
    { "city_id": "518", "city_name": "Jaynagar", "state_id": "5" },
    { "city_id": "519", "city_name": "Jha Jha", "state_id": "5" },
    { "city_id": "520", "city_name": "Jhanjharpur", "state_id": "5" },
    { "city_id": "521", "city_name": "Jogbani", "state_id": "5" },
    { "city_id": "522", "city_name": "Kanti", "state_id": "5" },
    { "city_id": "523", "city_name": "Kasba", "state_id": "5" },
    { "city_id": "524", "city_name": "Kataiya", "state_id": "5" },
    { "city_id": "525", "city_name": "Katihar", "state_id": "5" },
    { "city_id": "526", "city_name": "Khagaria", "state_id": "5" },
    { "city_id": "527", "city_name": "Khagaul", "state_id": "5" },
    { "city_id": "528", "city_name": "Kharagpur", "state_id": "5" },
    { "city_id": "529", "city_name": "Khusrupur", "state_id": "5" },
    { "city_id": "530", "city_name": "Kishanganj", "state_id": "5" },
    { "city_id": "531", "city_name": "Koath", "state_id": "5" },
    { "city_id": "532", "city_name": "Koilwar", "state_id": "5" },
    { "city_id": "533", "city_name": "Lakhisarai", "state_id": "5" },
    { "city_id": "534", "city_name": "Lalganj", "state_id": "5" },
    { "city_id": "535", "city_name": "Lauthaha", "state_id": "5" },
    { "city_id": "536", "city_name": "Madhepura", "state_id": "5" },
    { "city_id": "537", "city_name": "Madhubani", "state_id": "5" },
    { "city_id": "538", "city_name": "Maharajganj", "state_id": "5" },
    { "city_id": "539", "city_name": "Mahnar Bazar", "state_id": "5" },
    { "city_id": "540", "city_name": "Mairwa", "state_id": "5" },
    { "city_id": "541", "city_name": "Makhdumpur", "state_id": "5" },
    { "city_id": "542", "city_name": "Maner", "state_id": "5" },
    { "city_id": "543", "city_name": "Manihari", "state_id": "5" },
    { "city_id": "544", "city_name": "Marhaura", "state_id": "5" },
    { "city_id": "545", "city_name": "Masaurhi", "state_id": "5" },
    { "city_id": "546", "city_name": "Mirganj", "state_id": "5" },
    { "city_id": "547", "city_name": "Mohiuddinagar", "state_id": "5" },
    { "city_id": "548", "city_name": "Mokama", "state_id": "5" },
    { "city_id": "549", "city_name": "Motihari", "state_id": "5" },
    { "city_id": "550", "city_name": "Motipur", "state_id": "5" },
    { "city_id": "551", "city_name": "Munger", "state_id": "5" },
    { "city_id": "552", "city_name": "Murliganj", "state_id": "5" },
    { "city_id": "553", "city_name": "Muzaffarpur", "state_id": "5" },
    { "city_id": "554", "city_name": "Nabinagar", "state_id": "5" },
    { "city_id": "555", "city_name": "Narkatiaganj", "state_id": "5" },
    { "city_id": "556", "city_name": "Nasriganj", "state_id": "5" },
    { "city_id": "557", "city_name": "Natwar", "state_id": "5" },
    { "city_id": "558", "city_name": "Naugachhia", "state_id": "5" },
    { "city_id": "559", "city_name": "Nawada", "state_id": "5" },
    { "city_id": "560", "city_name": "Nirmali", "state_id": "5" },
    { "city_id": "561", "city_name": "Nokha", "state_id": "5" },
    { "city_id": "562", "city_name": "Paharpur", "state_id": "5" },
    { "city_id": "563", "city_name": "Patna", "state_id": "5" },
    { "city_id": "564", "city_name": "Phulwari", "state_id": "5" },
    { "city_id": "565", "city_name": "Piro", "state_id": "5" },
    { "city_id": "566", "city_name": "Purnia", "state_id": "5" },
    { "city_id": "567", "city_name": "Pusa", "state_id": "5" },
    { "city_id": "568", "city_name": "Rafiganj", "state_id": "5" },
    { "city_id": "569", "city_name": "Raghunathpur", "state_id": "5" },
    { "city_id": "570", "city_name": "Rajgir", "state_id": "5" },
    { "city_id": "571", "city_name": "Ramnagar", "state_id": "5" },
    { "city_id": "572", "city_name": "Raxaul", "state_id": "5" },
    { "city_id": "573", "city_name": "Revelganj", "state_id": "5" },
    { "city_id": "574", "city_name": "Rusera", "state_id": "5" },
    { "city_id": "575", "city_name": "Sagauli", "state_id": "5" },
    { "city_id": "576", "city_name": "Saharsa", "state_id": "5" },
    { "city_id": "577", "city_name": "Samastipur", "state_id": "5" },
    { "city_id": "578", "city_name": "Sasaram", "state_id": "5" },
    { "city_id": "579", "city_name": "Shahpur", "state_id": "5" },
    { "city_id": "580", "city_name": "Shaikhpura", "state_id": "5" },
    { "city_id": "581", "city_name": "Sherghati", "state_id": "5" },
    { "city_id": "582", "city_name": "Shivhar", "state_id": "5" },
    { "city_id": "583", "city_name": "Silao", "state_id": "5" },
    { "city_id": "584", "city_name": "Sitamarhi", "state_id": "5" },
    { "city_id": "585", "city_name": "Siwan", "state_id": "5" },
    { "city_id": "586", "city_name": "Sonepur", "state_id": "5" },
    { "city_id": "587", "city_name": "Sultanganj", "state_id": "5" },
    { "city_id": "588", "city_name": "Supaul", "state_id": "5" },
    { "city_id": "589", "city_name": "Teghra", "state_id": "5" },
    { "city_id": "590", "city_name": "Tekari", "state_id": "5" },
    { "city_id": "591", "city_name": "Thakurganj", "state_id": "5" },
    { "city_id": "592", "city_name": "Vaishali", "state_id": "5" },
    { "city_id": "593", "city_name": "Waris Aliganj", "state_id": "5" },
    { "city_id": "594", "city_name": "Chandigarh", "state_id": "6" },
    { "city_id": "595", "city_name": "Ahiwara", "state_id": "7" },
    { "city_id": "596", "city_name": "Akaltara", "state_id": "7" },
    { "city_id": "597", "city_name": "Ambagarh Chauki", "state_id": "7" },
    { "city_id": "598", "city_name": "Ambikapur", "state_id": "7" },
    { "city_id": "599", "city_name": "Arang", "state_id": "7" },
    { "city_id": "600", "city_name": "Bade Bacheli", "state_id": "7" },
    { "city_id": "601", "city_name": "Bagbahara", "state_id": "7" },
    { "city_id": "602", "city_name": "Baikunthpur", "state_id": "7" },
    { "city_id": "603", "city_name": "Balod", "state_id": "7" },
    { "city_id": "604", "city_name": "Baloda", "state_id": "7" },
    { "city_id": "605", "city_name": "Baloda Bazar", "state_id": "7" },
    { "city_id": "606", "city_name": "Banarsi", "state_id": "7" },
    { "city_id": "607", "city_name": "Basna", "state_id": "7" },
    { "city_id": "608", "city_name": "Bemetra", "state_id": "7" },
    { "city_id": "609", "city_name": "Bhanpuri", "state_id": "7" },
    { "city_id": "610", "city_name": "Bhatapara", "state_id": "7" },
    { "city_id": "611", "city_name": "Bhatgaon", "state_id": "7" },
    { "city_id": "612", "city_name": "Bhilai", "state_id": "7" },
    { "city_id": "613", "city_name": "Bilaspur", "state_id": "7" },
    { "city_id": "614", "city_name": "Bilha", "state_id": "7" },
    { "city_id": "615", "city_name": "Birgaon", "state_id": "7" },
    { "city_id": "616", "city_name": "Bodri", "state_id": "7" },
    { "city_id": "617", "city_name": "Champa", "state_id": "7" },
    { "city_id": "618", "city_name": "Charcha", "state_id": "7" },
    { "city_id": "619", "city_name": "Charoda", "state_id": "7" },
    { "city_id": "620", "city_name": "Chhuikhadan", "state_id": "7" },
    { "city_id": "621", "city_name": "Chirmiri", "state_id": "7" },
    { "city_id": "622", "city_name": "Dantewada", "state_id": "7" },
    { "city_id": "623", "city_name": "Deori", "state_id": "7" },
    { "city_id": "624", "city_name": "Dhamdha", "state_id": "7" },
    { "city_id": "625", "city_name": "Dhamtari", "state_id": "7" },
    { "city_id": "626", "city_name": "Dharamjaigarh", "state_id": "7" },
    { "city_id": "627", "city_name": "Dipka", "state_id": "7" },
    { "city_id": "628", "city_name": "Doman Hill Colliery", "state_id": "7" },
    { "city_id": "629", "city_name": "Dongargaon", "state_id": "7" },
    { "city_id": "630", "city_name": "Dongragarh", "state_id": "7" },
    { "city_id": "631", "city_name": "Durg", "state_id": "7" },
    { "city_id": "632", "city_name": "Frezarpur", "state_id": "7" },
    { "city_id": "633", "city_name": "Gandai", "state_id": "7" },
    { "city_id": "634", "city_name": "Gariaband", "state_id": "7" },
    { "city_id": "635", "city_name": "Gaurela", "state_id": "7" },
    { "city_id": "636", "city_name": "Gelhapani", "state_id": "7" },
    { "city_id": "637", "city_name": "Gharghoda", "state_id": "7" },
    { "city_id": "638", "city_name": "Gidam", "state_id": "7" },
    { "city_id": "639", "city_name": "Gobra Nawapara", "state_id": "7" },
    { "city_id": "640", "city_name": "Gogaon", "state_id": "7" },
    { "city_id": "641", "city_name": "Hatkachora", "state_id": "7" },
    { "city_id": "642", "city_name": "Jagdalpur", "state_id": "7" },
    { "city_id": "643", "city_name": "Jamui", "state_id": "7" },
    { "city_id": "644", "city_name": "Jashpurnagar", "state_id": "7" },
    { "city_id": "645", "city_name": "Jhagrakhand", "state_id": "7" },
    { "city_id": "646", "city_name": "Kanker", "state_id": "7" },
    { "city_id": "647", "city_name": "Katghora", "state_id": "7" },
    { "city_id": "648", "city_name": "Kawardha", "state_id": "7" },
    { "city_id": "649", "city_name": "Khairagarh", "state_id": "7" },
    { "city_id": "650", "city_name": "Khamhria", "state_id": "7" },
    { "city_id": "651", "city_name": "Kharod", "state_id": "7" },
    { "city_id": "652", "city_name": "Kharsia", "state_id": "7" },
    { "city_id": "653", "city_name": "Khonga Pani", "state_id": "7" },
    { "city_id": "654", "city_name": "Kirandu", "state_id": "7" },
    { "city_id": "655", "city_name": "Kirandul", "state_id": "7" },
    { "city_id": "656", "city_name": "Kohka", "state_id": "7" },
    { "city_id": "657", "city_name": "Kondagaon", "state_id": "7" },
    { "city_id": "658", "city_name": "Korba", "state_id": "7" },
    { "city_id": "659", "city_name": "Korea", "state_id": "7" },
    { "city_id": "660", "city_name": "Koria Block", "state_id": "7" },
    { "city_id": "661", "city_name": "Kota", "state_id": "7" },
    { "city_id": "662", "city_name": "Kumhari", "state_id": "7" },
    { "city_id": "663", "city_name": "Kumud Katta", "state_id": "7" },
    { "city_id": "664", "city_name": "Kurasia", "state_id": "7" },
    { "city_id": "665", "city_name": "Kurud", "state_id": "7" },
    { "city_id": "666", "city_name": "Lingiyadih", "state_id": "7" },
    { "city_id": "667", "city_name": "Lormi", "state_id": "7" },
    { "city_id": "668", "city_name": "Mahasamund", "state_id": "7" },
    { "city_id": "669", "city_name": "Mahendragarh", "state_id": "7" },
    { "city_id": "670", "city_name": "Mehmand", "state_id": "7" },
    { "city_id": "671", "city_name": "Mongra", "state_id": "7" },
    { "city_id": "672", "city_name": "Mowa", "state_id": "7" },
    { "city_id": "673", "city_name": "Mungeli", "state_id": "7" },
    { "city_id": "674", "city_name": "Nailajanjgir", "state_id": "7" },
    { "city_id": "675", "city_name": "Namna Kalan", "state_id": "7" },
    { "city_id": "676", "city_name": "Naya Baradwar", "state_id": "7" },
    { "city_id": "677", "city_name": "Pandariya", "state_id": "7" },
    { "city_id": "678", "city_name": "Patan", "state_id": "7" },
    { "city_id": "679", "city_name": "Pathalgaon", "state_id": "7" },
    { "city_id": "680", "city_name": "Pendra", "state_id": "7" },
    { "city_id": "681", "city_name": "Phunderdihari", "state_id": "7" },
    { "city_id": "682", "city_name": "Pithora", "state_id": "7" },
    { "city_id": "683", "city_name": "Raigarh", "state_id": "7" },
    { "city_id": "684", "city_name": "Raipur", "state_id": "7" },
    { "city_id": "685", "city_name": "Rajgamar", "state_id": "7" },
    { "city_id": "686", "city_name": "Rajhara", "state_id": "7" },
    { "city_id": "687", "city_name": "Rajnandgaon", "state_id": "7" },
    { "city_id": "688", "city_name": "Ramanuj Ganj", "state_id": "7" },
    { "city_id": "689", "city_name": "Ratanpur", "state_id": "7" },
    { "city_id": "690", "city_name": "Sakti", "state_id": "7" },
    { "city_id": "691", "city_name": "Saraipali", "state_id": "7" },
    { "city_id": "692", "city_name": "Sarajpur", "state_id": "7" },
    { "city_id": "693", "city_name": "Sarangarh", "state_id": "7" },
    { "city_id": "694", "city_name": "Shivrinarayan", "state_id": "7" },
    { "city_id": "695", "city_name": "Simga", "state_id": "7" },
    { "city_id": "696", "city_name": "Sirgiti", "state_id": "7" },
    { "city_id": "697", "city_name": "Takhatpur", "state_id": "7" },
    { "city_id": "698", "city_name": "Telgaon", "state_id": "7" },
    { "city_id": "699", "city_name": "Tildanewra", "state_id": "7" },
    { "city_id": "700", "city_name": "Urla", "state_id": "7" },
    { "city_id": "701", "city_name": "Vishrampur", "state_id": "7" },
    { "city_id": "702", "city_name": "Amli", "state_id": "8" },
    { "city_id": "703", "city_name": "Silvassa", "state_id": "8" },
    { "city_id": "704", "city_name": "Daman", "state_id": "9" },
    { "city_id": "705", "city_name": "Diu", "state_id": "9" },
    { "city_id": "706", "city_name": "Delhi", "state_id": "10" },
    { "city_id": "707", "city_name": "New Delhi", "state_id": "10" },
    { "city_id": "708", "city_name": "Aldona", "state_id": "11" },
    { "city_id": "709", "city_name": "Altinho", "state_id": "11" },
    { "city_id": "710", "city_name": "Aquem", "state_id": "11" },
    { "city_id": "711", "city_name": "Arpora", "state_id": "11" },
    { "city_id": "712", "city_name": "Bambolim", "state_id": "11" },
    { "city_id": "713", "city_name": "Bandora", "state_id": "11" },
    { "city_id": "714", "city_name": "Bardez", "state_id": "11" },
    { "city_id": "715", "city_name": "Benaulim", "state_id": "11" },
    { "city_id": "716", "city_name": "Betora", "state_id": "11" },
    { "city_id": "717", "city_name": "Bicholim", "state_id": "11" },
    { "city_id": "718", "city_name": "Calapor", "state_id": "11" },
    { "city_id": "719", "city_name": "Candolim", "state_id": "11" },
    { "city_id": "720", "city_name": "Caranzalem", "state_id": "11" },
    { "city_id": "721", "city_name": "Carapur", "state_id": "11" },
    { "city_id": "722", "city_name": "Chicalim", "state_id": "11" },
    { "city_id": "723", "city_name": "Chimbel", "state_id": "11" },
    { "city_id": "724", "city_name": "Chinchinim", "state_id": "11" },
    { "city_id": "725", "city_name": "Colvale", "state_id": "11" },
    { "city_id": "726", "city_name": "Corlim", "state_id": "11" },
    { "city_id": "727", "city_name": "Cortalim", "state_id": "11" },
    { "city_id": "728", "city_name": "Cuncolim", "state_id": "11" },
    { "city_id": "729", "city_name": "Curchorem", "state_id": "11" },
    { "city_id": "730", "city_name": "Curti", "state_id": "11" },
    { "city_id": "731", "city_name": "Davorlim", "state_id": "11" },
    { "city_id": "732", "city_name": "Dona Paula", "state_id": "11" },
    { "city_id": "733", "city_name": "Goa", "state_id": "11" },
    { "city_id": "734", "city_name": "Guirim", "state_id": "11" },
    { "city_id": "735", "city_name": "Jua", "state_id": "11" },
    { "city_id": "736", "city_name": "Kalangat", "state_id": "11" },
    { "city_id": "737", "city_name": "Kankon", "state_id": "11" },
    { "city_id": "738", "city_name": "Kundaim", "state_id": "11" },
    { "city_id": "739", "city_name": "Loutulim", "state_id": "11" },
    { "city_id": "740", "city_name": "Madgaon", "state_id": "11" },
    { "city_id": "741", "city_name": "Mapusa", "state_id": "11" },
    { "city_id": "742", "city_name": "Margao", "state_id": "11" },
    { "city_id": "743", "city_name": "Margaon", "state_id": "11" },
    { "city_id": "744", "city_name": "Miramar", "state_id": "11" },
    { "city_id": "745", "city_name": "Morjim", "state_id": "11" },
    { "city_id": "746", "city_name": "Mormugao", "state_id": "11" },
    { "city_id": "747", "city_name": "Navelim", "state_id": "11" },
    { "city_id": "748", "city_name": "Pale", "state_id": "11" },
    { "city_id": "749", "city_name": "Panaji", "state_id": "11" },
    { "city_id": "750", "city_name": "Parcem", "state_id": "11" },
    { "city_id": "751", "city_name": "Parra", "state_id": "11" },
    { "city_id": "752", "city_name": "Penha de Franca", "state_id": "11" },
    { "city_id": "753", "city_name": "Pernem", "state_id": "11" },
    { "city_id": "754", "city_name": "Pilerne", "state_id": "11" },
    { "city_id": "755", "city_name": "Pissurlem", "state_id": "11" },
    { "city_id": "756", "city_name": "Ponda", "state_id": "11" },
    { "city_id": "757", "city_name": "Porvorim", "state_id": "11" },
    { "city_id": "758", "city_name": "Quepem", "state_id": "11" },
    { "city_id": "759", "city_name": "Queula", "state_id": "11" },
    { "city_id": "760", "city_name": "Raia", "state_id": "11" },
    { "city_id": "761", "city_name": "Reis Magos", "state_id": "11" },
    { "city_id": "762", "city_name": "Salcette", "state_id": "11" },
    { "city_id": "763", "city_name": "Saligao", "state_id": "11" },
    { "city_id": "764", "city_name": "Sancoale", "state_id": "11" },
    { "city_id": "765", "city_name": "Sanguem", "state_id": "11" },
    { "city_id": "766", "city_name": "Sanquelim", "state_id": "11" },
    { "city_id": "767", "city_name": "Sanvordem", "state_id": "11" },
    { "city_id": "768", "city_name": "Sao Jose-de-Areal", "state_id": "11" },
    { "city_id": "769", "city_name": "Sattari", "state_id": "11" },
    { "city_id": "770", "city_name": "Serula", "state_id": "11" },
    { "city_id": "771", "city_name": "Sinquerim", "state_id": "11" },
    { "city_id": "772", "city_name": "Siolim", "state_id": "11" },
    { "city_id": "773", "city_name": "Taleigao", "state_id": "11" },
    { "city_id": "774", "city_name": "Tivim", "state_id": "11" },
    { "city_id": "775", "city_name": "Valpoi", "state_id": "11" },
    { "city_id": "776", "city_name": "Varca", "state_id": "11" },
    { "city_id": "777", "city_name": "Vasco", "state_id": "11" },
    { "city_id": "778", "city_name": "Verna", "state_id": "11" },
    { "city_id": "779", "city_name": "Abrama", "state_id": "12" },
    { "city_id": "780", "city_name": "Adalaj", "state_id": "12" },
    { "city_id": "781", "city_name": "Adityana", "state_id": "12" },
    { "city_id": "782", "city_name": "Advana", "state_id": "12" },
    { "city_id": "783", "city_name": "Ahmedabad", "state_id": "12" },
    { "city_id": "784", "city_name": "Ahwa", "state_id": "12" },
    { "city_id": "785", "city_name": "Alang", "state_id": "12" },
    { "city_id": "786", "city_name": "Ambaji", "state_id": "12" },
    { "city_id": "787", "city_name": "Ambaliyasan", "state_id": "12" },
    { "city_id": "788", "city_name": "Amod", "state_id": "12" },
    { "city_id": "789", "city_name": "Amreli", "state_id": "12" },
    { "city_id": "790", "city_name": "Amroli", "state_id": "12" },
    { "city_id": "791", "city_name": "Anand", "state_id": "12" },
    { "city_id": "792", "city_name": "Andada", "state_id": "12" },
    { "city_id": "793", "city_name": "Anjar", "state_id": "12" },
    { "city_id": "794", "city_name": "Anklav", "state_id": "12" },
    { "city_id": "795", "city_name": "Ankleshwar", "state_id": "12" },
    { "city_id": "796", "city_name": "Anklesvar INA", "state_id": "12" },
    { "city_id": "797", "city_name": "Antaliya", "state_id": "12" },
    { "city_id": "798", "city_name": "Arambhada", "state_id": "12" },
    { "city_id": "799", "city_name": "Asarma", "state_id": "12" },
    { "city_id": "800", "city_name": "Atul", "state_id": "12" },
    { "city_id": "801", "city_name": "Babra", "state_id": "12" },
    { "city_id": "802", "city_name": "Bag-e-Firdosh", "state_id": "12" },
    { "city_id": "803", "city_name": "Bagasara", "state_id": "12" },
    { "city_id": "804", "city_name": "Bahadarpar", "state_id": "12" },
    { "city_id": "805", "city_name": "Bajipura", "state_id": "12" },
    { "city_id": "806", "city_name": "Bajva", "state_id": "12" },
    { "city_id": "807", "city_name": "Balasinor", "state_id": "12" },
    { "city_id": "808", "city_name": "Banaskantha", "state_id": "12" },
    { "city_id": "809", "city_name": "Bansda", "state_id": "12" },
    { "city_id": "810", "city_name": "Bantva", "state_id": "12" },
    { "city_id": "811", "city_name": "Bardoli", "state_id": "12" },
    { "city_id": "812", "city_name": "Barwala", "state_id": "12" },
    { "city_id": "813", "city_name": "Bayad", "state_id": "12" },
    { "city_id": "814", "city_name": "Bechar", "state_id": "12" },
    { "city_id": "815", "city_name": "Bedi", "state_id": "12" },
    { "city_id": "816", "city_name": "Beyt", "state_id": "12" },
    { "city_id": "817", "city_name": "Bhachau", "state_id": "12" },
    { "city_id": "818", "city_name": "Bhanvad", "state_id": "12" },
    { "city_id": "819", "city_name": "Bharuch", "state_id": "12" },
    { "city_id": "820", "city_name": "Bharuch INA", "state_id": "12" },
    { "city_id": "821", "city_name": "Bhavnagar", "state_id": "12" },
    { "city_id": "822", "city_name": "Bhayavadar", "state_id": "12" },
    { "city_id": "823", "city_name": "Bhestan", "state_id": "12" },
    { "city_id": "824", "city_name": "Bhuj", "state_id": "12" },
    { "city_id": "825", "city_name": "Bilimora", "state_id": "12" },
    { "city_id": "826", "city_name": "Bilkha", "state_id": "12" },
    { "city_id": "827", "city_name": "Billimora", "state_id": "12" },
    { "city_id": "828", "city_name": "Bodakdev", "state_id": "12" },
    { "city_id": "829", "city_name": "Bodeli", "state_id": "12" },
    { "city_id": "830", "city_name": "Bopal", "state_id": "12" },
    { "city_id": "831", "city_name": "Boria", "state_id": "12" },
    { "city_id": "832", "city_name": "Boriavi", "state_id": "12" },
    { "city_id": "833", "city_name": "Borsad", "state_id": "12" },
    { "city_id": "834", "city_name": "Botad", "state_id": "12" },
    { "city_id": "835", "city_name": "Cambay", "state_id": "12" },
    { "city_id": "836", "city_name": "Chaklasi", "state_id": "12" },
    { "city_id": "837", "city_name": "Chala", "state_id": "12" },
    { "city_id": "838", "city_name": "Chalala", "state_id": "12" },
    { "city_id": "839", "city_name": "Chalthan", "state_id": "12" },
    { "city_id": "840", "city_name": "Chanasma", "state_id": "12" },
    { "city_id": "841", "city_name": "Chandisar", "state_id": "12" },
    { "city_id": "842", "city_name": "Chandkheda", "state_id": "12" },
    { "city_id": "843", "city_name": "Chanod", "state_id": "12" },
    { "city_id": "844", "city_name": "Chaya", "state_id": "12" },
    { "city_id": "845", "city_name": "Chenpur", "state_id": "12" },
    { "city_id": "846", "city_name": "Chhapi", "state_id": "12" },
    { "city_id": "847", "city_name": "Chhaprabhatha", "state_id": "12" },
    { "city_id": "848", "city_name": "Chhatral", "state_id": "12" },
    { "city_id": "849", "city_name": "Chhota Udepur", "state_id": "12" },
    { "city_id": "850", "city_name": "Chikhli", "state_id": "12" },
    { "city_id": "851", "city_name": "Chiloda", "state_id": "12" },
    { "city_id": "852", "city_name": "Chorvad", "state_id": "12" },
    { "city_id": "853", "city_name": "Chotila", "state_id": "12" },
    { "city_id": "854", "city_name": "Dabhoi", "state_id": "12" },
    { "city_id": "855", "city_name": "Dadara", "state_id": "12" },
    { "city_id": "856", "city_name": "Dahod", "state_id": "12" },
    { "city_id": "857", "city_name": "Dakor", "state_id": "12" },
    { "city_id": "858", "city_name": "Damnagar", "state_id": "12" },
    { "city_id": "859", "city_name": "Deesa", "state_id": "12" },
    { "city_id": "860", "city_name": "Delvada", "state_id": "12" },
    { "city_id": "861", "city_name": "Devgadh Baria", "state_id": "12" },
    { "city_id": "862", "city_name": "Devsar", "state_id": "12" },
    { "city_id": "863", "city_name": "Dhandhuka", "state_id": "12" },
    { "city_id": "864", "city_name": "Dhanera", "state_id": "12" },
    { "city_id": "865", "city_name": "Dhangdhra", "state_id": "12" },
    { "city_id": "866", "city_name": "Dhansura", "state_id": "12" },
    { "city_id": "867", "city_name": "Dharampur", "state_id": "12" },
    { "city_id": "868", "city_name": "Dhari", "state_id": "12" },
    { "city_id": "869", "city_name": "Dhola", "state_id": "12" },
    { "city_id": "870", "city_name": "Dholka", "state_id": "12" },
    { "city_id": "871", "city_name": "Dholka Rural", "state_id": "12" },
    { "city_id": "872", "city_name": "Dhoraji", "state_id": "12" },
    { "city_id": "873", "city_name": "Dhrangadhra", "state_id": "12" },
    { "city_id": "874", "city_name": "Dhrol", "state_id": "12" },
    { "city_id": "875", "city_name": "Dhuva", "state_id": "12" },
    { "city_id": "876", "city_name": "Dhuwaran", "state_id": "12" },
    { "city_id": "877", "city_name": "Digvijaygram", "state_id": "12" },
    { "city_id": "878", "city_name": "Disa", "state_id": "12" },
    { "city_id": "879", "city_name": "Dungar", "state_id": "12" },
    { "city_id": "880", "city_name": "Dungarpur", "state_id": "12" },
    { "city_id": "881", "city_name": "Dungra", "state_id": "12" },
    { "city_id": "882", "city_name": "Dwarka", "state_id": "12" },
    { "city_id": "883", "city_name": "Flelanganj", "state_id": "12" },
    { "city_id": "884", "city_name": "GSFC Complex", "state_id": "12" },
    { "city_id": "885", "city_name": "Gadhda", "state_id": "12" },
    { "city_id": "886", "city_name": "Gandevi", "state_id": "12" },
    { "city_id": "887", "city_name": "Gandhidham", "state_id": "12" },
    { "city_id": "888", "city_name": "Gandhinagar", "state_id": "12" },
    { "city_id": "889", "city_name": "Gariadhar", "state_id": "12" },
    { "city_id": "890", "city_name": "Ghogha", "state_id": "12" },
    { "city_id": "891", "city_name": "Godhra", "state_id": "12" },
    { "city_id": "892", "city_name": "Gondal", "state_id": "12" },
    { "city_id": "893", "city_name": "Hajira INA", "state_id": "12" },
    { "city_id": "894", "city_name": "Halol", "state_id": "12" },
    { "city_id": "895", "city_name": "Halvad", "state_id": "12" },
    { "city_id": "896", "city_name": "Hansot", "state_id": "12" },
    { "city_id": "897", "city_name": "Harij", "state_id": "12" },
    { "city_id": "898", "city_name": "Himatnagar", "state_id": "12" },
    { "city_id": "899", "city_name": "Ichchhapor", "state_id": "12" },
    { "city_id": "900", "city_name": "Idar", "state_id": "12" },
    { "city_id": "901", "city_name": "Jafrabad", "state_id": "12" },
    { "city_id": "902", "city_name": "Jalalpore", "state_id": "12" },
    { "city_id": "903", "city_name": "Jambusar", "state_id": "12" },
    { "city_id": "904", "city_name": "Jamjodhpur", "state_id": "12" },
    { "city_id": "905", "city_name": "Jamnagar", "state_id": "12" },
    { "city_id": "906", "city_name": "Jasdan", "state_id": "12" },
    { "city_id": "907", "city_name": "Jawaharnagar", "state_id": "12" },
    { "city_id": "908", "city_name": "Jetalsar", "state_id": "12" },
    { "city_id": "909", "city_name": "Jetpur", "state_id": "12" },
    { "city_id": "910", "city_name": "Jodiya", "state_id": "12" },
    { "city_id": "911", "city_name": "Joshipura", "state_id": "12" },
    { "city_id": "912", "city_name": "Junagadh", "state_id": "12" },
    { "city_id": "913", "city_name": "Kadi", "state_id": "12" },
    { "city_id": "914", "city_name": "Kadodara", "state_id": "12" },
    { "city_id": "915", "city_name": "Kalavad", "state_id": "12" },
    { "city_id": "916", "city_name": "Kali", "state_id": "12" },
    { "city_id": "917", "city_name": "Kaliawadi", "state_id": "12" },
    { "city_id": "918", "city_name": "Kalol", "state_id": "12" },
    { "city_id": "919", "city_name": "Kalol INA", "state_id": "12" },
    { "city_id": "920", "city_name": "Kandla", "state_id": "12" },
    { "city_id": "921", "city_name": "Kanjari", "state_id": "12" },
    { "city_id": "922", "city_name": "Kanodar", "state_id": "12" },
    { "city_id": "923", "city_name": "Kapadwanj", "state_id": "12" },
    { "city_id": "924", "city_name": "Karachiya", "state_id": "12" },
    { "city_id": "925", "city_name": "Karamsad", "state_id": "12" },
    { "city_id": "926", "city_name": "Karjan", "state_id": "12" },
    { "city_id": "927", "city_name": "Kathial", "state_id": "12" },
    { "city_id": "928", "city_name": "Kathor", "state_id": "12" },
    { "city_id": "929", "city_name": "Katpar", "state_id": "12" },
    { "city_id": "930", "city_name": "Kavant", "state_id": "12" },
    { "city_id": "931", "city_name": "Keshod", "state_id": "12" },
    { "city_id": "932", "city_name": "Kevadiya", "state_id": "12" },
    { "city_id": "933", "city_name": "Khambhaliya", "state_id": "12" },
    { "city_id": "934", "city_name": "Khambhat", "state_id": "12" },
    { "city_id": "935", "city_name": "Kharaghoda", "state_id": "12" },
    { "city_id": "936", "city_name": "Khed Brahma", "state_id": "12" },
    { "city_id": "937", "city_name": "Kheda", "state_id": "12" },
    { "city_id": "938", "city_name": "Kheralu", "state_id": "12" },
    { "city_id": "939", "city_name": "Kodinar", "state_id": "12" },
    { "city_id": "940", "city_name": "Kosamba", "state_id": "12" },
    { "city_id": "941", "city_name": "Kundla", "state_id": "12" },
    { "city_id": "942", "city_name": "Kutch", "state_id": "12" },
    { "city_id": "943", "city_name": "Kutiyana", "state_id": "12" },
    { "city_id": "944", "city_name": "Lakhtar", "state_id": "12" },
    { "city_id": "945", "city_name": "Lalpur", "state_id": "12" },
    { "city_id": "946", "city_name": "Lambha", "state_id": "12" },
    { "city_id": "947", "city_name": "Lathi", "state_id": "12" },
    { "city_id": "948", "city_name": "Limbdi", "state_id": "12" },
    { "city_id": "949", "city_name": "Limla", "state_id": "12" },
    { "city_id": "950", "city_name": "Lunavada", "state_id": "12" },
    { "city_id": "951", "city_name": "Madhapar", "state_id": "12" },
    { "city_id": "952", "city_name": "Maflipur", "state_id": "12" },
    { "city_id": "953", "city_name": "Mahemdavad", "state_id": "12" },
    { "city_id": "954", "city_name": "Mahudha", "state_id": "12" },
    { "city_id": "955", "city_name": "Mahuva", "state_id": "12" },
    { "city_id": "956", "city_name": "Mahuvar", "state_id": "12" },
    { "city_id": "957", "city_name": "Makarba", "state_id": "12" },
    { "city_id": "958", "city_name": "Makarpura", "state_id": "12" },
    { "city_id": "959", "city_name": "Makassar", "state_id": "12" },
    { "city_id": "960", "city_name": "Maktampur", "state_id": "12" },
    { "city_id": "961", "city_name": "Malia", "state_id": "12" },
    { "city_id": "962", "city_name": "Malpur", "state_id": "12" },
    { "city_id": "963", "city_name": "Manavadar", "state_id": "12" },
    { "city_id": "964", "city_name": "Mandal", "state_id": "12" },
    { "city_id": "965", "city_name": "Mandvi", "state_id": "12" },
    { "city_id": "966", "city_name": "Mangrol", "state_id": "12" },
    { "city_id": "967", "city_name": "Mansa", "state_id": "12" },
    { "city_id": "968", "city_name": "Meghraj", "state_id": "12" },
    { "city_id": "969", "city_name": "Mehsana", "state_id": "12" },
    { "city_id": "970", "city_name": "Mendarla", "state_id": "12" },
    { "city_id": "971", "city_name": "Mithapur", "state_id": "12" },
    { "city_id": "972", "city_name": "Modasa", "state_id": "12" },
    { "city_id": "973", "city_name": "Mogravadi", "state_id": "12" },
    { "city_id": "974", "city_name": "Morbi", "state_id": "12" },
    { "city_id": "975", "city_name": "Morvi", "state_id": "12" },
    { "city_id": "976", "city_name": "Mundra", "state_id": "12" },
    { "city_id": "977", "city_name": "Nadiad", "state_id": "12" },
    { "city_id": "978", "city_name": "Naliya", "state_id": "12" },
    { "city_id": "979", "city_name": "Nanakvada", "state_id": "12" },
    { "city_id": "980", "city_name": "Nandej", "state_id": "12" },
    { "city_id": "981", "city_name": "Nandesari", "state_id": "12" },
    { "city_id": "982", "city_name": "Nandesari INA", "state_id": "12" },
    { "city_id": "983", "city_name": "Naroda", "state_id": "12" },
    { "city_id": "984", "city_name": "Navagadh", "state_id": "12" },
    { "city_id": "985", "city_name": "Navagam Ghed", "state_id": "12" },
    { "city_id": "986", "city_name": "Navsari", "state_id": "12" },
    { "city_id": "987", "city_name": "Ode", "state_id": "12" },
    { "city_id": "988", "city_name": "Okaf", "state_id": "12" },
    { "city_id": "989", "city_name": "Okha", "state_id": "12" },
    { "city_id": "990", "city_name": "Olpad", "state_id": "12" },
    { "city_id": "991", "city_name": "Paddhari", "state_id": "12" },
    { "city_id": "992", "city_name": "Padra", "state_id": "12" },
    { "city_id": "993", "city_name": "Palanpur", "state_id": "12" },
    { "city_id": "994", "city_name": "Palej", "state_id": "12" },
    { "city_id": "995", "city_name": "Pali", "state_id": "12" },
    { "city_id": "996", "city_name": "Palitana", "state_id": "12" },
    { "city_id": "997", "city_name": "Paliyad", "state_id": "12" },
    { "city_id": "998", "city_name": "Pandesara", "state_id": "12" },
    { "city_id": "999", "city_name": "Panoli", "state_id": "12" },
    { "city_id": "1000", "city_name": "Pardi", "state_id": "12" },
    { "city_id": "1001", "city_name": "Parnera", "state_id": "12" },
    { "city_id": "1002", "city_name": "Parvat", "state_id": "12" },
    { "city_id": "1003", "city_name": "Patan", "state_id": "12" },
    { "city_id": "1004", "city_name": "Patdi", "state_id": "12" },
    { "city_id": "1005", "city_name": "Petlad", "state_id": "12" },
    {
      "city_id": "1006",
      "city_name": "Petrochemical Complex",
      "state_id": "12"
    },
    { "city_id": "1007", "city_name": "Porbandar", "state_id": "12" },
    { "city_id": "1008", "city_name": "Prantij", "state_id": "12" },
    { "city_id": "1009", "city_name": "Radhanpur", "state_id": "12" },
    { "city_id": "1010", "city_name": "Raiya", "state_id": "12" },
    { "city_id": "1011", "city_name": "Rajkot", "state_id": "12" },
    { "city_id": "1012", "city_name": "Rajpipla", "state_id": "12" },
    { "city_id": "1013", "city_name": "Rajula", "state_id": "12" },
    { "city_id": "1014", "city_name": "Ramod", "state_id": "12" },
    { "city_id": "1015", "city_name": "Ranavav", "state_id": "12" },
    { "city_id": "1016", "city_name": "Ranoli", "state_id": "12" },
    { "city_id": "1017", "city_name": "Rapar", "state_id": "12" },
    { "city_id": "1018", "city_name": "Sahij", "state_id": "12" },
    { "city_id": "1019", "city_name": "Salaya", "state_id": "12" },
    { "city_id": "1020", "city_name": "Sanand", "state_id": "12" },
    { "city_id": "1021", "city_name": "Sankheda", "state_id": "12" },
    { "city_id": "1022", "city_name": "Santrampur", "state_id": "12" },
    { "city_id": "1023", "city_name": "Saribujrang", "state_id": "12" },
    { "city_id": "1024", "city_name": "Sarigam INA", "state_id": "12" },
    { "city_id": "1025", "city_name": "Sayan", "state_id": "12" },
    { "city_id": "1026", "city_name": "Sayla", "state_id": "12" },
    { "city_id": "1027", "city_name": "Shahpur", "state_id": "12" },
    { "city_id": "1028", "city_name": "Shahwadi", "state_id": "12" },
    { "city_id": "1029", "city_name": "Shapar", "state_id": "12" },
    { "city_id": "1030", "city_name": "Shivrajpur", "state_id": "12" },
    { "city_id": "1031", "city_name": "Siddhapur", "state_id": "12" },
    { "city_id": "1032", "city_name": "Sidhpur", "state_id": "12" },
    { "city_id": "1033", "city_name": "Sihor", "state_id": "12" },
    { "city_id": "1034", "city_name": "Sika", "state_id": "12" },
    { "city_id": "1035", "city_name": "Singarva", "state_id": "12" },
    { "city_id": "1036", "city_name": "Sinor", "state_id": "12" },
    { "city_id": "1037", "city_name": "Sojitra", "state_id": "12" },
    { "city_id": "1038", "city_name": "Sola", "state_id": "12" },
    { "city_id": "1039", "city_name": "Songadh", "state_id": "12" },
    { "city_id": "1040", "city_name": "Suraj Karadi", "state_id": "12" },
    { "city_id": "1041", "city_name": "Surat", "state_id": "12" },
    { "city_id": "1042", "city_name": "Surendranagar", "state_id": "12" },
    { "city_id": "1043", "city_name": "Talaja", "state_id": "12" },
    { "city_id": "1044", "city_name": "Talala", "state_id": "12" },
    { "city_id": "1045", "city_name": "Talod", "state_id": "12" },
    { "city_id": "1046", "city_name": "Tankara", "state_id": "12" },
    { "city_id": "1047", "city_name": "Tarsali", "state_id": "12" },
    { "city_id": "1048", "city_name": "Thangadh", "state_id": "12" },
    { "city_id": "1049", "city_name": "Tharad", "state_id": "12" },
    { "city_id": "1050", "city_name": "Thasra", "state_id": "12" },
    { "city_id": "1051", "city_name": "Udyognagar", "state_id": "12" },
    { "city_id": "1052", "city_name": "Ukai", "state_id": "12" },
    { "city_id": "1053", "city_name": "Umbergaon", "state_id": "12" },
    { "city_id": "1054", "city_name": "Umbergaon INA", "state_id": "12" },
    { "city_id": "1055", "city_name": "Umrala", "state_id": "12" },
    { "city_id": "1056", "city_name": "Umreth", "state_id": "12" },
    { "city_id": "1057", "city_name": "Un", "state_id": "12" },
    { "city_id": "1058", "city_name": "Una", "state_id": "12" },
    { "city_id": "1059", "city_name": "Unjha", "state_id": "12" },
    { "city_id": "1060", "city_name": "Upleta", "state_id": "12" },
    { "city_id": "1061", "city_name": "Utran", "state_id": "12" },
    { "city_id": "1062", "city_name": "Uttarsanda", "state_id": "12" },
    { "city_id": "1063", "city_name": "V.U. Nagar", "state_id": "12" },
    { "city_id": "1064", "city_name": "V.V. Nagar", "state_id": "12" },
    { "city_id": "1065", "city_name": "Vadia", "state_id": "12" },
    { "city_id": "1066", "city_name": "Vadla", "state_id": "12" },
    { "city_id": "1067", "city_name": "Vadnagar", "state_id": "12" },
    { "city_id": "1068", "city_name": "Vadodara", "state_id": "12" },
    { "city_id": "1069", "city_name": "Vaghodia INA", "state_id": "12" },
    { "city_id": "1070", "city_name": "Valbhipur", "state_id": "12" },
    {
      "city_id": "1071",
      "city_name": "Vallabh Vidyanagar",
      "state_id": "12"
    },
    { "city_id": "1072", "city_name": "Valsad", "state_id": "12" },
    { "city_id": "1073", "city_name": "Valsad INA", "state_id": "12" },
    { "city_id": "1074", "city_name": "Vanthali", "state_id": "12" },
    { "city_id": "1075", "city_name": "Vapi", "state_id": "12" },
    { "city_id": "1076", "city_name": "Vapi INA", "state_id": "12" },
    { "city_id": "1077", "city_name": "Vartej", "state_id": "12" },
    { "city_id": "1078", "city_name": "Vasad", "state_id": "12" },
    { "city_id": "1079", "city_name": "Vasna Borsad INA", "state_id": "12" },
    { "city_id": "1080", "city_name": "Vaso", "state_id": "12" },
    { "city_id": "1081", "city_name": "Veraval", "state_id": "12" },
    { "city_id": "1082", "city_name": "Vidyanagar", "state_id": "12" },
    { "city_id": "1083", "city_name": "Vijalpor", "state_id": "12" },
    { "city_id": "1084", "city_name": "Vijapur", "state_id": "12" },
    { "city_id": "1085", "city_name": "Vinchhiya", "state_id": "12" },
    { "city_id": "1086", "city_name": "Vinzol", "state_id": "12" },
    { "city_id": "1087", "city_name": "Virpur", "state_id": "12" },
    { "city_id": "1088", "city_name": "Visavadar", "state_id": "12" },
    { "city_id": "1089", "city_name": "Visnagar", "state_id": "12" },
    { "city_id": "1090", "city_name": "Vyara", "state_id": "12" },
    { "city_id": "1091", "city_name": "Wadhwan", "state_id": "12" },
    { "city_id": "1092", "city_name": "Waghai", "state_id": "12" },
    { "city_id": "1093", "city_name": "Waghodia", "state_id": "12" },
    { "city_id": "1094", "city_name": "Wankaner", "state_id": "12" },
    { "city_id": "1095", "city_name": "Zalod", "state_id": "12" },
    { "city_id": "1096", "city_name": "Ambala", "state_id": "13" },
    { "city_id": "1097", "city_name": "Ambala Cantt", "state_id": "13" },
    { "city_id": "1098", "city_name": "Asan Khurd", "state_id": "13" },
    { "city_id": "1099", "city_name": "Asandh", "state_id": "13" },
    { "city_id": "1100", "city_name": "Ateli", "state_id": "13" },
    { "city_id": "1101", "city_name": "Babiyal", "state_id": "13" },
    { "city_id": "1102", "city_name": "Bahadurgarh", "state_id": "13" },
    { "city_id": "1103", "city_name": "Ballabgarh", "state_id": "13" },
    { "city_id": "1104", "city_name": "Barwala", "state_id": "13" },
    { "city_id": "1105", "city_name": "Bawal", "state_id": "13" },
    { "city_id": "1106", "city_name": "Bawani Khera", "state_id": "13" },
    { "city_id": "1107", "city_name": "Beri", "state_id": "13" },
    { "city_id": "1108", "city_name": "Bhiwani", "state_id": "13" },
    { "city_id": "1109", "city_name": "Bilaspur", "state_id": "13" },
    { "city_id": "1110", "city_name": "Buria", "state_id": "13" },
    { "city_id": "1111", "city_name": "Charkhi Dadri", "state_id": "13" },
    { "city_id": "1112", "city_name": "Chhachhrauli", "state_id": "13" },
    { "city_id": "1113", "city_name": "Chita", "state_id": "13" },
    { "city_id": "1114", "city_name": "Dabwali", "state_id": "13" },
    { "city_id": "1115", "city_name": "Dharuhera", "state_id": "13" },
    { "city_id": "1116", "city_name": "Dundahera", "state_id": "13" },
    { "city_id": "1117", "city_name": "Ellenabad", "state_id": "13" },
    { "city_id": "1118", "city_name": "Farakhpur", "state_id": "13" },
    { "city_id": "1119", "city_name": "Faridabad", "state_id": "13" },
    { "city_id": "1120", "city_name": "Farrukhnagar", "state_id": "13" },
    { "city_id": "1121", "city_name": "Fatehabad", "state_id": "13" },
    { "city_id": "1122", "city_name": "Firozpur Jhirka", "state_id": "13" },
    { "city_id": "1123", "city_name": "Gannaur", "state_id": "13" },
    { "city_id": "1124", "city_name": "Ghraunda", "state_id": "13" },
    { "city_id": "1125", "city_name": "Gohana", "state_id": "13" },
    { "city_id": "1126", "city_name": "Gurgaon", "state_id": "13" },
    { "city_id": "1127", "city_name": "Haileymandi", "state_id": "13" },
    { "city_id": "1128", "city_name": "Hansi", "state_id": "13" },
    { "city_id": "1129", "city_name": "Hasanpur", "state_id": "13" },
    { "city_id": "1130", "city_name": "Hathin", "state_id": "13" },
    { "city_id": "1131", "city_name": "Hisar", "state_id": "13" },
    { "city_id": "1132", "city_name": "Hissar", "state_id": "13" },
    { "city_id": "1133", "city_name": "Hodal", "state_id": "13" },
    { "city_id": "1134", "city_name": "Indri", "state_id": "13" },
    { "city_id": "1135", "city_name": "Jagadhri", "state_id": "13" },
    { "city_id": "1136", "city_name": "Jakhal Mandi", "state_id": "13" },
    { "city_id": "1137", "city_name": "Jhajjar", "state_id": "13" },
    { "city_id": "1138", "city_name": "Jind", "state_id": "13" },
    { "city_id": "1139", "city_name": "Julana", "state_id": "13" },
    { "city_id": "1140", "city_name": "Kaithal", "state_id": "13" },
    { "city_id": "1141", "city_name": "Kalanur", "state_id": "13" },
    { "city_id": "1142", "city_name": "Kalanwali", "state_id": "13" },
    { "city_id": "1143", "city_name": "Kalayat", "state_id": "13" },
    { "city_id": "1144", "city_name": "Kalka", "state_id": "13" },
    { "city_id": "1145", "city_name": "Kanina", "state_id": "13" },
    { "city_id": "1146", "city_name": "Kansepur", "state_id": "13" },
    { "city_id": "1147", "city_name": "Kardhan", "state_id": "13" },
    { "city_id": "1148", "city_name": "Karnal", "state_id": "13" },
    { "city_id": "1149", "city_name": "Kharkhoda", "state_id": "13" },
    { "city_id": "1150", "city_name": "Kheri Sampla", "state_id": "13" },
    { "city_id": "1151", "city_name": "Kundli", "state_id": "13" },
    { "city_id": "1152", "city_name": "Kurukshetra", "state_id": "13" },
    { "city_id": "1153", "city_name": "Ladrawan", "state_id": "13" },
    { "city_id": "1154", "city_name": "Ladwa", "state_id": "13" },
    { "city_id": "1155", "city_name": "Loharu", "state_id": "13" },
    { "city_id": "1156", "city_name": "Maham", "state_id": "13" },
    { "city_id": "1157", "city_name": "Mahendragarh", "state_id": "13" },
    { "city_id": "1158", "city_name": "Mustafabad", "state_id": "13" },
    { "city_id": "1159", "city_name": "Nagai Chaudhry", "state_id": "13" },
    { "city_id": "1160", "city_name": "Narayangarh", "state_id": "13" },
    { "city_id": "1161", "city_name": "Narnaul", "state_id": "13" },
    { "city_id": "1162", "city_name": "Narnaund", "state_id": "13" },
    { "city_id": "1163", "city_name": "Narwana", "state_id": "13" },
    { "city_id": "1164", "city_name": "Nilokheri", "state_id": "13" },
    { "city_id": "1165", "city_name": "Nuh", "state_id": "13" },
    { "city_id": "1166", "city_name": "Palwal", "state_id": "13" },
    { "city_id": "1167", "city_name": "Panchkula", "state_id": "13" },
    { "city_id": "1168", "city_name": "Panipat", "state_id": "13" },
    {
      "city_id": "1169",
      "city_name": "Panipat Taraf Ansar",
      "state_id": "13"
    },
    {
      "city_id": "1170",
      "city_name": "Panipat Taraf Makhdum Zadgan",
      "state_id": "13"
    },
    {
      "city_id": "1171",
      "city_name": "Panipat Taraf Rajputan",
      "state_id": "13"
    },
    { "city_id": "1172", "city_name": "Pehowa", "state_id": "13" },
    { "city_id": "1173", "city_name": "Pinjaur", "state_id": "13" },
    { "city_id": "1174", "city_name": "Punahana", "state_id": "13" },
    { "city_id": "1175", "city_name": "Pundri", "state_id": "13" },
    { "city_id": "1176", "city_name": "Radaur", "state_id": "13" },
    { "city_id": "1177", "city_name": "Raipur Rani", "state_id": "13" },
    { "city_id": "1178", "city_name": "Rania", "state_id": "13" },
    { "city_id": "1179", "city_name": "Ratiya", "state_id": "13" },
    { "city_id": "1180", "city_name": "Rewari", "state_id": "13" },
    { "city_id": "1181", "city_name": "Rohtak", "state_id": "13" },
    { "city_id": "1182", "city_name": "Ropar", "state_id": "13" },
    { "city_id": "1183", "city_name": "Sadauri", "state_id": "13" },
    { "city_id": "1184", "city_name": "Safidon", "state_id": "13" },
    { "city_id": "1185", "city_name": "Samalkha", "state_id": "13" },
    { "city_id": "1186", "city_name": "Sankhol", "state_id": "13" },
    { "city_id": "1187", "city_name": "Sasauli", "state_id": "13" },
    { "city_id": "1188", "city_name": "Shahabad", "state_id": "13" },
    { "city_id": "1189", "city_name": "Sirsa", "state_id": "13" },
    { "city_id": "1190", "city_name": "Siwani", "state_id": "13" },
    { "city_id": "1191", "city_name": "Sohna", "state_id": "13" },
    { "city_id": "1192", "city_name": "Sonipat", "state_id": "13" },
    { "city_id": "1193", "city_name": "Sukhrali", "state_id": "13" },
    { "city_id": "1194", "city_name": "Taoru", "state_id": "13" },
    { "city_id": "1195", "city_name": "Taraori", "state_id": "13" },
    { "city_id": "1196", "city_name": "Tauru", "state_id": "13" },
    { "city_id": "1197", "city_name": "Thanesar", "state_id": "13" },
    { "city_id": "1198", "city_name": "Tilpat", "state_id": "13" },
    { "city_id": "1199", "city_name": "Tohana", "state_id": "13" },
    { "city_id": "1200", "city_name": "Tosham", "state_id": "13" },
    { "city_id": "1201", "city_name": "Uchana", "state_id": "13" },
    { "city_id": "1202", "city_name": "Uklana Mandi", "state_id": "13" },
    { "city_id": "1203", "city_name": "Uncha Siwana", "state_id": "13" },
    { "city_id": "1204", "city_name": "Yamunanagar", "state_id": "13" },
    { "city_id": "1205", "city_name": "Arki", "state_id": "14" },
    { "city_id": "1206", "city_name": "Baddi", "state_id": "14" },
    { "city_id": "1207", "city_name": "Bakloh", "state_id": "14" },
    { "city_id": "1208", "city_name": "Banjar", "state_id": "14" },
    { "city_id": "1209", "city_name": "Bhota", "state_id": "14" },
    { "city_id": "1210", "city_name": "Bhuntar", "state_id": "14" },
    { "city_id": "1211", "city_name": "Bilaspur", "state_id": "14" },
    { "city_id": "1212", "city_name": "Chamba", "state_id": "14" },
    { "city_id": "1213", "city_name": "Chaupal", "state_id": "14" },
    { "city_id": "1214", "city_name": "Chuari Khas", "state_id": "14" },
    { "city_id": "1215", "city_name": "Dagshai", "state_id": "14" },
    { "city_id": "1216", "city_name": "Dalhousie", "state_id": "14" },
    {
      "city_id": "1217",
      "city_name": "Dalhousie Cantonment",
      "state_id": "14"
    },
    { "city_id": "1218", "city_name": "Damtal", "state_id": "14" },
    { "city_id": "1219", "city_name": "Daulatpur", "state_id": "14" },
    { "city_id": "1220", "city_name": "Dera Gopipur", "state_id": "14" },
    { "city_id": "1221", "city_name": "Dhalli", "state_id": "14" },
    { "city_id": "1222", "city_name": "Dharamshala", "state_id": "14" },
    { "city_id": "1223", "city_name": "Gagret", "state_id": "14" },
    { "city_id": "1224", "city_name": "Ghamarwin", "state_id": "14" },
    { "city_id": "1225", "city_name": "Hamirpur", "state_id": "14" },
    { "city_id": "1226", "city_name": "Jawala Mukhi", "state_id": "14" },
    { "city_id": "1227", "city_name": "Jogindarnagar", "state_id": "14" },
    { "city_id": "1228", "city_name": "Jubbal", "state_id": "14" },
    { "city_id": "1229", "city_name": "Jutogh", "state_id": "14" },
    { "city_id": "1230", "city_name": "Kala Amb", "state_id": "14" },
    { "city_id": "1231", "city_name": "Kalpa", "state_id": "14" },
    { "city_id": "1232", "city_name": "Kangra", "state_id": "14" },
    { "city_id": "1233", "city_name": "Kasauli", "state_id": "14" },
    { "city_id": "1234", "city_name": "Kot Khai", "state_id": "14" },
    { "city_id": "1235", "city_name": "Kullu", "state_id": "14" },
    { "city_id": "1236", "city_name": "Kulu", "state_id": "14" },
    { "city_id": "1237", "city_name": "Manali", "state_id": "14" },
    { "city_id": "1238", "city_name": "Mandi", "state_id": "14" },
    { "city_id": "1239", "city_name": "Mant Khas", "state_id": "14" },
    { "city_id": "1240", "city_name": "Mehatpur Basdehra", "state_id": "14" },
    { "city_id": "1241", "city_name": "Nadaun", "state_id": "14" },
    { "city_id": "1242", "city_name": "Nagrota", "state_id": "14" },
    { "city_id": "1243", "city_name": "Nahan", "state_id": "14" },
    { "city_id": "1244", "city_name": "Naina Devi", "state_id": "14" },
    { "city_id": "1245", "city_name": "Nalagarh", "state_id": "14" },
    { "city_id": "1246", "city_name": "Narkanda", "state_id": "14" },
    { "city_id": "1247", "city_name": "Nurpur", "state_id": "14" },
    { "city_id": "1248", "city_name": "Palampur", "state_id": "14" },
    { "city_id": "1249", "city_name": "Pandoh", "state_id": "14" },
    { "city_id": "1250", "city_name": "Paonta Sahib", "state_id": "14" },
    { "city_id": "1251", "city_name": "Parwanoo", "state_id": "14" },
    { "city_id": "1252", "city_name": "Parwanu", "state_id": "14" },
    { "city_id": "1253", "city_name": "Rajgarh", "state_id": "14" },
    { "city_id": "1254", "city_name": "Rampur", "state_id": "14" },
    { "city_id": "1255", "city_name": "Rawalsar", "state_id": "14" },
    { "city_id": "1256", "city_name": "Rohru", "state_id": "14" },
    { "city_id": "1257", "city_name": "Sabathu", "state_id": "14" },
    { "city_id": "1258", "city_name": "Santokhgarh", "state_id": "14" },
    { "city_id": "1259", "city_name": "Sarahan", "state_id": "14" },
    { "city_id": "1260", "city_name": "Sarka Ghat", "state_id": "14" },
    { "city_id": "1261", "city_name": "Seoni", "state_id": "14" },
    { "city_id": "1262", "city_name": "Shimla", "state_id": "14" },
    { "city_id": "1263", "city_name": "Sirmaur", "state_id": "14" },
    { "city_id": "1264", "city_name": "Solan", "state_id": "14" },
    { "city_id": "1265", "city_name": "Solon", "state_id": "14" },
    { "city_id": "1266", "city_name": "Sundarnagar", "state_id": "14" },
    { "city_id": "1267", "city_name": "Sundernagar", "state_id": "14" },
    { "city_id": "1268", "city_name": "Talai", "state_id": "14" },
    { "city_id": "1269", "city_name": "Theog", "state_id": "14" },
    { "city_id": "1270", "city_name": "Tira Sujanpur", "state_id": "14" },
    { "city_id": "1271", "city_name": "Una", "state_id": "14" },
    { "city_id": "1272", "city_name": "Yol", "state_id": "14" },
    { "city_id": "1273", "city_name": "Achabal", "state_id": "15" },
    { "city_id": "1274", "city_name": "Akhnur", "state_id": "15" },
    { "city_id": "1275", "city_name": "Anantnag", "state_id": "15" },
    { "city_id": "1276", "city_name": "Arnia", "state_id": "15" },
    { "city_id": "1277", "city_name": "Awantipora", "state_id": "15" },
    { "city_id": "1278", "city_name": "Badami Bagh", "state_id": "15" },
    { "city_id": "1279", "city_name": "Bandipur", "state_id": "15" },
    { "city_id": "1280", "city_name": "Banihal", "state_id": "15" },
    { "city_id": "1281", "city_name": "Baramula", "state_id": "15" },
    { "city_id": "1282", "city_name": "Baramulla", "state_id": "15" },
    { "city_id": "1283", "city_name": "Bari Brahmana", "state_id": "15" },
    { "city_id": "1284", "city_name": "Bashohli", "state_id": "15" },
    { "city_id": "1285", "city_name": "Batote", "state_id": "15" },
    { "city_id": "1286", "city_name": "Bhaderwah", "state_id": "15" },
    { "city_id": "1287", "city_name": "Bijbiara", "state_id": "15" },
    { "city_id": "1288", "city_name": "Billawar", "state_id": "15" },
    { "city_id": "1289", "city_name": "Birwah", "state_id": "15" },
    { "city_id": "1290", "city_name": "Bishna", "state_id": "15" },
    { "city_id": "1291", "city_name": "Budgam", "state_id": "15" },
    { "city_id": "1292", "city_name": "Charari Sharief", "state_id": "15" },
    { "city_id": "1293", "city_name": "Chenani", "state_id": "15" },
    { "city_id": "1294", "city_name": "Doda", "state_id": "15" },
    { "city_id": "1295", "city_name": "Duru-Verinag", "state_id": "15" },
    { "city_id": "1296", "city_name": "Gandarbat", "state_id": "15" },
    { "city_id": "1297", "city_name": "Gho Manhasan", "state_id": "15" },
    { "city_id": "1298", "city_name": "Gorah Salathian", "state_id": "15" },
    { "city_id": "1299", "city_name": "Gulmarg", "state_id": "15" },
    { "city_id": "1300", "city_name": "Hajan", "state_id": "15" },
    { "city_id": "1301", "city_name": "Handwara", "state_id": "15" },
    { "city_id": "1302", "city_name": "Hiranagar", "state_id": "15" },
    { "city_id": "1303", "city_name": "Jammu", "state_id": "15" },
    { "city_id": "1304", "city_name": "Jammu Cantonment", "state_id": "15" },
    { "city_id": "1305", "city_name": "Jammu Tawi", "state_id": "15" },
    { "city_id": "1306", "city_name": "Jourian", "state_id": "15" },
    { "city_id": "1307", "city_name": "Kargil", "state_id": "15" },
    { "city_id": "1308", "city_name": "Kathua", "state_id": "15" },
    { "city_id": "1309", "city_name": "Katra", "state_id": "15" },
    { "city_id": "1310", "city_name": "Khan Sahib", "state_id": "15" },
    { "city_id": "1311", "city_name": "Khour", "state_id": "15" },
    { "city_id": "1312", "city_name": "Khrew", "state_id": "15" },
    { "city_id": "1313", "city_name": "Kishtwar", "state_id": "15" },
    { "city_id": "1314", "city_name": "Kud", "state_id": "15" },
    { "city_id": "1315", "city_name": "Kukernag", "state_id": "15" },
    { "city_id": "1316", "city_name": "Kulgam", "state_id": "15" },
    { "city_id": "1317", "city_name": "Kunzer", "state_id": "15" },
    { "city_id": "1318", "city_name": "Kupwara", "state_id": "15" },
    { "city_id": "1319", "city_name": "Lakhenpur", "state_id": "15" },
    { "city_id": "1320", "city_name": "Leh", "state_id": "15" },
    { "city_id": "1321", "city_name": "Magam", "state_id": "15" },
    { "city_id": "1322", "city_name": "Mattan", "state_id": "15" },
    { "city_id": "1323", "city_name": "Naushehra", "state_id": "15" },
    { "city_id": "1324", "city_name": "Pahalgam", "state_id": "15" },
    { "city_id": "1325", "city_name": "Pampore", "state_id": "15" },
    { "city_id": "1326", "city_name": "Parole", "state_id": "15" },
    { "city_id": "1327", "city_name": "Pattan", "state_id": "15" },
    { "city_id": "1328", "city_name": "Pulwama", "state_id": "15" },
    { "city_id": "1329", "city_name": "Punch", "state_id": "15" },
    { "city_id": "1330", "city_name": "Qazigund", "state_id": "15" },
    { "city_id": "1331", "city_name": "Rajauri", "state_id": "15" },
    { "city_id": "1332", "city_name": "Ramban", "state_id": "15" },
    { "city_id": "1333", "city_name": "Ramgarh", "state_id": "15" },
    { "city_id": "1334", "city_name": "Ramnagar", "state_id": "15" },
    { "city_id": "1335", "city_name": "Ranbirsingh Pora", "state_id": "15" },
    { "city_id": "1336", "city_name": "Reasi", "state_id": "15" },
    { "city_id": "1337", "city_name": "Rehambal", "state_id": "15" },
    { "city_id": "1338", "city_name": "Samba", "state_id": "15" },
    { "city_id": "1339", "city_name": "Shupiyan", "state_id": "15" },
    { "city_id": "1340", "city_name": "Sopur", "state_id": "15" },
    { "city_id": "1341", "city_name": "Srinagar", "state_id": "15" },
    { "city_id": "1342", "city_name": "Sumbal", "state_id": "15" },
    { "city_id": "1343", "city_name": "Sunderbani", "state_id": "15" },
    { "city_id": "1344", "city_name": "Talwara", "state_id": "15" },
    { "city_id": "1345", "city_name": "Thanamandi", "state_id": "15" },
    { "city_id": "1346", "city_name": "Tral", "state_id": "15" },
    { "city_id": "1347", "city_name": "Udhampur", "state_id": "15" },
    { "city_id": "1348", "city_name": "Uri", "state_id": "15" },
    { "city_id": "1349", "city_name": "Vijaypur", "state_id": "15" },
    { "city_id": "1350", "city_name": "Adityapur", "state_id": "16" },
    { "city_id": "1351", "city_name": "Amlabad", "state_id": "16" },
    { "city_id": "1352", "city_name": "Angarpathar", "state_id": "16" },
    { "city_id": "1353", "city_name": "Ara", "state_id": "16" },
    { "city_id": "1354", "city_name": "Babua Kalan", "state_id": "16" },
    { "city_id": "1355", "city_name": "Bagbahra", "state_id": "16" },
    { "city_id": "1356", "city_name": "Baliapur", "state_id": "16" },
    { "city_id": "1357", "city_name": "Baliari", "state_id": "16" },
    { "city_id": "1358", "city_name": "Balkundra", "state_id": "16" },
    { "city_id": "1359", "city_name": "Bandhgora", "state_id": "16" },
    { "city_id": "1360", "city_name": "Barajamda", "state_id": "16" },
    { "city_id": "1361", "city_name": "Barhi", "state_id": "16" },
    { "city_id": "1362", "city_name": "Barka Kana", "state_id": "16" },
    { "city_id": "1363", "city_name": "Barki Saraiya", "state_id": "16" },
    { "city_id": "1364", "city_name": "Barughutu", "state_id": "16" },
    { "city_id": "1365", "city_name": "Barwadih", "state_id": "16" },
    { "city_id": "1366", "city_name": "Basaria", "state_id": "16" },
    { "city_id": "1367", "city_name": "Basukinath", "state_id": "16" },
    { "city_id": "1368", "city_name": "Bermo", "state_id": "16" },
    { "city_id": "1369", "city_name": "Bhagatdih", "state_id": "16" },
    { "city_id": "1370", "city_name": "Bhaurah", "state_id": "16" },
    { "city_id": "1371", "city_name": "Bhojudih", "state_id": "16" },
    { "city_id": "1372", "city_name": "Bhuli", "state_id": "16" },
    { "city_id": "1373", "city_name": "Bokaro", "state_id": "16" },
    { "city_id": "1374", "city_name": "Borio Bazar", "state_id": "16" },
    { "city_id": "1375", "city_name": "Bundu", "state_id": "16" },
    { "city_id": "1376", "city_name": "Chaibasa", "state_id": "16" },
    { "city_id": "1377", "city_name": "Chaitudih", "state_id": "16" },
    { "city_id": "1378", "city_name": "Chakradharpur", "state_id": "16" },
    { "city_id": "1379", "city_name": "Chakulia", "state_id": "16" },
    { "city_id": "1380", "city_name": "Chandaur", "state_id": "16" },
    { "city_id": "1381", "city_name": "Chandil", "state_id": "16" },
    { "city_id": "1382", "city_name": "Chandrapura", "state_id": "16" },
    { "city_id": "1383", "city_name": "Chas", "state_id": "16" },
    { "city_id": "1384", "city_name": "Chatra", "state_id": "16" },
    { "city_id": "1385", "city_name": "Chhatatanr", "state_id": "16" },
    { "city_id": "1386", "city_name": "Chhotaputki", "state_id": "16" },
    { "city_id": "1387", "city_name": "Chiria", "state_id": "16" },
    { "city_id": "1388", "city_name": "Chirkunda", "state_id": "16" },
    { "city_id": "1389", "city_name": "Churi", "state_id": "16" },
    { "city_id": "1390", "city_name": "Daltenganj", "state_id": "16" },
    { "city_id": "1391", "city_name": "Danguwapasi", "state_id": "16" },
    { "city_id": "1392", "city_name": "Dari", "state_id": "16" },
    { "city_id": "1393", "city_name": "Deoghar", "state_id": "16" },
    { "city_id": "1394", "city_name": "Deorikalan", "state_id": "16" },
    { "city_id": "1395", "city_name": "Devghar", "state_id": "16" },
    { "city_id": "1396", "city_name": "Dhanbad", "state_id": "16" },
    { "city_id": "1397", "city_name": "Dhanwar", "state_id": "16" },
    { "city_id": "1398", "city_name": "Dhaunsar", "state_id": "16" },
    { "city_id": "1399", "city_name": "Dugda", "state_id": "16" },
    { "city_id": "1400", "city_name": "Dumarkunda", "state_id": "16" },
    { "city_id": "1401", "city_name": "Dumka", "state_id": "16" },
    { "city_id": "1402", "city_name": "Egarkunr", "state_id": "16" },
    { "city_id": "1403", "city_name": "Gadhra", "state_id": "16" },
    { "city_id": "1404", "city_name": "Garwa", "state_id": "16" },
    { "city_id": "1405", "city_name": "Ghatsila", "state_id": "16" },
    { "city_id": "1406", "city_name": "Ghorabandha", "state_id": "16" },
    { "city_id": "1407", "city_name": "Gidi", "state_id": "16" },
    { "city_id": "1408", "city_name": "Giridih", "state_id": "16" },
    { "city_id": "1409", "city_name": "Gobindpur", "state_id": "16" },
    { "city_id": "1410", "city_name": "Godda", "state_id": "16" },
    { "city_id": "1411", "city_name": "Godhar", "state_id": "16" },
    { "city_id": "1412", "city_name": "Golphalbari", "state_id": "16" },
    { "city_id": "1413", "city_name": "Gomoh", "state_id": "16" },
    { "city_id": "1414", "city_name": "Gua", "state_id": "16" },
    { "city_id": "1415", "city_name": "Gumia", "state_id": "16" },
    { "city_id": "1416", "city_name": "Gumla", "state_id": "16" },
    { "city_id": "1417", "city_name": "Haludbani", "state_id": "16" },
    { "city_id": "1418", "city_name": "Hazaribag", "state_id": "16" },
    { "city_id": "1419", "city_name": "Hesla", "state_id": "16" },
    { "city_id": "1420", "city_name": "Husainabad", "state_id": "16" },
    { "city_id": "1421", "city_name": "Isri", "state_id": "16" },
    { "city_id": "1422", "city_name": "Jadugora", "state_id": "16" },
    { "city_id": "1423", "city_name": "Jagannathpur", "state_id": "16" },
    { "city_id": "1424", "city_name": "Jamadoba", "state_id": "16" },
    { "city_id": "1425", "city_name": "Jamshedpur", "state_id": "16" },
    { "city_id": "1426", "city_name": "Jamtara", "state_id": "16" },
    { "city_id": "1427", "city_name": "Jarangdih", "state_id": "16" },
    { "city_id": "1428", "city_name": "Jaridih", "state_id": "16" },
    { "city_id": "1429", "city_name": "Jasidih", "state_id": "16" },
    { "city_id": "1430", "city_name": "Jena", "state_id": "16" },
    { "city_id": "1431", "city_name": "Jharia", "state_id": "16" },
    { "city_id": "1432", "city_name": "Jharia Khas", "state_id": "16" },
    { "city_id": "1433", "city_name": "Jhinkpani", "state_id": "16" },
    { "city_id": "1434", "city_name": "Jhumri Tilaiya", "state_id": "16" },
    { "city_id": "1435", "city_name": "Jorapokhar", "state_id": "16" },
    { "city_id": "1436", "city_name": "Jugsalai", "state_id": "16" },
    { "city_id": "1437", "city_name": "Kailudih", "state_id": "16" },
    { "city_id": "1438", "city_name": "Kalikapur", "state_id": "16" },
    { "city_id": "1439", "city_name": "Kandra", "state_id": "16" },
    { "city_id": "1440", "city_name": "Kanke", "state_id": "16" },
    { "city_id": "1441", "city_name": "Katras", "state_id": "16" },
    { "city_id": "1442", "city_name": "Kedla", "state_id": "16" },
    { "city_id": "1443", "city_name": "Kenduadih", "state_id": "16" },
    { "city_id": "1444", "city_name": "Kharkhari", "state_id": "16" },
    { "city_id": "1445", "city_name": "Kharsawan", "state_id": "16" },
    { "city_id": "1446", "city_name": "Khelari", "state_id": "16" },
    { "city_id": "1447", "city_name": "Khunti", "state_id": "16" },
    { "city_id": "1448", "city_name": "Kiri Buru", "state_id": "16" },
    { "city_id": "1449", "city_name": "Kiriburu", "state_id": "16" },
    { "city_id": "1450", "city_name": "Kodarma", "state_id": "16" },
    { "city_id": "1451", "city_name": "Kuju", "state_id": "16" },
    { "city_id": "1452", "city_name": "Kurpania", "state_id": "16" },
    { "city_id": "1453", "city_name": "Kustai", "state_id": "16" },
    { "city_id": "1454", "city_name": "Lakarka", "state_id": "16" },
    { "city_id": "1455", "city_name": "Lapanga", "state_id": "16" },
    { "city_id": "1456", "city_name": "Latehar", "state_id": "16" },
    { "city_id": "1457", "city_name": "Lohardaga", "state_id": "16" },
    { "city_id": "1458", "city_name": "Loiya", "state_id": "16" },
    { "city_id": "1459", "city_name": "Loyabad", "state_id": "16" },
    { "city_id": "1460", "city_name": "Madhupur", "state_id": "16" },
    { "city_id": "1461", "city_name": "Mahesh Mundi", "state_id": "16" },
    { "city_id": "1462", "city_name": "Maithon", "state_id": "16" },
    { "city_id": "1463", "city_name": "Malkera", "state_id": "16" },
    { "city_id": "1464", "city_name": "Mango", "state_id": "16" },
    { "city_id": "1465", "city_name": "Manoharpur", "state_id": "16" },
    { "city_id": "1466", "city_name": "Marma", "state_id": "16" },
    {
      "city_id": "1467",
      "city_name": "Meghahatuburu Forest village",
      "state_id": "16"
    },
    { "city_id": "1468", "city_name": "Mera", "state_id": "16" },
    { "city_id": "1469", "city_name": "Meru", "state_id": "16" },
    { "city_id": "1470", "city_name": "Mihijam", "state_id": "16" },
    { "city_id": "1471", "city_name": "Mugma", "state_id": "16" },
    { "city_id": "1472", "city_name": "Muri", "state_id": "16" },
    { "city_id": "1473", "city_name": "Mushabani", "state_id": "16" },
    { "city_id": "1474", "city_name": "Nagri Kalan", "state_id": "16" },
    { "city_id": "1475", "city_name": "Netarhat", "state_id": "16" },
    { "city_id": "1476", "city_name": "Nirsa", "state_id": "16" },
    { "city_id": "1477", "city_name": "Noamundi", "state_id": "16" },
    { "city_id": "1478", "city_name": "Okni", "state_id": "16" },
    { "city_id": "1479", "city_name": "Orla", "state_id": "16" },
    { "city_id": "1480", "city_name": "Pakaur", "state_id": "16" },
    { "city_id": "1481", "city_name": "Palamau", "state_id": "16" },
    { "city_id": "1482", "city_name": "Palawa", "state_id": "16" },
    { "city_id": "1483", "city_name": "Panchet", "state_id": "16" },
    { "city_id": "1484", "city_name": "Panrra", "state_id": "16" },
    { "city_id": "1485", "city_name": "Paratdih", "state_id": "16" },
    { "city_id": "1486", "city_name": "Pathardih", "state_id": "16" },
    { "city_id": "1487", "city_name": "Patratu", "state_id": "16" },
    { "city_id": "1488", "city_name": "Phusro", "state_id": "16" },
    { "city_id": "1489", "city_name": "Pondar Kanali", "state_id": "16" },
    { "city_id": "1490", "city_name": "Rajmahal", "state_id": "16" },
    { "city_id": "1491", "city_name": "Ramgarh", "state_id": "16" },
    { "city_id": "1492", "city_name": "Ranchi", "state_id": "16" },
    { "city_id": "1493", "city_name": "Ray", "state_id": "16" },
    { "city_id": "1494", "city_name": "Rehla", "state_id": "16" },
    { "city_id": "1495", "city_name": "Religara", "state_id": "16" },
    { "city_id": "1496", "city_name": "Rohraband", "state_id": "16" },
    { "city_id": "1497", "city_name": "Sahibganj", "state_id": "16" },
    { "city_id": "1498", "city_name": "Sahnidih", "state_id": "16" },
    { "city_id": "1499", "city_name": "Saraidhela", "state_id": "16" },
    { "city_id": "1500", "city_name": "Saraikela", "state_id": "16" },
    { "city_id": "1501", "city_name": "Sarjamda", "state_id": "16" },
    { "city_id": "1502", "city_name": "Saunda", "state_id": "16" },
    { "city_id": "1503", "city_name": "Sewai", "state_id": "16" },
    { "city_id": "1504", "city_name": "Sijhua", "state_id": "16" },
    { "city_id": "1505", "city_name": "Sijua", "state_id": "16" },
    { "city_id": "1506", "city_name": "Simdega", "state_id": "16" },
    { "city_id": "1507", "city_name": "Sindari", "state_id": "16" },
    { "city_id": "1508", "city_name": "Sinduria", "state_id": "16" },
    { "city_id": "1509", "city_name": "Sini", "state_id": "16" },
    { "city_id": "1510", "city_name": "Sirka", "state_id": "16" },
    { "city_id": "1511", "city_name": "Siuliban", "state_id": "16" },
    { "city_id": "1512", "city_name": "Surubera", "state_id": "16" },
    { "city_id": "1513", "city_name": "Tati", "state_id": "16" },
    { "city_id": "1514", "city_name": "Tenudam", "state_id": "16" },
    { "city_id": "1515", "city_name": "Tisra", "state_id": "16" },
    { "city_id": "1516", "city_name": "Topa", "state_id": "16" },
    { "city_id": "1517", "city_name": "Topchanchi", "state_id": "16" },
    { "city_id": "1518", "city_name": "Adityanagar", "state_id": "17" },
    { "city_id": "1519", "city_name": "Adityapatna", "state_id": "17" },
    { "city_id": "1520", "city_name": "Afzalpur", "state_id": "17" },
    { "city_id": "1521", "city_name": "Ajjampur", "state_id": "17" },
    { "city_id": "1522", "city_name": "Aland", "state_id": "17" },
    { "city_id": "1523", "city_name": "Almatti Sitimani", "state_id": "17" },
    { "city_id": "1524", "city_name": "Alnavar", "state_id": "17" },
    { "city_id": "1525", "city_name": "Alur", "state_id": "17" },
    { "city_id": "1526", "city_name": "Ambikanagara", "state_id": "17" },
    { "city_id": "1527", "city_name": "Anekal", "state_id": "17" },
    { "city_id": "1528", "city_name": "Ankola", "state_id": "17" },
    { "city_id": "1529", "city_name": "Annigeri", "state_id": "17" },
    { "city_id": "1530", "city_name": "Arkalgud", "state_id": "17" },
    { "city_id": "1531", "city_name": "Arsikere", "state_id": "17" },
    { "city_id": "1532", "city_name": "Athni", "state_id": "17" },
    { "city_id": "1533", "city_name": "Aurad", "state_id": "17" },
    { "city_id": "1534", "city_name": "Badagavettu", "state_id": "17" },
    { "city_id": "1535", "city_name": "Badami", "state_id": "17" },
    { "city_id": "1536", "city_name": "Bagalkot", "state_id": "17" },
    { "city_id": "1537", "city_name": "Bagepalli", "state_id": "17" },
    { "city_id": "1538", "city_name": "Bailhongal", "state_id": "17" },
    { "city_id": "1539", "city_name": "Baindur", "state_id": "17" },
    { "city_id": "1540", "city_name": "Bajala", "state_id": "17" },
    { "city_id": "1541", "city_name": "Bajpe", "state_id": "17" },
    { "city_id": "1542", "city_name": "Banavar", "state_id": "17" },
    { "city_id": "1543", "city_name": "Bangarapet", "state_id": "17" },
    { "city_id": "1544", "city_name": "Bankapura", "state_id": "17" },
    { "city_id": "1545", "city_name": "Bannur", "state_id": "17" },
    { "city_id": "1546", "city_name": "Bantwal", "state_id": "17" },
    { "city_id": "1547", "city_name": "Basavakalyan", "state_id": "17" },
    { "city_id": "1548", "city_name": "Basavana Bagevadi", "state_id": "17" },
    { "city_id": "1549", "city_name": "Belagula", "state_id": "17" },
    { "city_id": "1550", "city_name": "Belakavadiq", "state_id": "17" },
    { "city_id": "1551", "city_name": "Belgaum", "state_id": "17" },
    {
      "city_id": "1552",
      "city_name": "Belgaum Cantonment",
      "state_id": "17"
    },
    { "city_id": "1553", "city_name": "Bellary", "state_id": "17" },
    { "city_id": "1554", "city_name": "Belluru", "state_id": "17" },
    { "city_id": "1555", "city_name": "Beltangadi", "state_id": "17" },
    { "city_id": "1556", "city_name": "Belur", "state_id": "17" },
    { "city_id": "1557", "city_name": "Belvata", "state_id": "17" },
    { "city_id": "1558", "city_name": "Bengaluru", "state_id": "17" },
    { "city_id": "1559", "city_name": "Bhadravati", "state_id": "17" },
    { "city_id": "1560", "city_name": "Bhalki", "state_id": "17" },
    { "city_id": "1561", "city_name": "Bhatkal", "state_id": "17" },
    { "city_id": "1562", "city_name": "Bhimarayanagudi", "state_id": "17" },
    { "city_id": "1563", "city_name": "Bhogadi", "state_id": "17" },
    { "city_id": "1564", "city_name": "Bidar", "state_id": "17" },
    { "city_id": "1565", "city_name": "Bijapur", "state_id": "17" },
    { "city_id": "1566", "city_name": "Bilgi", "state_id": "17" },
    { "city_id": "1567", "city_name": "Birur", "state_id": "17" },
    { "city_id": "1568", "city_name": "Bommanahalli", "state_id": "17" },
    { "city_id": "1569", "city_name": "Bommasandra", "state_id": "17" },
    { "city_id": "1570", "city_name": "Byadgi", "state_id": "17" },
    { "city_id": "1571", "city_name": "Byatarayanapura", "state_id": "17" },
    {
      "city_id": "1572",
      "city_name": "Chakranagar Colony",
      "state_id": "17"
    },
    { "city_id": "1573", "city_name": "Challakere", "state_id": "17" },
    { "city_id": "1574", "city_name": "Chamrajnagar", "state_id": "17" },
    { "city_id": "1575", "city_name": "Chamundi Betta", "state_id": "17" },
    { "city_id": "1576", "city_name": "Channagiri", "state_id": "17" },
    { "city_id": "1577", "city_name": "Channapatna", "state_id": "17" },
    { "city_id": "1578", "city_name": "Channarayapatna", "state_id": "17" },
    { "city_id": "1579", "city_name": "Chickballapur", "state_id": "17" },
    { "city_id": "1580", "city_name": "Chik Ballapur", "state_id": "17" },
    { "city_id": "1581", "city_name": "Chikkaballapur", "state_id": "17" },
    { "city_id": "1582", "city_name": "Chikmagalur", "state_id": "17" },
    { "city_id": "1583", "city_name": "Chiknayakanhalli", "state_id": "17" },
    { "city_id": "1584", "city_name": "Chikodi", "state_id": "17" },
    { "city_id": "1585", "city_name": "Chincholi", "state_id": "17" },
    { "city_id": "1586", "city_name": "Chintamani", "state_id": "17" },
    { "city_id": "1587", "city_name": "Chitaguppa", "state_id": "17" },
    { "city_id": "1588", "city_name": "Chitapur", "state_id": "17" },
    { "city_id": "1589", "city_name": "Chitradurga", "state_id": "17" },
    { "city_id": "1590", "city_name": "Coorg", "state_id": "17" },
    { "city_id": "1591", "city_name": "Dandeli", "state_id": "17" },
    { "city_id": "1592", "city_name": "Dargajogihalli", "state_id": "17" },
    { "city_id": "1593", "city_name": "Dasarahalli", "state_id": "17" },
    { "city_id": "1594", "city_name": "Davangere", "state_id": "17" },
    { "city_id": "1595", "city_name": "Devadurga", "state_id": "17" },
    { "city_id": "1596", "city_name": "Devagiri", "state_id": "17" },
    { "city_id": "1597", "city_name": "Devanhalli", "state_id": "17" },
    { "city_id": "1598", "city_name": "Dharwar", "state_id": "17" },
    { "city_id": "1599", "city_name": "Dhupdal", "state_id": "17" },
    { "city_id": "1600", "city_name": "Dod Ballapur", "state_id": "17" },
    { "city_id": "1601", "city_name": "Donimalai", "state_id": "17" },
    { "city_id": "1602", "city_name": "Gadag", "state_id": "17" },
    { "city_id": "1603", "city_name": "Gajendragarh", "state_id": "17" },
    { "city_id": "1604", "city_name": "Ganeshgudi", "state_id": "17" },
    { "city_id": "1605", "city_name": "Gangawati", "state_id": "17" },
    { "city_id": "1606", "city_name": "Gangoli", "state_id": "17" },
    { "city_id": "1607", "city_name": "Gauribidanur", "state_id": "17" },
    { "city_id": "1608", "city_name": "Gokak", "state_id": "17" },
    { "city_id": "1609", "city_name": "Gokak Falls", "state_id": "17" },
    { "city_id": "1610", "city_name": "Gonikoppal", "state_id": "17" },
    { "city_id": "1611", "city_name": "Gorur", "state_id": "17" },
    { "city_id": "1612", "city_name": "Gottikere", "state_id": "17" },
    { "city_id": "1613", "city_name": "Gubbi", "state_id": "17" },
    { "city_id": "1614", "city_name": "Gudibanda", "state_id": "17" },
    { "city_id": "1615", "city_name": "Gulbarga", "state_id": "17" },
    { "city_id": "1616", "city_name": "Guledgudda", "state_id": "17" },
    { "city_id": "1617", "city_name": "Gundlupet", "state_id": "17" },
    { "city_id": "1618", "city_name": "Gurmatkal", "state_id": "17" },
    { "city_id": "1619", "city_name": "Haliyal", "state_id": "17" },
    { "city_id": "1620", "city_name": "Hangal", "state_id": "17" },
    { "city_id": "1621", "city_name": "Harihar", "state_id": "17" },
    { "city_id": "1622", "city_name": "Harpanahalli", "state_id": "17" },
    { "city_id": "1623", "city_name": "Hassan", "state_id": "17" },
    { "city_id": "1624", "city_name": "Hatti", "state_id": "17" },
    { "city_id": "1625", "city_name": "Hatti Gold Mines", "state_id": "17" },
    { "city_id": "1626", "city_name": "Haveri", "state_id": "17" },
    { "city_id": "1627", "city_name": "Hebbagodi", "state_id": "17" },
    { "city_id": "1628", "city_name": "Hebbalu", "state_id": "17" },
    { "city_id": "1629", "city_name": "Hebri", "state_id": "17" },
    { "city_id": "1630", "city_name": "Heggadadevanakote", "state_id": "17" },
    { "city_id": "1631", "city_name": "Herohalli", "state_id": "17" },
    { "city_id": "1632", "city_name": "Hidkal", "state_id": "17" },
    { "city_id": "1633", "city_name": "Hindalgi", "state_id": "17" },
    { "city_id": "1634", "city_name": "Hirekerur", "state_id": "17" },
    { "city_id": "1635", "city_name": "Hiriyur", "state_id": "17" },
    { "city_id": "1636", "city_name": "Holalkere", "state_id": "17" },
    { "city_id": "1637", "city_name": "Hole Narsipur", "state_id": "17" },
    { "city_id": "1638", "city_name": "Homnabad", "state_id": "17" },
    { "city_id": "1639", "city_name": "Honavar", "state_id": "17" },
    { "city_id": "1640", "city_name": "Honnali", "state_id": "17" },
    { "city_id": "1641", "city_name": "Hosakote", "state_id": "17" },
    { "city_id": "1642", "city_name": "Hosanagara", "state_id": "17" },
    { "city_id": "1643", "city_name": "Hosangadi", "state_id": "17" },
    { "city_id": "1644", "city_name": "Hosdurga", "state_id": "17" },
    { "city_id": "1645", "city_name": "Hoskote", "state_id": "17" },
    { "city_id": "1646", "city_name": "Hospet", "state_id": "17" },
    { "city_id": "1647", "city_name": "Hubli", "state_id": "17" },
    { "city_id": "1648", "city_name": "Hukeri", "state_id": "17" },
    { "city_id": "1649", "city_name": "Hunasagi", "state_id": "17" },
    { "city_id": "1650", "city_name": "Hunasamaranahalli", "state_id": "17" },
    { "city_id": "1651", "city_name": "Hungund", "state_id": "17" },
    { "city_id": "1652", "city_name": "Hunsur", "state_id": "17" },
    { "city_id": "1653", "city_name": "Huvina Hadagalli", "state_id": "17" },
    { "city_id": "1654", "city_name": "Ilkal", "state_id": "17" },
    { "city_id": "1655", "city_name": "Indi", "state_id": "17" },
    { "city_id": "1656", "city_name": "Jagalur", "state_id": "17" },
    { "city_id": "1657", "city_name": "Jamkhandi", "state_id": "17" },
    { "city_id": "1658", "city_name": "Jevargi", "state_id": "17" },
    { "city_id": "1659", "city_name": "Jog Falls", "state_id": "17" },
    { "city_id": "1660", "city_name": "Kabini Colony", "state_id": "17" },
    { "city_id": "1661", "city_name": "Kadur", "state_id": "17" },
    { "city_id": "1662", "city_name": "Kalghatgi", "state_id": "17" },
    { "city_id": "1663", "city_name": "Kamalapuram", "state_id": "17" },
    { "city_id": "1664", "city_name": "Kampli", "state_id": "17" },
    { "city_id": "1665", "city_name": "Kanakapura", "state_id": "17" },
    { "city_id": "1666", "city_name": "Kangrali BK", "state_id": "17" },
    { "city_id": "1667", "city_name": "Kangrali KH", "state_id": "17" },
    { "city_id": "1668", "city_name": "Kannur", "state_id": "17" },
    { "city_id": "1669", "city_name": "Karkala", "state_id": "17" },
    { "city_id": "1670", "city_name": "Karwar", "state_id": "17" },
    { "city_id": "1671", "city_name": "Kemminja", "state_id": "17" },
    { "city_id": "1672", "city_name": "Kengeri", "state_id": "17" },
    { "city_id": "1673", "city_name": "Kerur", "state_id": "17" },
    { "city_id": "1674", "city_name": "Khanapur", "state_id": "17" },
    { "city_id": "1675", "city_name": "Kodigenahalli", "state_id": "17" },
    { "city_id": "1676", "city_name": "Kodiyal", "state_id": "17" },
    { "city_id": "1677", "city_name": "Kodlipet", "state_id": "17" },
    { "city_id": "1678", "city_name": "Kolar", "state_id": "17" },
    { "city_id": "1679", "city_name": "Kollegal", "state_id": "17" },
    { "city_id": "1680", "city_name": "Konanakunte", "state_id": "17" },
    { "city_id": "1681", "city_name": "Konanur", "state_id": "17" },
    { "city_id": "1682", "city_name": "Konnur", "state_id": "17" },
    { "city_id": "1683", "city_name": "Koppa", "state_id": "17" },
    { "city_id": "1684", "city_name": "Koppal", "state_id": "17" },
    { "city_id": "1685", "city_name": "Koratagere", "state_id": "17" },
    { "city_id": "1686", "city_name": "Kotekara", "state_id": "17" },
    { "city_id": "1687", "city_name": "Kothnur", "state_id": "17" },
    { "city_id": "1688", "city_name": "Kotturu", "state_id": "17" },
    { "city_id": "1689", "city_name": "Krishnapura", "state_id": "17" },
    { "city_id": "1690", "city_name": "Krishnarajanagar", "state_id": "17" },
    { "city_id": "1691", "city_name": "Krishnarajapura", "state_id": "17" },
    { "city_id": "1692", "city_name": "Krishnarajasagara", "state_id": "17" },
    { "city_id": "1693", "city_name": "Krishnarajpet", "state_id": "17" },
    { "city_id": "1694", "city_name": "Kudchi", "state_id": "17" },
    { "city_id": "1695", "city_name": "Kudligi", "state_id": "17" },
    { "city_id": "1696", "city_name": "Kudremukh", "state_id": "17" },
    { "city_id": "1697", "city_name": "Kumsi", "state_id": "17" },
    { "city_id": "1698", "city_name": "Kumta", "state_id": "17" },
    { "city_id": "1699", "city_name": "Kundapura", "state_id": "17" },
    { "city_id": "1700", "city_name": "Kundgol", "state_id": "17" },
    { "city_id": "1701", "city_name": "Kunigal", "state_id": "17" },
    { "city_id": "1702", "city_name": "Kurgunta", "state_id": "17" },
    { "city_id": "1703", "city_name": "Kushalnagar", "state_id": "17" },
    { "city_id": "1704", "city_name": "Kushtagi", "state_id": "17" },
    { "city_id": "1705", "city_name": "Kyathanahalli", "state_id": "17" },
    { "city_id": "1706", "city_name": "Lakshmeshwar", "state_id": "17" },
    { "city_id": "1707", "city_name": "Lingsugur", "state_id": "17" },
    { "city_id": "1708", "city_name": "Londa", "state_id": "17" },
    { "city_id": "1709", "city_name": "Maddur", "state_id": "17" },
    { "city_id": "1710", "city_name": "Madhugiri", "state_id": "17" },
    { "city_id": "1711", "city_name": "Madikeri", "state_id": "17" },
    { "city_id": "1712", "city_name": "Magadi", "state_id": "17" },
    { "city_id": "1713", "city_name": "Magod Falls", "state_id": "17" },
    { "city_id": "1714", "city_name": "Mahadeswara Hills", "state_id": "17" },
    { "city_id": "1715", "city_name": "Mahadevapura", "state_id": "17" },
    { "city_id": "1716", "city_name": "Mahalingpur", "state_id": "17" },
    { "city_id": "1717", "city_name": "Maisuru", "state_id": "17" },
    {
      "city_id": "1718",
      "city_name": "Maisuru Cantonment",
      "state_id": "17"
    },
    { "city_id": "1719", "city_name": "Malavalli", "state_id": "17" },
    { "city_id": "1720", "city_name": "Mallar", "state_id": "17" },
    { "city_id": "1721", "city_name": "Malpe", "state_id": "17" },
    { "city_id": "1722", "city_name": "Malur", "state_id": "17" },
    { "city_id": "1723", "city_name": "Manchenahalli", "state_id": "17" },
    { "city_id": "1724", "city_name": "Mandya", "state_id": "17" },
    { "city_id": "1725", "city_name": "Mangalore", "state_id": "17" },
    { "city_id": "1726", "city_name": "Mangaluru", "state_id": "17" },
    { "city_id": "1727", "city_name": "Manipal", "state_id": "17" },
    { "city_id": "1728", "city_name": "Manvi", "state_id": "17" },
    { "city_id": "1729", "city_name": "Maski", "state_id": "17" },
    { "city_id": "1730", "city_name": "Mastikatte Colony", "state_id": "17" },
    { "city_id": "1731", "city_name": "Mayakonda", "state_id": "17" },
    { "city_id": "1732", "city_name": "Melukote", "state_id": "17" },
    { "city_id": "1733", "city_name": "Molakalmuru", "state_id": "17" },
    { "city_id": "1734", "city_name": "Mudalgi", "state_id": "17" },
    { "city_id": "1735", "city_name": "Mudbidri", "state_id": "17" },
    { "city_id": "1736", "city_name": "Muddebihal", "state_id": "17" },
    { "city_id": "1737", "city_name": "Mudgal", "state_id": "17" },
    { "city_id": "1738", "city_name": "Mudhol", "state_id": "17" },
    { "city_id": "1739", "city_name": "Mudigere", "state_id": "17" },
    { "city_id": "1740", "city_name": "Mudushedde", "state_id": "17" },
    { "city_id": "1741", "city_name": "Mulbagal", "state_id": "17" },
    { "city_id": "1742", "city_name": "Mulgund", "state_id": "17" },
    { "city_id": "1743", "city_name": "Mulki", "state_id": "17" },
    { "city_id": "1744", "city_name": "Mulur", "state_id": "17" },
    { "city_id": "1745", "city_name": "Mundargi", "state_id": "17" },
    { "city_id": "1746", "city_name": "Mundgod", "state_id": "17" },
    { "city_id": "1747", "city_name": "Munirabad", "state_id": "17" },
    { "city_id": "1748", "city_name": "Munnur", "state_id": "17" },
    { "city_id": "1749", "city_name": "Murudeshwara", "state_id": "17" },
    { "city_id": "1750", "city_name": "Mysore", "state_id": "17" },
    { "city_id": "1751", "city_name": "Nagamangala", "state_id": "17" },
    { "city_id": "1752", "city_name": "Nanjangud", "state_id": "17" },
    { "city_id": "1753", "city_name": "Naragund", "state_id": "17" },
    { "city_id": "1754", "city_name": "Narasimharajapura", "state_id": "17" },
    { "city_id": "1755", "city_name": "Naravi", "state_id": "17" },
    { "city_id": "1756", "city_name": "Narayanpur", "state_id": "17" },
    { "city_id": "1757", "city_name": "Naregal", "state_id": "17" },
    { "city_id": "1758", "city_name": "Navalgund", "state_id": "17" },
    { "city_id": "1759", "city_name": "Nelmangala", "state_id": "17" },
    { "city_id": "1760", "city_name": "Nipani", "state_id": "17" },
    { "city_id": "1761", "city_name": "Nitte", "state_id": "17" },
    { "city_id": "1762", "city_name": "Nyamati", "state_id": "17" },
    { "city_id": "1763", "city_name": "Padu", "state_id": "17" },
    { "city_id": "1764", "city_name": "Pandavapura", "state_id": "17" },
    { "city_id": "1765", "city_name": "Pattanagere", "state_id": "17" },
    { "city_id": "1766", "city_name": "Pavagada", "state_id": "17" },
    { "city_id": "1767", "city_name": "Piriyapatna", "state_id": "17" },
    { "city_id": "1768", "city_name": "Ponnampet", "state_id": "17" },
    { "city_id": "1769", "city_name": "Puttur", "state_id": "17" },
    { "city_id": "1770", "city_name": "Rabkavi", "state_id": "17" },
    { "city_id": "1771", "city_name": "Raichur", "state_id": "17" },
    { "city_id": "1772", "city_name": "Ramanagaram", "state_id": "17" },
    { "city_id": "1773", "city_name": "Ramdurg", "state_id": "17" },
    { "city_id": "1774", "city_name": "Ranibennur", "state_id": "17" },
    { "city_id": "1775", "city_name": "Raybag", "state_id": "17" },
    { "city_id": "1776", "city_name": "Robertsonpet", "state_id": "17" },
    { "city_id": "1777", "city_name": "Ron", "state_id": "17" },
    { "city_id": "1778", "city_name": "Sadalgi", "state_id": "17" },
    { "city_id": "1779", "city_name": "Sagar", "state_id": "17" },
    { "city_id": "1780", "city_name": "Sakleshpur", "state_id": "17" },
    { "city_id": "1781", "city_name": "Saligram", "state_id": "17" },
    { "city_id": "1782", "city_name": "Sandur", "state_id": "17" },
    { "city_id": "1783", "city_name": "Sanivarsante", "state_id": "17" },
    { "city_id": "1784", "city_name": "Sankeshwar", "state_id": "17" },
    { "city_id": "1785", "city_name": "Sargur", "state_id": "17" },
    { "city_id": "1786", "city_name": "Sathyamangala", "state_id": "17" },
    {
      "city_id": "1787",
      "city_name": "Saundatti Yellamma",
      "state_id": "17"
    },
    { "city_id": "1788", "city_name": "Savanur", "state_id": "17" },
    { "city_id": "1789", "city_name": "Sedam", "state_id": "17" },
    { "city_id": "1790", "city_name": "Shahabad", "state_id": "17" },
    { "city_id": "1791", "city_name": "Shahabad A.C.C.", "state_id": "17" },
    { "city_id": "1792", "city_name": "Shahapur", "state_id": "17" },
    { "city_id": "1793", "city_name": "Shahpur", "state_id": "17" },
    { "city_id": "1794", "city_name": "Shaktinagar", "state_id": "17" },
    { "city_id": "1795", "city_name": "Shiggaon", "state_id": "17" },
    { "city_id": "1796", "city_name": "Shikarpur", "state_id": "17" },
    { "city_id": "1797", "city_name": "Shimoga", "state_id": "17" },
    { "city_id": "1798", "city_name": "Shirhatti", "state_id": "17" },
    { "city_id": "1799", "city_name": "Shorapur", "state_id": "17" },
    { "city_id": "1800", "city_name": "Shravanabelagola", "state_id": "17" },
    { "city_id": "1801", "city_name": "Shrirangapattana", "state_id": "17" },
    { "city_id": "1802", "city_name": "Siddapur", "state_id": "17" },
    { "city_id": "1803", "city_name": "Sidlaghatta", "state_id": "17" },
    { "city_id": "1804", "city_name": "Sindgi", "state_id": "17" },
    { "city_id": "1805", "city_name": "Sindhnur", "state_id": "17" },
    { "city_id": "1806", "city_name": "Sira", "state_id": "17" },
    { "city_id": "1807", "city_name": "Sirakoppa", "state_id": "17" },
    { "city_id": "1808", "city_name": "Sirsi", "state_id": "17" },
    { "city_id": "1809", "city_name": "Siruguppa", "state_id": "17" },
    { "city_id": "1810", "city_name": "Someshwar", "state_id": "17" },
    { "city_id": "1811", "city_name": "Somvarpet", "state_id": "17" },
    { "city_id": "1812", "city_name": "Sorab", "state_id": "17" },
    { "city_id": "1813", "city_name": "Sringeri", "state_id": "17" },
    { "city_id": "1814", "city_name": "Srinivaspur", "state_id": "17" },
    { "city_id": "1815", "city_name": "Sulya", "state_id": "17" },
    { "city_id": "1816", "city_name": "Suntikopa", "state_id": "17" },
    { "city_id": "1817", "city_name": "Talikota", "state_id": "17" },
    { "city_id": "1818", "city_name": "Tarikera", "state_id": "17" },
    { "city_id": "1819", "city_name": "Tekkalakota", "state_id": "17" },
    { "city_id": "1820", "city_name": "Terdal", "state_id": "17" },
    { "city_id": "1821", "city_name": "Thokur", "state_id": "17" },
    { "city_id": "1822", "city_name": "Thumbe", "state_id": "17" },
    { "city_id": "1823", "city_name": "Tiptur", "state_id": "17" },
    { "city_id": "1824", "city_name": "Tirthahalli", "state_id": "17" },
    {
      "city_id": "1825",
      "city_name": "Tirumakudal Narsipur",
      "state_id": "17"
    },
    { "city_id": "1826", "city_name": "Tonse", "state_id": "17" },
    { "city_id": "1827", "city_name": "Tumkur", "state_id": "17" },
    { "city_id": "1828", "city_name": "Turuvekere", "state_id": "17" },
    { "city_id": "1829", "city_name": "Udupi", "state_id": "17" },
    { "city_id": "1830", "city_name": "Ullal", "state_id": "17" },
    { "city_id": "1831", "city_name": "Uttarahalli", "state_id": "17" },
    { "city_id": "1832", "city_name": "Venkatapura", "state_id": "17" },
    { "city_id": "1833", "city_name": "Vijayapura", "state_id": "17" },
    { "city_id": "1834", "city_name": "Virarajendrapet", "state_id": "17" },
    { "city_id": "1835", "city_name": "Wadi", "state_id": "17" },
    { "city_id": "1836", "city_name": "Wadi A.C.C.", "state_id": "17" },
    { "city_id": "1837", "city_name": "Yadgir", "state_id": "17" },
    { "city_id": "1838", "city_name": "Yelahanka", "state_id": "17" },
    { "city_id": "1839", "city_name": "Yelandur", "state_id": "17" },
    { "city_id": "1840", "city_name": "Yelbarga", "state_id": "17" },
    { "city_id": "1841", "city_name": "Yellapur", "state_id": "17" },
    { "city_id": "1842", "city_name": "Yenagudde", "state_id": "17" },
    { "city_id": "1843", "city_name": "Adimaly", "state_id": "19" },
    { "city_id": "1844", "city_name": "Adoor", "state_id": "19" },
    { "city_id": "1845", "city_name": "Adur", "state_id": "19" },
    { "city_id": "1846", "city_name": "Akathiyur", "state_id": "19" },
    { "city_id": "1847", "city_name": "Alangad", "state_id": "19" },
    { "city_id": "1848", "city_name": "Alappuzha", "state_id": "19" },
    { "city_id": "1849", "city_name": "Aluva", "state_id": "19" },
    { "city_id": "1850", "city_name": "Ancharakandy", "state_id": "19" },
    { "city_id": "1851", "city_name": "Angamaly", "state_id": "19" },
    { "city_id": "1852", "city_name": "Aroor", "state_id": "19" },
    { "city_id": "1853", "city_name": "Arukutti", "state_id": "19" },
    { "city_id": "1854", "city_name": "Attingal", "state_id": "19" },
    { "city_id": "1855", "city_name": "Avinissery", "state_id": "19" },
    { "city_id": "1856", "city_name": "Azhikode North", "state_id": "19" },
    { "city_id": "1857", "city_name": "Azhikode South", "state_id": "19" },
    { "city_id": "1858", "city_name": "Azhiyur", "state_id": "19" },
    { "city_id": "1859", "city_name": "Balussery", "state_id": "19" },
    { "city_id": "1860", "city_name": "Bangramanjeshwar", "state_id": "19" },
    { "city_id": "1861", "city_name": "Beypur", "state_id": "19" },
    { "city_id": "1862", "city_name": "Brahmakulam", "state_id": "19" },
    { "city_id": "1863", "city_name": "Chala", "state_id": "19" },
    { "city_id": "1864", "city_name": "Chalakudi", "state_id": "19" },
    { "city_id": "1865", "city_name": "Changanacheri", "state_id": "19" },
    { "city_id": "1866", "city_name": "Chauwara", "state_id": "19" },
    { "city_id": "1867", "city_name": "Chavakkad", "state_id": "19" },
    { "city_id": "1868", "city_name": "Chelakkara", "state_id": "19" },
    { "city_id": "1869", "city_name": "Chelora", "state_id": "19" },
    { "city_id": "1870", "city_name": "Chendamangalam", "state_id": "19" },
    { "city_id": "1871", "city_name": "Chengamanad", "state_id": "19" },
    { "city_id": "1872", "city_name": "Chengannur", "state_id": "19" },
    { "city_id": "1873", "city_name": "Cheranallur", "state_id": "19" },
    { "city_id": "1874", "city_name": "Cheriyakadavu", "state_id": "19" },
    { "city_id": "1875", "city_name": "Cherthala", "state_id": "19" },
    { "city_id": "1876", "city_name": "Cherukunnu", "state_id": "19" },
    { "city_id": "1877", "city_name": "Cheruthazham", "state_id": "19" },
    { "city_id": "1878", "city_name": "Cheruvannur", "state_id": "19" },
    { "city_id": "1879", "city_name": "Cheruvattur", "state_id": "19" },
    { "city_id": "1880", "city_name": "Chevvur", "state_id": "19" },
    { "city_id": "1881", "city_name": "Chirakkal", "state_id": "19" },
    { "city_id": "1882", "city_name": "Chittur", "state_id": "19" },
    { "city_id": "1883", "city_name": "Chockli", "state_id": "19" },
    { "city_id": "1884", "city_name": "Churnikkara", "state_id": "19" },
    { "city_id": "1885", "city_name": "Dharmadam", "state_id": "19" },
    { "city_id": "1886", "city_name": "Edappal", "state_id": "19" },
    { "city_id": "1887", "city_name": "Edathala", "state_id": "19" },
    { "city_id": "1888", "city_name": "Elayavur", "state_id": "19" },
    { "city_id": "1889", "city_name": "Elur", "state_id": "19" },
    { "city_id": "1890", "city_name": "Eranholi", "state_id": "19" },
    { "city_id": "1891", "city_name": "Erattupetta", "state_id": "19" },
    { "city_id": "1892", "city_name": "Ernakulam", "state_id": "19" },
    { "city_id": "1893", "city_name": "Eruvatti", "state_id": "19" },
    { "city_id": "1894", "city_name": "Ettumanoor", "state_id": "19" },
    { "city_id": "1895", "city_name": "Feroke", "state_id": "19" },
    { "city_id": "1896", "city_name": "Guruvayur", "state_id": "19" },
    { "city_id": "1897", "city_name": "Haripad", "state_id": "19" },
    { "city_id": "1898", "city_name": "Hosabettu", "state_id": "19" },
    { "city_id": "1899", "city_name": "Idukki", "state_id": "19" },
    { "city_id": "1900", "city_name": "Iringaprom", "state_id": "19" },
    { "city_id": "1901", "city_name": "Irinjalakuda", "state_id": "19" },
    { "city_id": "1902", "city_name": "Iriveri", "state_id": "19" },
    { "city_id": "1903", "city_name": "Kadachira", "state_id": "19" },
    { "city_id": "1904", "city_name": "Kadalundi", "state_id": "19" },
    { "city_id": "1905", "city_name": "Kadamakkudy", "state_id": "19" },
    { "city_id": "1906", "city_name": "Kadirur", "state_id": "19" },
    { "city_id": "1907", "city_name": "Kadungallur", "state_id": "19" },
    { "city_id": "1908", "city_name": "Kakkodi", "state_id": "19" },
    { "city_id": "1909", "city_name": "Kalady", "state_id": "19" },
    { "city_id": "1910", "city_name": "Kalamassery", "state_id": "19" },
    { "city_id": "1911", "city_name": "Kalliasseri", "state_id": "19" },
    { "city_id": "1912", "city_name": "Kalpetta", "state_id": "19" },
    { "city_id": "1913", "city_name": "Kanhangad", "state_id": "19" },
    { "city_id": "1914", "city_name": "Kanhirode", "state_id": "19" },
    { "city_id": "1915", "city_name": "Kanjikkuzhi", "state_id": "19" },
    { "city_id": "1916", "city_name": "Kanjikode", "state_id": "19" },
    { "city_id": "1917", "city_name": "Kanjirappalli", "state_id": "19" },
    { "city_id": "1918", "city_name": "Kannadiparamba", "state_id": "19" },
    { "city_id": "1919", "city_name": "Kannangad", "state_id": "19" },
    { "city_id": "1920", "city_name": "Kannapuram", "state_id": "19" },
    { "city_id": "1921", "city_name": "Kannur", "state_id": "19" },
    { "city_id": "1922", "city_name": "Kannur Cantonment", "state_id": "19" },
    { "city_id": "1923", "city_name": "Karunagappally", "state_id": "19" },
    { "city_id": "1924", "city_name": "Karuvamyhuruthy", "state_id": "19" },
    { "city_id": "1925", "city_name": "Kasaragod", "state_id": "19" },
    { "city_id": "1926", "city_name": "Kasargod", "state_id": "19" },
    { "city_id": "1927", "city_name": "Kattappana", "state_id": "19" },
    { "city_id": "1928", "city_name": "Kayamkulam", "state_id": "19" },
    { "city_id": "1929", "city_name": "Kedamangalam", "state_id": "19" },
    { "city_id": "1930", "city_name": "Kochi", "state_id": "19" },
    { "city_id": "1931", "city_name": "Kodamthuruthu", "state_id": "19" },
    { "city_id": "1932", "city_name": "Kodungallur", "state_id": "19" },
    { "city_id": "1933", "city_name": "Koduvally", "state_id": "19" },
    { "city_id": "1934", "city_name": "Koduvayur", "state_id": "19" },
    { "city_id": "1935", "city_name": "Kokkothamangalam", "state_id": "19" },
    { "city_id": "1936", "city_name": "Kolazhy", "state_id": "19" },
    { "city_id": "1937", "city_name": "Kollam", "state_id": "19" },
    { "city_id": "1938", "city_name": "Komalapuram", "state_id": "19" },
    { "city_id": "1939", "city_name": "Koothattukulam", "state_id": "19" },
    { "city_id": "1940", "city_name": "Koratty", "state_id": "19" },
    { "city_id": "1941", "city_name": "Kothamangalam", "state_id": "19" },
    { "city_id": "1942", "city_name": "Kottarakkara", "state_id": "19" },
    { "city_id": "1943", "city_name": "Kottayam", "state_id": "19" },
    { "city_id": "1944", "city_name": "Kottayam Malabar", "state_id": "19" },
    { "city_id": "1945", "city_name": "Kottuvally", "state_id": "19" },
    { "city_id": "1946", "city_name": "Koyilandi", "state_id": "19" },
    { "city_id": "1947", "city_name": "Kozhikode", "state_id": "19" },
    { "city_id": "1948", "city_name": "Kudappanakunnu", "state_id": "19" },
    { "city_id": "1949", "city_name": "Kudlu", "state_id": "19" },
    { "city_id": "1950", "city_name": "Kumarakom", "state_id": "19" },
    { "city_id": "1951", "city_name": "Kumily", "state_id": "19" },
    { "city_id": "1952", "city_name": "Kunnamangalam", "state_id": "19" },
    { "city_id": "1953", "city_name": "Kunnamkulam", "state_id": "19" },
    { "city_id": "1954", "city_name": "Kurikkad", "state_id": "19" },
    { "city_id": "1955", "city_name": "Kurkkanchery", "state_id": "19" },
    { "city_id": "1956", "city_name": "Kuthuparamba", "state_id": "19" },
    { "city_id": "1957", "city_name": "Kuttakulam", "state_id": "19" },
    { "city_id": "1958", "city_name": "Kuttikkattur", "state_id": "19" },
    { "city_id": "1959", "city_name": "Kuttur", "state_id": "19" },
    { "city_id": "1960", "city_name": "Malappuram", "state_id": "19" },
    { "city_id": "1961", "city_name": "Mallappally", "state_id": "19" },
    { "city_id": "1962", "city_name": "Manjeri", "state_id": "19" },
    { "city_id": "1963", "city_name": "Manjeshwar", "state_id": "19" },
    { "city_id": "1964", "city_name": "Mannancherry", "state_id": "19" },
    { "city_id": "1965", "city_name": "Mannar", "state_id": "19" },
    { "city_id": "1966", "city_name": "Mannarakkat", "state_id": "19" },
    { "city_id": "1967", "city_name": "Maradu", "state_id": "19" },
    { "city_id": "1968", "city_name": "Marathakkara", "state_id": "19" },
    { "city_id": "1969", "city_name": "Marutharod", "state_id": "19" },
    { "city_id": "1970", "city_name": "Mattannur", "state_id": "19" },
    { "city_id": "1971", "city_name": "Mavelikara", "state_id": "19" },
    { "city_id": "1972", "city_name": "Mavilayi", "state_id": "19" },
    { "city_id": "1973", "city_name": "Mavur", "state_id": "19" },
    { "city_id": "1974", "city_name": "Methala", "state_id": "19" },
    { "city_id": "1975", "city_name": "Muhamma", "state_id": "19" },
    { "city_id": "1976", "city_name": "Mulavukad", "state_id": "19" },
    { "city_id": "1977", "city_name": "Mundakayam", "state_id": "19" },
    { "city_id": "1978", "city_name": "Munderi", "state_id": "19" },
    { "city_id": "1979", "city_name": "Munnar", "state_id": "19" },
    { "city_id": "1980", "city_name": "Muthakunnam", "state_id": "19" },
    { "city_id": "1981", "city_name": "Muvattupuzha", "state_id": "19" },
    { "city_id": "1982", "city_name": "Muzhappilangad", "state_id": "19" },
    { "city_id": "1983", "city_name": "Nadapuram", "state_id": "19" },
    { "city_id": "1984", "city_name": "Nadathara", "state_id": "19" },
    { "city_id": "1985", "city_name": "Narath", "state_id": "19" },
    { "city_id": "1986", "city_name": "Nattakam", "state_id": "19" },
    { "city_id": "1987", "city_name": "Nedumangad", "state_id": "19" },
    { "city_id": "1988", "city_name": "Nenmenikkara", "state_id": "19" },
    { "city_id": "1989", "city_name": "New Mahe", "state_id": "19" },
    { "city_id": "1990", "city_name": "Neyyattinkara", "state_id": "19" },
    { "city_id": "1991", "city_name": "Nileshwar", "state_id": "19" },
    { "city_id": "1992", "city_name": "Olavanna", "state_id": "19" },
    { "city_id": "1993", "city_name": "Ottapalam", "state_id": "19" },
    { "city_id": "1994", "city_name": "Ottappalam", "state_id": "19" },
    { "city_id": "1995", "city_name": "Paduvilayi", "state_id": "19" },
    { "city_id": "1996", "city_name": "Palai", "state_id": "19" },
    { "city_id": "1997", "city_name": "Palakkad", "state_id": "19" },
    { "city_id": "1998", "city_name": "Palayad", "state_id": "19" },
    { "city_id": "1999", "city_name": "Palissery", "state_id": "19" },
    { "city_id": "2000", "city_name": "Pallikkunnu", "state_id": "19" },
    { "city_id": "2001", "city_name": "Paluvai", "state_id": "19" },
    { "city_id": "2002", "city_name": "Panniyannur", "state_id": "19" },
    { "city_id": "2003", "city_name": "Pantalam", "state_id": "19" },
    { "city_id": "2004", "city_name": "Panthiramkavu", "state_id": "19" },
    { "city_id": "2005", "city_name": "Panur", "state_id": "19" },
    { "city_id": "2006", "city_name": "Pappinisseri", "state_id": "19" },
    { "city_id": "2007", "city_name": "Parassala", "state_id": "19" },
    { "city_id": "2008", "city_name": "Paravur", "state_id": "19" },
    { "city_id": "2009", "city_name": "Pathanamthitta", "state_id": "19" },
    { "city_id": "2010", "city_name": "Pathanapuram", "state_id": "19" },
    { "city_id": "2011", "city_name": "Pathiriyad", "state_id": "19" },
    { "city_id": "2012", "city_name": "Pattambi", "state_id": "19" },
    { "city_id": "2013", "city_name": "Pattiom", "state_id": "19" },
    { "city_id": "2014", "city_name": "Pavaratty", "state_id": "19" },
    { "city_id": "2015", "city_name": "Payyannur", "state_id": "19" },
    { "city_id": "2016", "city_name": "Peermade", "state_id": "19" },
    { "city_id": "2017", "city_name": "Perakam", "state_id": "19" },
    { "city_id": "2018", "city_name": "Peralasseri", "state_id": "19" },
    { "city_id": "2019", "city_name": "Peringathur", "state_id": "19" },
    { "city_id": "2020", "city_name": "Perinthalmanna", "state_id": "19" },
    { "city_id": "2021", "city_name": "Perole", "state_id": "19" },
    { "city_id": "2022", "city_name": "Perumanna", "state_id": "19" },
    { "city_id": "2023", "city_name": "Perumbaikadu", "state_id": "19" },
    { "city_id": "2024", "city_name": "Perumbavoor", "state_id": "19" },
    { "city_id": "2025", "city_name": "Pinarayi", "state_id": "19" },
    { "city_id": "2026", "city_name": "Piravam", "state_id": "19" },
    { "city_id": "2027", "city_name": "Ponnani", "state_id": "19" },
    { "city_id": "2028", "city_name": "Pottore", "state_id": "19" },
    { "city_id": "2029", "city_name": "Pudukad", "state_id": "19" },
    { "city_id": "2030", "city_name": "Punalur", "state_id": "19" },
    { "city_id": "2031", "city_name": "Puranattukara", "state_id": "19" },
    { "city_id": "2032", "city_name": "Puthunagaram", "state_id": "19" },
    { "city_id": "2033", "city_name": "Puthuppariyaram", "state_id": "19" },
    { "city_id": "2034", "city_name": "Puzhathi", "state_id": "19" },
    { "city_id": "2035", "city_name": "Ramanattukara", "state_id": "19" },
    { "city_id": "2036", "city_name": "Shoranur", "state_id": "19" },
    { "city_id": "2037", "city_name": "Sultans Battery", "state_id": "19" },
    { "city_id": "2038", "city_name": "Sulthan Bathery", "state_id": "19" },
    { "city_id": "2039", "city_name": "Talipparamba", "state_id": "19" },
    { "city_id": "2040", "city_name": "Thaikkad", "state_id": "19" },
    { "city_id": "2041", "city_name": "Thalassery", "state_id": "19" },
    { "city_id": "2042", "city_name": "Thannirmukkam", "state_id": "19" },
    { "city_id": "2043", "city_name": "Theyyalingal", "state_id": "19" },
    { "city_id": "2044", "city_name": "Thiruvalla", "state_id": "19" },
    {
      "city_id": "2045",
      "city_name": "Thiruvananthapuram",
      "state_id": "19"
    },
    { "city_id": "2046", "city_name": "Thiruvankulam", "state_id": "19" },
    { "city_id": "2047", "city_name": "Thodupuzha", "state_id": "19" },
    { "city_id": "2048", "city_name": "Thottada", "state_id": "19" },
    { "city_id": "2049", "city_name": "Thrippunithura", "state_id": "19" },
    { "city_id": "2050", "city_name": "Thrissur", "state_id": "19" },
    { "city_id": "2051", "city_name": "Tirur", "state_id": "19" },
    { "city_id": "2052", "city_name": "Udma", "state_id": "19" },
    { "city_id": "2053", "city_name": "Vadakara", "state_id": "19" },
    { "city_id": "2054", "city_name": "Vaikam", "state_id": "19" },
    { "city_id": "2055", "city_name": "Valapattam", "state_id": "19" },
    { "city_id": "2056", "city_name": "Vallachira", "state_id": "19" },
    { "city_id": "2057", "city_name": "Varam", "state_id": "19" },
    { "city_id": "2058", "city_name": "Varappuzha", "state_id": "19" },
    { "city_id": "2059", "city_name": "Varkala", "state_id": "19" },
    { "city_id": "2060", "city_name": "Vayalar", "state_id": "19" },
    { "city_id": "2061", "city_name": "Vazhakkala", "state_id": "19" },
    { "city_id": "2062", "city_name": "Venmanad", "state_id": "19" },
    { "city_id": "2063", "city_name": "Villiappally", "state_id": "19" },
    { "city_id": "2064", "city_name": "Wayanad", "state_id": "19" },
    { "city_id": "2065", "city_name": "Agethi", "state_id": "20" },
    { "city_id": "2066", "city_name": "Amini", "state_id": "20" },
    { "city_id": "2067", "city_name": "Androth Island", "state_id": "20" },
    { "city_id": "2068", "city_name": "Kavaratti", "state_id": "20" },
    { "city_id": "2069", "city_name": "Minicoy", "state_id": "20" },
    { "city_id": "2070", "city_name": "Agar", "state_id": "21" },
    { "city_id": "2071", "city_name": "Ajaigarh", "state_id": "21" },
    { "city_id": "2072", "city_name": "Akoda", "state_id": "21" },
    { "city_id": "2073", "city_name": "Akodia", "state_id": "21" },
    { "city_id": "2074", "city_name": "Alampur", "state_id": "21" },
    { "city_id": "2075", "city_name": "Alirajpur", "state_id": "21" },
    { "city_id": "2076", "city_name": "Alot", "state_id": "21" },
    { "city_id": "2077", "city_name": "Amanganj", "state_id": "21" },
    { "city_id": "2078", "city_name": "Amarkantak", "state_id": "21" },
    { "city_id": "2079", "city_name": "Amarpatan", "state_id": "21" },
    { "city_id": "2080", "city_name": "Amarwara", "state_id": "21" },
    { "city_id": "2081", "city_name": "Ambada", "state_id": "21" },
    { "city_id": "2082", "city_name": "Ambah", "state_id": "21" },
    { "city_id": "2083", "city_name": "Amla", "state_id": "21" },
    { "city_id": "2084", "city_name": "Amlai", "state_id": "21" },
    { "city_id": "2085", "city_name": "Anjad", "state_id": "21" },
    { "city_id": "2086", "city_name": "Antri", "state_id": "21" },
    { "city_id": "2087", "city_name": "Anuppur", "state_id": "21" },
    { "city_id": "2088", "city_name": "Aron", "state_id": "21" },
    { "city_id": "2089", "city_name": "Ashoknagar", "state_id": "21" },
    { "city_id": "2090", "city_name": "Ashta", "state_id": "21" },
    { "city_id": "2091", "city_name": "Babai", "state_id": "21" },
    { "city_id": "2092", "city_name": "Bada Malhera", "state_id": "21" },
    { "city_id": "2093", "city_name": "Badagaon", "state_id": "21" },
    { "city_id": "2094", "city_name": "Badagoan", "state_id": "21" },
    { "city_id": "2095", "city_name": "Badarwas", "state_id": "21" },
    { "city_id": "2096", "city_name": "Badawada", "state_id": "21" },
    { "city_id": "2097", "city_name": "Badi", "state_id": "21" },
    { "city_id": "2098", "city_name": "Badkuhi", "state_id": "21" },
    { "city_id": "2099", "city_name": "Badnagar", "state_id": "21" },
    { "city_id": "2100", "city_name": "Badnawar", "state_id": "21" },
    { "city_id": "2101", "city_name": "Badod", "state_id": "21" },
    { "city_id": "2102", "city_name": "Badoda", "state_id": "21" },
    { "city_id": "2103", "city_name": "Badra", "state_id": "21" },
    { "city_id": "2104", "city_name": "Bagh", "state_id": "21" },
    { "city_id": "2105", "city_name": "Bagli", "state_id": "21" },
    { "city_id": "2106", "city_name": "Baihar", "state_id": "21" },
    { "city_id": "2107", "city_name": "Baikunthpur", "state_id": "21" },
    { "city_id": "2108", "city_name": "Bakswaha", "state_id": "21" },
    { "city_id": "2109", "city_name": "Balaghat", "state_id": "21" },
    { "city_id": "2110", "city_name": "Baldeogarh", "state_id": "21" },
    { "city_id": "2111", "city_name": "Bamaniya", "state_id": "21" },
    { "city_id": "2112", "city_name": "Bamhani", "state_id": "21" },
    { "city_id": "2113", "city_name": "Bamor", "state_id": "21" },
    { "city_id": "2114", "city_name": "Bamora", "state_id": "21" },
    { "city_id": "2115", "city_name": "Banda", "state_id": "21" },
    { "city_id": "2116", "city_name": "Bangawan", "state_id": "21" },
    { "city_id": "2117", "city_name": "Bansatar Kheda", "state_id": "21" },
    { "city_id": "2118", "city_name": "Baraily", "state_id": "21" },
    { "city_id": "2119", "city_name": "Barela", "state_id": "21" },
    { "city_id": "2120", "city_name": "Barghat", "state_id": "21" },
    { "city_id": "2121", "city_name": "Bargi", "state_id": "21" },
    { "city_id": "2122", "city_name": "Barhi", "state_id": "21" },
    { "city_id": "2123", "city_name": "Barigarh", "state_id": "21" },
    { "city_id": "2124", "city_name": "Barwaha", "state_id": "21" },
    { "city_id": "2125", "city_name": "Barwani", "state_id": "21" },
    { "city_id": "2126", "city_name": "Basoda", "state_id": "21" },
    { "city_id": "2127", "city_name": "Begamganj", "state_id": "21" },
    { "city_id": "2128", "city_name": "Beohari", "state_id": "21" },
    { "city_id": "2129", "city_name": "Berasia", "state_id": "21" },
    { "city_id": "2130", "city_name": "Betma", "state_id": "21" },
    { "city_id": "2131", "city_name": "Betul", "state_id": "21" },
    { "city_id": "2132", "city_name": "Betul Bazar", "state_id": "21" },
    { "city_id": "2133", "city_name": "Bhainsdehi", "state_id": "21" },
    { "city_id": "2134", "city_name": "Bhamodi", "state_id": "21" },
    { "city_id": "2135", "city_name": "Bhander", "state_id": "21" },
    { "city_id": "2136", "city_name": "Bhanpura", "state_id": "21" },
    { "city_id": "2137", "city_name": "Bharveli", "state_id": "21" },
    { "city_id": "2138", "city_name": "Bhaurasa", "state_id": "21" },
    { "city_id": "2139", "city_name": "Bhavra", "state_id": "21" },
    { "city_id": "2140", "city_name": "Bhedaghat", "state_id": "21" },
    { "city_id": "2141", "city_name": "Bhikangaon", "state_id": "21" },
    { "city_id": "2142", "city_name": "Bhilakhedi", "state_id": "21" },
    { "city_id": "2143", "city_name": "Bhind", "state_id": "21" },
    { "city_id": "2144", "city_name": "Bhitarwar", "state_id": "21" },
    { "city_id": "2145", "city_name": "Bhopal", "state_id": "21" },
    { "city_id": "2146", "city_name": "Bhuibandh", "state_id": "21" },
    { "city_id": "2147", "city_name": "Biaora", "state_id": "21" },
    { "city_id": "2148", "city_name": "Bijawar", "state_id": "21" },
    { "city_id": "2149", "city_name": "Bijeypur", "state_id": "21" },
Download .txt
gitextract__wrmwl_2/

├── .editorconfig
├── .github/
│   ├── FUNDING.yml
│   └── workflows/
│       ├── lint.yml
│       └── tsc.yml
├── .gitignore
├── .vite-hooks/
│   └── pre-commit
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── algorithms/
│   └── README.md
├── apps/
│   ├── portal/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── next-env.d.ts
│   │   ├── next.config.mjs
│   │   ├── package.json
│   │   ├── postcss.config.cjs
│   │   ├── prisma/
│   │   │   ├── companies.csv
│   │   │   ├── data/
│   │   │   │   ├── cities.json
│   │   │   │   ├── countries.json
│   │   │   │   └── states.json
│   │   │   ├── migrations/
│   │   │   │   ├── 20220928103800_init/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221002033341_add_todos/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221006024246_add_companies/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221006090216_add_resume_schemas/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007062555_add_resume_profile_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007110225_add_questions_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221007135344_remove_resumes_profile_model/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008090846_add_question_types/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008114522_add_questions_company_loaction_role/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221008165306_update_vote_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221009093357_update_question_encounter_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221009160601_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221010055218_update_question_encounter_to_use_company_id/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221011042156_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221012161857_add_user_to_replies/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221013032033_update_resume_vote_to_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014192315_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014205230_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221014211740_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221019104025_update_offers_remove_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221020101123_add_resume_comment_parent/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221020115540_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021150358_add_vote_count_and_last_seen/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021151424_delete_extra_encounter_fields/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021155717_add_sorting_index/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021231817_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221021233952_change_currency_values_to_float/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023100925_update_last_seen_val_to_be_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023102619_add_list_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221023203239_/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024123252_add_upvotes_to_schema/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024123849_add_upvotes_default_value/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221024154046_remove_specialization_and_make_base_bonus_and_stocks_optional/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221027052436_resumes_add_is_resolved_status/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221029180052_add_ecnounter_sort_support/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030024321_locations/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030121147_use_roles_and_location_table/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221030133638_add_theory_enum/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221031033529_change_analysis_models_to_allow_for_multiple_company_analysis/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221102121331_update_location_for_offers/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221103031927_change_company_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104042559_add_reference_to_analysed_offer_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104084342_add_cascade_delete_to_analysed_offer_in_analysis_unit/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104084451_add_cascade_delete_to_overall_analysis_in_offers_analysis/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221104095551_use_location_database_for_resumes/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221105140124_revert_default_location/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221106002645_country_ranking/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221107014555_company_website/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221108061935_add_comment_deletion/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221109070931_company_city_ranking/
│   │   │   │   │   └── migration.sql
│   │   │   │   ├── 20221117094655_add_offersadmin_table/
│   │   │   │   │   └── migration.sql
│   │   │   │   └── migration_lock.toml
│   │   │   ├── salaries.xlsx
│   │   │   ├── schema.prisma
│   │   │   ├── seed-analysis.ts
│   │   │   ├── seed-companies.ts
│   │   │   ├── seed-questions.ts
│   │   │   ├── seed-salaries.ts
│   │   │   └── seed.ts
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── global/
│   │   │   │   │   ├── AppShell.tsx
│   │   │   │   │   ├── GlobalNavigation.ts
│   │   │   │   │   ├── GoogleAnalytics.tsx
│   │   │   │   │   ├── HomeNavigation.ts
│   │   │   │   │   ├── MobileNavigation.tsx
│   │   │   │   │   └── ProductNavigation.tsx
│   │   │   │   ├── offers/
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── EducationFields.ts
│   │   │   │   │   ├── EducationLevels.ts
│   │   │   │   │   ├── InternshipCycles.ts
│   │   │   │   │   ├── JobTypeTabs.tsx
│   │   │   │   │   ├── OffersNavigation.tsx
│   │   │   │   │   ├── Years.ts
│   │   │   │   │   ├── admin/
│   │   │   │   │   │   ├── OffersHeader.tsx
│   │   │   │   │   │   ├── OffersRow.tsx
│   │   │   │   │   │   ├── OffersTable.tsx
│   │   │   │   │   │   ├── OffersTablePagination.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── constants.ts
│   │   │   │   │   ├── dashboard/
│   │   │   │   │   │   ├── DashboardOfferCard.tsx
│   │   │   │   │   │   └── DashboardProfileCard.tsx
│   │   │   │   │   ├── features/
│   │   │   │   │   │   ├── LeftTextCard.tsx
│   │   │   │   │   │   └── RightTextCard.tsx
│   │   │   │   │   ├── forms/
│   │   │   │   │   │   ├── FormCitiesTypeahead.tsx
│   │   │   │   │   │   ├── FormCompaniesTypeahead.tsx
│   │   │   │   │   │   ├── FormJobTitlesTypeahead.tsx
│   │   │   │   │   │   ├── FormMonthYearPicker.tsx
│   │   │   │   │   │   ├── FormRadioList.tsx
│   │   │   │   │   │   ├── FormSection.tsx
│   │   │   │   │   │   ├── FormSelect.tsx
│   │   │   │   │   │   ├── FormTextArea.tsx
│   │   │   │   │   │   └── FormTextInput.tsx
│   │   │   │   │   ├── offerAnalysis/
│   │   │   │   │   │   ├── OfferAnalysis.tsx
│   │   │   │   │   │   ├── OfferPercentileAnalysisText.tsx
│   │   │   │   │   │   └── OfferProfileCard.tsx
│   │   │   │   │   ├── offersSubmission/
│   │   │   │   │   │   ├── OffersProfileSave.tsx
│   │   │   │   │   │   ├── OffersSubmissionAnalysis.tsx
│   │   │   │   │   │   ├── OffersSubmissionForm.tsx
│   │   │   │   │   │   └── submissionForm/
│   │   │   │   │   │       ├── BackgroundForm.tsx
│   │   │   │   │   │       └── OfferDetailsForm.tsx
│   │   │   │   │   ├── profile/
│   │   │   │   │   │   ├── EducationCard.tsx
│   │   │   │   │   │   ├── OfferCard.tsx
│   │   │   │   │   │   ├── ProfileComments.tsx
│   │   │   │   │   │   ├── ProfileDetails.tsx
│   │   │   │   │   │   ├── ProfileHeader.tsx
│   │   │   │   │   │   ├── ProfilePhotoHolder.tsx
│   │   │   │   │   │   └── comments/
│   │   │   │   │   │       ├── CommentCard.tsx
│   │   │   │   │   │       └── ExpandableCommentCard.tsx
│   │   │   │   │   ├── table/
│   │   │   │   │   │   ├── OffersHeader.tsx
│   │   │   │   │   │   ├── OffersRow.tsx
│   │   │   │   │   │   ├── OffersTable.tsx
│   │   │   │   │   │   ├── OffersTablePagination.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── types.ts
│   │   │   │   │   └── util/
│   │   │   │   │       └── Tooltip.tsx
│   │   │   │   ├── questions/
│   │   │   │   │   ├── AddToListDropdown.tsx
│   │   │   │   │   ├── ContributeQuestionCard.tsx
│   │   │   │   │   ├── ContributeQuestionDialog.tsx
│   │   │   │   │   ├── CreateListDialog.tsx
│   │   │   │   │   ├── DeleteListDialog.tsx
│   │   │   │   │   ├── DiscardDraftDialog.tsx
│   │   │   │   │   ├── FullScreenSpinner.tsx
│   │   │   │   │   ├── LandingComponent.tsx
│   │   │   │   │   ├── PaginationLoadMoreButton.tsx
│   │   │   │   │   ├── QuestionAggregateBadge.tsx
│   │   │   │   │   ├── QuestionContainer.tsx
│   │   │   │   │   ├── QuestionSearchBar.tsx
│   │   │   │   │   ├── QuestionTypeBadge.tsx
│   │   │   │   │   ├── QuestionsNavigation.tsx
│   │   │   │   │   ├── SortOptionsSelect.tsx
│   │   │   │   │   ├── VotingButtons.tsx
│   │   │   │   │   ├── card/
│   │   │   │   │   │   ├── AnswerCard.tsx
│   │   │   │   │   │   ├── FullAnswerCard.tsx
│   │   │   │   │   │   ├── QuestionAnswerCard.tsx
│   │   │   │   │   │   └── question/
│   │   │   │   │   │       ├── BaseQuestionCard.tsx
│   │   │   │   │   │       ├── FullQuestionCard.tsx
│   │   │   │   │   │       ├── QuestionListCard.tsx
│   │   │   │   │   │       ├── QuestionOverviewCard.tsx
│   │   │   │   │   │       └── SimilarQuestionCard.tsx
│   │   │   │   │   ├── comments/
│   │   │   │   │   │   ├── AnswerCommentListItem.tsx
│   │   │   │   │   │   ├── CommentListItem.tsx
│   │   │   │   │   │   └── QuestionCommentListItem.tsx
│   │   │   │   │   ├── filter/
│   │   │   │   │   │   └── FilterSection.tsx
│   │   │   │   │   ├── forms/
│   │   │   │   │   │   ├── ContributeQuestionForm.tsx
│   │   │   │   │   │   └── CreateQuestionEncounterForm.tsx
│   │   │   │   │   ├── layout/
│   │   │   │   │   │   └── BackButtonLayout.tsx
│   │   │   │   │   ├── protected/
│   │   │   │   │   │   ├── ProtectedContextProvider.tsx
│   │   │   │   │   │   └── ProtectedDialog.tsx
│   │   │   │   │   └── typeahead/
│   │   │   │   │       ├── CompanyTypeahead.tsx
│   │   │   │   │       ├── ExpandedTypeahead.tsx
│   │   │   │   │       ├── LocationTypeahead.tsx
│   │   │   │   │       └── RoleTypeahead.tsx
│   │   │   │   ├── resumes/
│   │   │   │   │   ├── ResumePdf.tsx
│   │   │   │   │   ├── ResumesNavigation.tsx
│   │   │   │   │   ├── badgeIcons/
│   │   │   │   │   │   ├── popularResumes/
│   │   │   │   │   │   │   ├── ResumeBadgeCoolIcon.tsx
│   │   │   │   │   │   │   ├── ResumeBadgeRocketIcon.tsx
│   │   │   │   │   │   │   └── ResumeBadgeTreasureIcon.tsx
│   │   │   │   │   │   ├── resume-badge.d.ts
│   │   │   │   │   │   ├── reviewer/
│   │   │   │   │   │   │   ├── ResumeBadgeDetectiveIcon.tsx
│   │   │   │   │   │   │   ├── ResumeBadgeEagleIcon.tsx
│   │   │   │   │   │   │   └── ResumeBadgeSuperheroIcon.tsx
│   │   │   │   │   │   └── topComment/
│   │   │   │   │   │       ├── ResumeBadgeBookIcon.tsx
│   │   │   │   │   │       ├── ResumeBadgeOwlIcon.tsx
│   │   │   │   │   │       └── ResumeBadgeSageIcon.tsx
│   │   │   │   │   ├── badges/
│   │   │   │   │   │   ├── ResumeUserBadge.tsx
│   │   │   │   │   │   ├── ResumeUserBadges.tsx
│   │   │   │   │   │   └── resumeBadgeConstants.ts
│   │   │   │   │   ├── browse/
│   │   │   │   │   │   ├── ResumeFilterPill.tsx
│   │   │   │   │   │   ├── ResumeListItem.tsx
│   │   │   │   │   │   └── ResumeListItems.tsx
│   │   │   │   │   ├── comments/
│   │   │   │   │   │   ├── ResumeCommentListItem.tsx
│   │   │   │   │   │   ├── ResumeCommentsForm.tsx
│   │   │   │   │   │   ├── ResumeCommentsList.tsx
│   │   │   │   │   │   ├── comment/
│   │   │   │   │   │   │   ├── ResumeCommentDeleteForm.tsx
│   │   │   │   │   │   │   ├── ResumeCommentEditForm.tsx
│   │   │   │   │   │   │   ├── ResumeCommentReplyForm.tsx
│   │   │   │   │   │   │   └── ResumeCommentVoteButtons.tsx
│   │   │   │   │   │   └── resumeCommentConstants.ts
│   │   │   │   │   ├── landing/
│   │   │   │   │   │   ├── CallToAction.tsx
│   │   │   │   │   │   ├── Container.tsx
│   │   │   │   │   │   ├── Hero.tsx
│   │   │   │   │   │   ├── Logo.tsx
│   │   │   │   │   │   └── PrimaryFeatures.tsx
│   │   │   │   │   ├── shared/
│   │   │   │   │   │   ├── ResumeExpandableText.tsx
│   │   │   │   │   │   ├── ResumeExperienceTypeahead.tsx
│   │   │   │   │   │   └── ResumeSignInButton.tsx
│   │   │   │   │   └── submit-form/
│   │   │   │   │       └── ResumeSubmissionGuidelines.tsx
│   │   │   │   └── shared/
│   │   │   │       ├── CitiesTypeahead.tsx
│   │   │   │       ├── CompaniesTypeahead.tsx
│   │   │   │       ├── CompanyProfileImage.tsx
│   │   │   │       ├── Container.tsx
│   │   │   │       ├── CountriesTypeahead.tsx
│   │   │   │       ├── JobTitles.ts
│   │   │   │       ├── JobTitlesTypeahead.tsx
│   │   │   │       ├── MonthYearPicker.tsx
│   │   │   │       ├── icons/
│   │   │   │       │   └── GitHubIcon.tsx
│   │   │   │       └── loginPageHref.ts
│   │   │   ├── constants/
│   │   │   │   └── file-storage-keys.ts
│   │   │   ├── env/
│   │   │   │   ├── client.mjs
│   │   │   │   ├── schema.mjs
│   │   │   │   └── server.mjs
│   │   │   ├── mappers/
│   │   │   │   └── offers-mappers.ts
│   │   │   ├── middleware.ts
│   │   │   ├── pages/
│   │   │   │   ├── 404.tsx
│   │   │   │   ├── _app.tsx
│   │   │   │   ├── _document.tsx
│   │   │   │   ├── api/
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── [...nextauth].ts
│   │   │   │   │   ├── file-storage.ts
│   │   │   │   │   ├── restricted.ts
│   │   │   │   │   └── trpc/
│   │   │   │   │       └── [trpc].ts
│   │   │   │   ├── index.tsx
│   │   │   │   ├── login.tsx
│   │   │   │   ├── offers/
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── admin.tsx
│   │   │   │   │   ├── dashboard.tsx
│   │   │   │   │   ├── features.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── profile/
│   │   │   │   │   │   ├── [offerProfileId].tsx
│   │   │   │   │   │   └── edit/
│   │   │   │   │   │       └── [offerProfileId].tsx
│   │   │   │   │   └── submit/
│   │   │   │   │       ├── index.tsx
│   │   │   │   │       └── result/
│   │   │   │   │           └── [offerProfileId].tsx
│   │   │   │   ├── profile.tsx
│   │   │   │   ├── questions/
│   │   │   │   │   ├── [questionId]/
│   │   │   │   │   │   └── [questionSlug]/
│   │   │   │   │   │       ├── answer/
│   │   │   │   │   │       │   └── [answerId]/
│   │   │   │   │   │       │       └── [answerSlug]/
│   │   │   │   │   │       │           └── index.tsx
│   │   │   │   │   │       └── index.tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── browse.tsx
│   │   │   │   │   ├── history.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   ├── lists.tsx
│   │   │   │   │   └── my-questions.tsx
│   │   │   │   ├── resumes/
│   │   │   │   │   ├── [resumeId].tsx
│   │   │   │   │   ├── about.tsx
│   │   │   │   │   ├── features.tsx
│   │   │   │   │   ├── index.tsx
│   │   │   │   │   └── submit.tsx
│   │   │   │   ├── settings.tsx
│   │   │   │   ├── test__.tsx
│   │   │   │   └── todos/
│   │   │   │       ├── index.tsx
│   │   │   │       └── new.tsx
│   │   │   ├── server/
│   │   │   │   ├── common/
│   │   │   │   │   └── get-server-auth-session.ts
│   │   │   │   ├── db/
│   │   │   │   │   └── client.ts
│   │   │   │   └── router/
│   │   │   │       ├── companies-router.ts
│   │   │   │       ├── context.ts
│   │   │   │       ├── index.ts
│   │   │   │       ├── locations-router.ts
│   │   │   │       ├── offers/
│   │   │   │       │   ├── offers-admin-router.ts
│   │   │   │       │   ├── offers-analysis-router.ts
│   │   │   │       │   ├── offers-comments-router.ts
│   │   │   │       │   ├── offers-profile-router.ts
│   │   │   │       │   ├── offers-user-profile-router.ts
│   │   │   │       │   └── offers.ts
│   │   │   │       ├── protected-example-router.ts
│   │   │   │       ├── questions/
│   │   │   │       │   ├── questions-answer-comment-router.ts
│   │   │   │       │   ├── questions-answer-comment-user-router.ts
│   │   │   │       │   ├── questions-answer-router.ts
│   │   │   │       │   ├── questions-answer-user-router.ts
│   │   │   │       │   ├── questions-list-router.ts
│   │   │   │       │   ├── questions-question-comment-router.ts
│   │   │   │       │   ├── questions-question-comment-user-router.ts
│   │   │   │       │   ├── questions-question-encounter-router.ts
│   │   │   │       │   ├── questions-question-encounter-user-router.ts
│   │   │   │       │   ├── questions-question-router.ts
│   │   │   │       │   └── questions-question-user-router.ts
│   │   │   │       ├── resumes/
│   │   │   │       │   ├── resumes-comments-router.ts
│   │   │   │       │   ├── resumes-comments-user-router.ts
│   │   │   │       │   ├── resumes-comments-votes-router.ts
│   │   │   │       │   ├── resumes-comments-votes-user-router.ts
│   │   │   │       │   ├── resumes-resume-router.ts
│   │   │   │       │   ├── resumes-resume-user-router.ts
│   │   │   │       │   └── resumes-star-user-router.ts
│   │   │   │       ├── todos-user-router.ts
│   │   │   │       ├── todos.ts
│   │   │   │       └── user-router.ts
│   │   │   ├── styles/
│   │   │   │   └── globals.css
│   │   │   ├── types/
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── next-auth.d.ts
│   │   │   │   ├── offers.d.ts
│   │   │   │   ├── questions.d.ts
│   │   │   │   ├── resume-comments.d.ts
│   │   │   │   └── resume.d.ts
│   │   │   ├── ui/
│   │   │   │   ├── Alert/
│   │   │   │   │   └── Alert.tsx
│   │   │   │   ├── Badge/
│   │   │   │   │   └── Badge.tsx
│   │   │   │   ├── Banner/
│   │   │   │   │   └── Banner.tsx
│   │   │   │   ├── Button/
│   │   │   │   │   └── Button.tsx
│   │   │   │   ├── CheckboxInput/
│   │   │   │   │   └── CheckboxInput.tsx
│   │   │   │   ├── CheckboxList/
│   │   │   │   │   └── CheckboxList.tsx
│   │   │   │   ├── Collapsible/
│   │   │   │   │   └── Collapsible.tsx
│   │   │   │   ├── Dialog/
│   │   │   │   │   └── Dialog.tsx
│   │   │   │   ├── DropdownMenu/
│   │   │   │   │   ├── DropdownMenu.tsx
│   │   │   │   │   └── DropdownMenuItem.tsx
│   │   │   │   ├── HorizontalDivider/
│   │   │   │   │   └── HorizontalDivider.tsx
│   │   │   │   ├── Pagination/
│   │   │   │   │   └── Pagination.tsx
│   │   │   │   ├── RadioList/
│   │   │   │   │   ├── RadioList.tsx
│   │   │   │   │   ├── RadioListContext.ts
│   │   │   │   │   └── RadioListItem.tsx
│   │   │   │   ├── Select/
│   │   │   │   │   └── Select.tsx
│   │   │   │   ├── SlideOut/
│   │   │   │   │   └── SlideOut.tsx
│   │   │   │   ├── Spinner/
│   │   │   │   │   └── Spinner.tsx
│   │   │   │   ├── Tabs/
│   │   │   │   │   └── Tabs.tsx
│   │   │   │   ├── TextArea/
│   │   │   │   │   └── TextArea.tsx
│   │   │   │   ├── TextInput/
│   │   │   │   │   └── TextInput.tsx
│   │   │   │   ├── Toast/
│   │   │   │   │   ├── Toast.tsx
│   │   │   │   │   └── ToastsProvider.tsx
│   │   │   │   ├── Typeahead/
│   │   │   │   │   └── Typeahead.tsx
│   │   │   │   ├── index.tsx
│   │   │   │   └── styles.css
│   │   │   └── utils/
│   │   │       ├── JobExperienceLevel.ts
│   │   │       ├── offers/
│   │   │       │   ├── analysis/
│   │   │       │   │   ├── analysisGeneration.ts
│   │   │       │   │   └── analysisInclusion.ts
│   │   │       │   ├── currency/
│   │   │       │   │   ├── CurrencyEnum.tsx
│   │   │       │   │   ├── CurrencySelector.tsx
│   │   │       │   │   ├── currencyExchange.ts
│   │   │       │   │   └── index.tsx
│   │   │       │   ├── form.tsx
│   │   │       │   ├── link.tsx
│   │   │       │   ├── randomGenerator.ts
│   │   │       │   ├── randomNameGenerator.ts
│   │   │       │   ├── string.tsx
│   │   │       │   ├── time.tsx
│   │   │       │   ├── useSearchParam.ts
│   │   │       │   └── zodRegex.ts
│   │   │       ├── questions/
│   │   │       │   ├── RequireAllOrNone.ts
│   │   │       │   ├── companySlug.ts
│   │   │       │   ├── constants.ts
│   │   │       │   ├── createSlug.ts
│   │   │       │   ├── locationSlug.ts
│   │   │       │   ├── mutations.ts
│   │   │       │   ├── relabelQuestionAggregates.ts
│   │   │       │   ├── server/
│   │   │       │   │   └── aggregate-encounters.ts
│   │   │       │   ├── useDefaultCompany.ts
│   │   │       │   ├── useDefaultLocation.ts
│   │   │       │   ├── useFormRegister.ts
│   │   │       │   ├── useLocationOptions.ts
│   │   │       │   ├── useProtectedCallback.ts
│   │   │       │   ├── useSearchParam.ts
│   │   │       │   ├── vote/
│   │   │       │   │   ├── useAnswerCommentVote.ts
│   │   │       │   │   ├── useAnswerVote.ts
│   │   │       │   │   ├── useQuestionCommentVote.ts
│   │   │       │   │   ├── useQuestionVote.ts
│   │   │       │   │   └── useVote.ts
│   │   │       │   └── withHref.tsx
│   │   │       ├── resumes/
│   │   │       │   ├── resumeFilters.ts
│   │   │       │   ├── resumePrismaUtils.ts
│   │   │       │   ├── useDebounceValue.ts
│   │   │       │   └── useSearchParams.ts
│   │   │       ├── shared/
│   │   │       │   ├── useCompanyOptions.ts
│   │   │       │   ├── useCountryOptions.ts
│   │   │       │   └── useJobTitleOptions.ts
│   │   │       ├── supabase.ts
│   │   │       └── trpc.ts
│   │   ├── tailwind.config.cjs
│   │   ├── tsconfig.json
│   │   └── vercel.json
│   └── website/
│       ├── .gitignore
│       ├── .npmrc
│       ├── README.md
│       ├── blog/
│       │   ├── 2019-11-03-are-front-end-development-enough-for-a-career.md
│       │   ├── 2020-05-28-summing-root-to-leaf-numbers.md
│       │   ├── 2021-04-12-importance-of-communicating-effectively-as-an-engineer.md
│       │   ├── 2021-08-19-facebook-career-questions-and-answers.md
│       │   ├── 2021-08-28-front-end-career-questions.md
│       │   ├── 2021-08-29-resume-improvement-case-study.md
│       │   ├── 2021-08-30-a-glimpse-into-front-end-interviews.md
│       │   ├── 2021-10-30-my-experience-working-as-a-meta-engineer.md
│       │   ├── 2021-12-23-front-end-vs-back-end-system-design-interviews.md
│       │   ├── 2022-04-20-take-control-over-your-coding-interview.md
│       │   ├── 2022-04-21-why-you-should-include-debugging-in-the-interview-process.md
│       │   ├── 2022-07-09-getting-a-tech-job-as-an-undergraduate.md
│       │   └── 2023-05-17-how-to-have-successful-software-engineering-internship.md
│       ├── contents/
│       │   ├── _components/
│       │   │   ├── InDocAd.js
│       │   │   ├── QuestionGroups.json
│       │   │   └── QuestionList.js
│       │   ├── _courses/
│       │   │   └── AlgorithmCourses.md
│       │   ├── algorithms/
│       │   │   ├── __template__.md
│       │   │   ├── array.md
│       │   │   ├── binary.md
│       │   │   ├── dynamic-programming.md
│       │   │   ├── geometry.md
│       │   │   ├── graph.md
│       │   │   ├── hash-table.md
│       │   │   ├── heap.md
│       │   │   ├── interval.md
│       │   │   ├── linked-list.md
│       │   │   ├── math.md
│       │   │   ├── matrix.md
│       │   │   ├── oop.md
│       │   │   ├── queue.md
│       │   │   ├── recursion.md
│       │   │   ├── sorting-searching.md
│       │   │   ├── stack.md
│       │   │   ├── string.md
│       │   │   ├── study-cheatsheet.md
│       │   │   ├── tree.md
│       │   │   └── trie.md
│       │   ├── behavioral-interview-questions.md
│       │   ├── behavioral-interview-rubrics.md
│       │   ├── behavioral-interview-senior-candidates.md
│       │   ├── behavioral-interview.md
│       │   ├── best-coding-interview-courses.md
│       │   ├── best-practice-questions.md
│       │   ├── career-growth.md
│       │   ├── choosing-between-companies.md
│       │   ├── coding-interview-cheatsheet.md
│       │   ├── coding-interview-prep.md
│       │   ├── coding-interview-rubrics.md
│       │   ├── coding-interview-study-plan.md
│       │   ├── coding-interview-techniques.md
│       │   ├── engineering-levels.md
│       │   ├── final-questions.md
│       │   ├── interview-formats-top-companies.md
│       │   ├── interviewer-cheatsheet.md
│       │   ├── landscape.md
│       │   ├── mock-interviews.md
│       │   ├── negotiation-rules.md
│       │   ├── negotiation.md
│       │   ├── programming-languages-for-coding-interviews.md
│       │   ├── resume-old.md
│       │   ├── resume.md
│       │   ├── self-introduction.md
│       │   ├── software-engineering-interview-guide.md
│       │   ├── system-design.md
│       │   └── understanding-compensation.md
│       ├── docusaurus.config.js
│       ├── experimental/
│       │   ├── front-end/
│       │   │   └── README.md
│       │   ├── topics.md
│       │   └── utilities/
│       │       ├── javascript/
│       │       │   ├── binToInt.js
│       │       │   ├── binarySearch.js
│       │       │   ├── deepEqual.js
│       │       │   ├── graphTopoSort.js
│       │       │   ├── intToBin.js
│       │       │   ├── intervalsIntersect.js
│       │       │   ├── intervalsMerge.js
│       │       │   ├── isSubsequence.js
│       │       │   ├── matrixClone.js
│       │       │   ├── matrixTranspose.js
│       │       │   ├── matrixTraverse.js
│       │       │   ├── mergeSort.js
│       │       │   ├── treeEqual.js
│       │       │   └── treeMirror.js
│       │       └── python/
│       │           ├── binary_search.py
│       │           ├── char_prime_map.py
│       │           ├── graph_dfs.py
│       │           ├── graph_topo_sort.py
│       │           ├── heap.py
│       │           ├── is_subsequence.py
│       │           ├── linked_list.py
│       │           ├── quick_select.py
│       │           ├── rabin_karp_hash.py
│       │           ├── tree_equal.py
│       │           ├── tree_mirror.py
│       │           ├── tree_traversal.py
│       │           ├── trie.py
│       │           └── union_find.py
│       ├── functions/
│       │   └── grind75/
│       │       └── [[catchall]].js
│       ├── package.json
│       ├── sidebars.js
│       ├── src/
│       │   ├── components/
│       │   │   └── SidebarAd/
│       │   │       ├── index.js
│       │   │       └── styles.module.css
│       │   ├── css/
│       │   │   └── custom.css
│       │   ├── data/
│       │   │   └── successStories.js
│       │   ├── pages/
│       │   │   ├── advertise.md
│       │   │   ├── index.js
│       │   │   └── styles.module.css
│       │   └── theme/
│       │       ├── DocItem/
│       │       │   ├── Content/
│       │       │   │   └── index.js
│       │       │   └── Layout/
│       │       │       ├── index.js
│       │       │       └── styles.module.css
│       │       ├── DocSidebar/
│       │       │   └── Mobile/
│       │       │       ├── index.d.ts
│       │       │       └── index.js
│       │       └── TOC/
│       │           ├── index.js
│       │           └── styles.module.css
│       └── static/
│           ├── CNAME
│           ├── _redirects
│           └── ads.txt
├── package.json
├── packages/
│   ├── tailwind-config/
│   │   ├── package.json
│   │   └── tailwind.config.js
│   └── tsconfig/
│       ├── base.json
│       ├── nextjs.json
│       ├── package.json
│       └── react-library.json
├── pnpm-workspace.yaml
└── vite.config.ts
Download .txt
SYMBOL INDEX (959 symbols across 322 files)

FILE: apps/portal/next.config.mjs
  function defineNextConfig (line 11) | function defineNextConfig(config) {

FILE: apps/portal/prisma/migrations/20220928103800_init/migration.sql
  type "Example" (line 2) | CREATE TABLE "Example" (
  type "Account" (line 9) | CREATE TABLE "Account" (
  type "Session" (line 27) | CREATE TABLE "Session" (
  type "User" (line 37) | CREATE TABLE "User" (
  type "VerificationToken" (line 48) | CREATE TABLE "VerificationToken" (
  type "Account" (line 55) | CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account...
  type "Session" (line 58) | CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken")
  type "User" (line 61) | CREATE UNIQUE INDEX "User_email_key" ON "User"("email")
  type "VerificationToken" (line 64) | CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"...
  type "VerificationToken" (line 67) | CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON "Verific...

FILE: apps/portal/prisma/migrations/20221002033341_add_todos/migration.sql
  type "Todo" (line 14) | CREATE TABLE "Todo" (

FILE: apps/portal/prisma/migrations/20221006024246_add_companies/migration.sql
  type "Company" (line 2) | CREATE TABLE "Company" (
  type "Company" (line 15) | CREATE UNIQUE INDEX "Company_slug_key" ON "Company"("slug")

FILE: apps/portal/prisma/migrations/20221006090216_add_resume_schemas/migration.sql
  type "ResumesResume" (line 5) | CREATE TABLE "ResumesResume" (
  type "ResumesStar" (line 21) | CREATE TABLE "ResumesStar" (
  type "ResumesComment" (line 31) | CREATE TABLE "ResumesComment" (
  type "ResumesCommentVote" (line 44) | CREATE TABLE "ResumesCommentVote" (

FILE: apps/portal/prisma/migrations/20221007062555_add_resume_profile_model/migration.sql
  type "ResumesProfile" (line 45) | CREATE TABLE "ResumesProfile" (
  type "ResumesProfile" (line 53) | CREATE UNIQUE INDEX "ResumesProfile_userId_key" ON "ResumesProfile"("use...
  type "ResumesCommentVote" (line 56) | CREATE UNIQUE INDEX "ResumesCommentVote_commentId_resumesProfileId_key" ...
  type "ResumesStar" (line 59) | CREATE UNIQUE INDEX "ResumesStar_resumeId_resumesProfileId_key" ON "Resu...

FILE: apps/portal/prisma/migrations/20221007110225_add_questions_model/migration.sql
  type "QuestionsQuestion" (line 5) | CREATE TABLE "QuestionsQuestion" (
  type "QuestionsQuestionEncounter" (line 16) | CREATE TABLE "QuestionsQuestionEncounter" (
  type "QuestionsQuestionVote" (line 27) | CREATE TABLE "QuestionsQuestionVote" (
  type "QuestionsQuestionComment" (line 39) | CREATE TABLE "QuestionsQuestionComment" (
  type "QuestionsQuestionCommentVote" (line 51) | CREATE TABLE "QuestionsQuestionCommentVote" (
  type "QuestionsAnswer" (line 63) | CREATE TABLE "QuestionsAnswer" (
  type "QuestionsAnswerVote" (line 75) | CREATE TABLE "QuestionsAnswerVote" (
  type "QuestionsAnswerComment" (line 87) | CREATE TABLE "QuestionsAnswerComment" (
  type "QuestionsAnswerCommentVote" (line 99) | CREATE TABLE "QuestionsAnswerCommentVote" (
  type "QuestionsQuestionVote" (line 111) | CREATE UNIQUE INDEX "QuestionsQuestionVote_questionId_userId_key" ON "Qu...
  type "QuestionsQuestionCommentVote" (line 114) | CREATE UNIQUE INDEX "QuestionsQuestionCommentVote_questionCommentId_user...
  type "QuestionsAnswerVote" (line 117) | CREATE UNIQUE INDEX "QuestionsAnswerVote_answerId_userId_key" ON "Questi...
  type "QuestionsAnswerCommentVote" (line 120) | CREATE UNIQUE INDEX "QuestionsAnswerCommentVote_answerCommentId_userId_k...

FILE: apps/portal/prisma/migrations/20221007135344_remove_resumes_profile_model/migration.sql
  type "ResumesCommentVote" (line 58) | CREATE UNIQUE INDEX "ResumesCommentVote_userId_commentId_key" ON "Resume...
  type "ResumesStar" (line 61) | CREATE UNIQUE INDEX "ResumesStar_userId_resumeId_key" ON "ResumesStar"("...

FILE: apps/portal/prisma/migrations/20221009160601_/migration.sql
  type "OffersProfile" (line 5) | CREATE TABLE "OffersProfile" (
  type "OffersBackground" (line 16) | CREATE TABLE "OffersBackground" (
  type "OffersSpecificYoe" (line 25) | CREATE TABLE "OffersSpecificYoe" (
  type "OffersExperience" (line 35) | CREATE TABLE "OffersExperience" (
  type "OffersCurrency" (line 51) | CREATE TABLE "OffersCurrency" (
  type "OffersEducation" (line 60) | CREATE TABLE "OffersEducation" (
  type "OffersReply" (line 74) | CREATE TABLE "OffersReply" (
  type "OffersOffer" (line 86) | CREATE TABLE "OffersOffer" (
  type "OffersIntern" (line 100) | CREATE TABLE "OffersIntern" (
  type "OffersFullTime" (line 112) | CREATE TABLE "OffersFullTime" (
  type "OffersBackground" (line 126) | CREATE UNIQUE INDEX "OffersBackground_offersProfileId_key" ON "OffersBac...
  type "OffersExperience" (line 129) | CREATE UNIQUE INDEX "OffersExperience_totalCompensationId_key" ON "Offer...
  type "OffersExperience" (line 132) | CREATE UNIQUE INDEX "OffersExperience_monthlySalaryId_key" ON "OffersExp...
  type "OffersIntern" (line 135) | CREATE UNIQUE INDEX "OffersIntern_monthlySalaryId_key" ON "OffersIntern"...
  type "OffersFullTime" (line 138) | CREATE UNIQUE INDEX "OffersFullTime_totalCompensationId_key" ON "OffersF...
  type "OffersFullTime" (line 141) | CREATE UNIQUE INDEX "OffersFullTime_baseSalaryId_key" ON "OffersFullTime...
  type "OffersFullTime" (line 144) | CREATE UNIQUE INDEX "OffersFullTime_bonusId_key" ON "OffersFullTime"("bo...
  type "OffersFullTime" (line 147) | CREATE UNIQUE INDEX "OffersFullTime_stocksId_key" ON "OffersFullTime"("s...

FILE: apps/portal/prisma/migrations/20221011042156_/migration.sql
  type "OffersOffer" (line 75) | CREATE UNIQUE INDEX "OffersOffer_offersInternId_key" ON "OffersOffer"("o...
  type "OffersOffer" (line 78) | CREATE UNIQUE INDEX "OffersOffer_offersFullTimeId_key" ON "OffersOffer"(...
  type "OffersProfile" (line 81) | CREATE UNIQUE INDEX "OffersProfile_profileName_key" ON "OffersProfile"("...

FILE: apps/portal/prisma/migrations/20221014192315_/migration.sql
  type "OffersAnalysis" (line 2) | CREATE TABLE "OffersAnalysis" (
  type "_TopOverallOffers" (line 15) | CREATE TABLE "_TopOverallOffers" (
  type "_TopCompanyOffers" (line 21) | CREATE TABLE "_TopCompanyOffers" (
  type "OffersAnalysis" (line 27) | CREATE UNIQUE INDEX "OffersAnalysis_profileId_key" ON "OffersAnalysis"("...
  type "OffersAnalysis" (line 30) | CREATE UNIQUE INDEX "OffersAnalysis_offerId_key" ON "OffersAnalysis"("of...
  type "_TopOverallOffers" (line 33) | CREATE UNIQUE INDEX "_TopOverallOffers_AB_unique" ON "_TopOverallOffers"...
  type "_TopOverallOffers" (line 36) | CREATE INDEX "_TopOverallOffers_B_index" ON "_TopOverallOffers"("B")
  type "_TopCompanyOffers" (line 39) | CREATE UNIQUE INDEX "_TopCompanyOffers_AB_unique" ON "_TopCompanyOffers"...
  type "_TopCompanyOffers" (line 42) | CREATE INDEX "_TopCompanyOffers_B_index" ON "_TopCompanyOffers"("B")

FILE: apps/portal/prisma/migrations/20221021155717_add_sorting_index/migration.sql
  type "QuestionsQuestion" (line 2) | CREATE INDEX "QuestionsQuestion_lastSeenAt_id_idx" ON "QuestionsQuestion...
  type "QuestionsQuestion" (line 5) | CREATE INDEX "QuestionsQuestion_upvotes_id_idx" ON "QuestionsQuestion"("...

FILE: apps/portal/prisma/migrations/20221023102619_add_list_schema/migration.sql
  type "QuestionsList" (line 2) | CREATE TABLE "QuestionsList" (
  type "QuestionsListQuestionEntry" (line 13) | CREATE TABLE "QuestionsListQuestionEntry" (
  type "QuestionsList" (line 24) | CREATE UNIQUE INDEX "QuestionsList_userId_name_key" ON "QuestionsList"("...
  type "QuestionsListQuestionEntry" (line 27) | CREATE UNIQUE INDEX "QuestionsListQuestionEntry_listId_questionId_key" O...

FILE: apps/portal/prisma/migrations/20221029180052_add_ecnounter_sort_support/migration.sql
  type "QuestionsQuestion" (line 5) | CREATE INDEX "QuestionsQuestion_numEncounters_id_idx" ON "QuestionsQuest...

FILE: apps/portal/prisma/migrations/20221030024321_locations/migration.sql
  type "Country" (line 2) | CREATE TABLE "Country" (
  type "State" (line 11) | CREATE TABLE "State" (
  type "City" (line 20) | CREATE TABLE "City" (
  type "Country" (line 29) | CREATE UNIQUE INDEX "Country_name_key" ON "Country"("name")
  type "Country" (line 32) | CREATE UNIQUE INDEX "Country_code_key" ON "Country"("code")
  type "State" (line 35) | CREATE UNIQUE INDEX "State_name_countryId_key" ON "State"("name", "count...
  type "City" (line 38) | CREATE UNIQUE INDEX "City_name_stateId_key" ON "City"("name", "stateId")

FILE: apps/portal/prisma/migrations/20221030121147_use_roles_and_location_table/migration.sql
  type "QuestionsAnswer" (line 15) | CREATE INDEX "QuestionsAnswer_updatedAt_id_idx" ON "QuestionsAnswer"("up...
  type "QuestionsAnswer" (line 18) | CREATE INDEX "QuestionsAnswer_upvotes_id_idx" ON "QuestionsAnswer"("upvo...
  type "QuestionsAnswerComment" (line 21) | CREATE INDEX "QuestionsAnswerComment_updatedAt_id_idx" ON "QuestionsAnsw...
  type "QuestionsAnswerComment" (line 24) | CREATE INDEX "QuestionsAnswerComment_upvotes_id_idx" ON "QuestionsAnswer...
  type "QuestionsQuestionComment" (line 27) | CREATE INDEX "QuestionsQuestionComment_updatedAt_id_idx" ON "QuestionsQu...
  type "QuestionsQuestionComment" (line 30) | CREATE INDEX "QuestionsQuestionComment_upvotes_id_idx" ON "QuestionsQues...

FILE: apps/portal/prisma/migrations/20221031033529_change_analysis_models_to_allow_for_multiple_company_analysis/migration.sql
  type "OffersAnalysisUnit" (line 49) | CREATE TABLE "OffersAnalysisUnit" (
  type "_OffersProfileToUser" (line 59) | CREATE TABLE "_OffersProfileToUser" (
  type "_CompanyAnalysis" (line 65) | CREATE TABLE "_CompanyAnalysis" (
  type "_OffersAnalysisUnitToOffersOffer" (line 71) | CREATE TABLE "_OffersAnalysisUnitToOffersOffer" (
  type "_OffersProfileToUser" (line 77) | CREATE UNIQUE INDEX "_OffersProfileToUser_AB_unique" ON "_OffersProfileT...
  type "_OffersProfileToUser" (line 80) | CREATE INDEX "_OffersProfileToUser_B_index" ON "_OffersProfileToUser"("B")
  type "_CompanyAnalysis" (line 83) | CREATE UNIQUE INDEX "_CompanyAnalysis_AB_unique" ON "_CompanyAnalysis"("...
  type "_CompanyAnalysis" (line 86) | CREATE INDEX "_CompanyAnalysis_B_index" ON "_CompanyAnalysis"("B")
  type "_OffersAnalysisUnitToOffersOffer" (line 89) | CREATE UNIQUE INDEX "_OffersAnalysisUnitToOffersOffer_AB_unique" ON "_Of...
  type "_OffersAnalysisUnitToOffersOffer" (line 92) | CREATE INDEX "_OffersAnalysisUnitToOffersOffer_B_index" ON "_OffersAnaly...

FILE: apps/portal/prisma/migrations/20221117094655_add_offersadmin_table/migration.sql
  type "OffersAdmin" (line 2) | CREATE TABLE "OffersAdmin" (
  type "OffersAdmin" (line 10) | CREATE UNIQUE INDEX "OffersAdmin_userId_key" ON "OffersAdmin"("userId")

FILE: apps/portal/prisma/seed-companies.ts
  function main (line 7) | async function main() {

FILE: apps/portal/prisma/seed-questions.ts
  type QuestionCreateData (line 7) | type QuestionCreateData = Parameters<
  function selectRandomRole (line 11) | function selectRandomRole() {
  function generateRandomDate (line 17) | function generateRandomDate() {
  function generateRandomCodingAnswer (line 26) | function generateRandomCodingAnswer() {
  function generateRandomBehavioralAnswer (line 32) | function generateRandomBehavioralAnswer() {
  constant CODING_QUESTION_CONTENT (line 38) | const CODING_QUESTION_CONTENT = [
  constant BEHAVIORAL_QUESTION_CONTENT (line 46) | const BEHAVIORAL_QUESTION_CONTENT = [
  constant CODING_ANSWER_CONTENT (line 59) | const CODING_ANSWER_CONTENT = [
  constant BEHAVIORAL_ANSWER_CONTENT (line 70) | const BEHAVIORAL_ANSWER_CONTENT = [
  constant CODING_QUESTIONS (line 79) | const CODING_QUESTIONS: Array<QuestionCreateData> = CODING_QUESTION_CONT...
  constant BEHAVIORAL_QUESTIONS (line 93) | const BEHAVIORAL_QUESTIONS: Array<QuestionCreateData> =
  constant QUESTIONS (line 106) | const QUESTIONS: Array<QuestionCreateData> = [
  function main (line 111) | async function main() {

FILE: apps/portal/prisma/seed-salaries.ts
  type ExcelData (line 19) | type ExcelData = {
  function xlSerialToJsDate (line 41) | function xlSerialToJsDate(xlSerial) {

FILE: apps/portal/prisma/seed.ts
  function main (line 9) | async function main() {

FILE: apps/portal/src/components/global/AppShell.tsx
  type Props (line 28) | type Props = Readonly<{
  function ProfileJewel (line 32) | function ProfileJewel() {
  function AppShell (line 133) | function AppShell({ children }: Props) {

FILE: apps/portal/src/components/global/GlobalNavigation.ts
  type GlobalNavigationItem (line 7) | type GlobalNavigationItem = Readonly<{
  type GlobalNavigationItems (line 12) | type GlobalNavigationItems = ReadonlyArray<GlobalNavigationItem>;

FILE: apps/portal/src/components/global/GoogleAnalytics.tsx
  type Context (line 5) | type Context = Readonly<{
  constant MEASUREMENT_ID (line 9) | const MEASUREMENT_ID = 'G-DBLZDQ2ZZN';
  function pageview (line 16) | function pageview(url: string) {
  type GoogleAnalyticsEventPayload (line 29) | type GoogleAnalyticsEventPayload = Readonly<{
  function event (line 37) | function event({
  type Props (line 55) | type Props = Readonly<{
  function useGoogleAnalytics (line 59) | function useGoogleAnalytics() {
  function GoogleAnalytics (line 63) | function GoogleAnalytics({ children }: Props) {

FILE: apps/portal/src/components/global/MobileNavigation.tsx
  type Props (line 11) | type Props = Readonly<{
  function MobileNavigation (line 20) | function MobileNavigation({

FILE: apps/portal/src/components/global/ProductNavigation.tsx
  type NavigationItem (line 9) | type NavigationItem = Readonly<{
  type ProductNavigationItems (line 16) | type ProductNavigationItems = ReadonlyArray<NavigationItem>;
  type Props (line 18) | type Props = Readonly<{
  function ProductNavigation (line 25) | function ProductNavigation({

FILE: apps/portal/src/components/offers/Breadcrumbs.tsx
  type BreadcrumbStep (line 4) | type BreadcrumbStep = Readonly<{
  type BreadcrumbsProps (line 9) | type BreadcrumbsProps = Readonly<{
  function Breadcrumbs (line 15) | function Breadcrumbs({ steps, currentStep, setStep }: BreadcrumbsProps) {

FILE: apps/portal/src/components/offers/EducationFields.ts
  type EducationType (line 48) | type EducationType = keyof typeof EducationFieldLabels;
  function getLabelForEducationFieldType (line 50) | function getLabelForEducationFieldType(
  type EducationFieldType (line 56) | type EducationFieldType = keyof typeof EducationFieldLabels;

FILE: apps/portal/src/components/offers/JobTypeTabs.tsx
  type Props (line 6) | type Props = Readonly<{
  function JobTypeTabs (line 22) | function JobTypeTabs({ value, onChange }: Props) {

FILE: apps/portal/src/components/offers/Years.ts
  constant NUM_YEARS (line 1) | const NUM_YEARS = 5;
  constant OFFSET (line 2) | const OFFSET = 2;

FILE: apps/portal/src/components/offers/admin/OffersHeader.tsx
  type OffersTableHeaderProps (line 9) | type OffersTableHeaderProps = Readonly<{
  function OffersHeader (line 20) | function OffersHeader({

FILE: apps/portal/src/components/offers/admin/OffersRow.tsx
  type OfferTableRowProps (line 13) | type OfferTableRowProps = Readonly<{
  function OfferTableRow (line 18) | function OfferTableRow({

FILE: apps/portal/src/components/offers/admin/OffersTable.tsx
  constant NUMBER_OF_OFFERS_PER_PAGE (line 33) | const NUMBER_OF_OFFERS_PER_PAGE = 20;
  type OffersTableProps (line 35) | type OffersTableProps = Readonly<{
  function OffersTable (line 43) | function OffersTable({

FILE: apps/portal/src/components/offers/admin/OffersTablePagination.tsx
  type OffersTablePaginationProps (line 6) | type OffersTablePaginationProps = Readonly<{
  function OffersTablePagination (line 15) | function OffersTablePagination({

FILE: apps/portal/src/components/offers/admin/types.ts
  type YOE_CATEGORY (line 2) | enum YOE_CATEGORY {
  constant YOE_CATEGORY_PARAM (line 9) | const YOE_CATEGORY_PARAM: Record<string, number> = {
  type OfferTableSortType (line 36) | type OfferTableSortType =
  type OFFER_TABLE_SORT_ORDER (line 43) | enum OFFER_TABLE_SORT_ORDER {
  function getOppositeSortOrder (line 49) | function getOppositeSortOrder(
  type OfferTableColumn (line 60) | type OfferTableColumn = {

FILE: apps/portal/src/components/offers/constants.ts
  constant HOME_URL (line 1) | const HOME_URL = '/offers';
  constant OFFERS_SUBMIT_URL (line 2) | const OFFERS_SUBMIT_URL = '/offers/submit';
  type FieldError (line 14) | enum FieldError {
  constant OVERALL_TAB (line 21) | const OVERALL_TAB = 'Overall';
  type ProfileDetailTab (line 23) | enum ProfileDetailTab {

FILE: apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx
  type Props (line 18) | type Props = Readonly<{
  function DashboardProfileCard (line 22) | function DashboardProfileCard({

FILE: apps/portal/src/components/offers/dashboard/DashboardProfileCard.tsx
  type Props (line 15) | type Props = Readonly<{
  function DashboardProfileCard (line 19) | function DashboardProfileCard({

FILE: apps/portal/src/components/offers/features/LeftTextCard.tsx
  type LeftTextCardProps (line 5) | type LeftTextCardProps = Readonly<{
  function LeftTextCard (line 15) | function LeftTextCard({

FILE: apps/portal/src/components/offers/features/RightTextCard.tsx
  type RightTextCarddProps (line 5) | type RightTextCarddProps = Readonly<{
  function RightTextCard (line 15) | function RightTextCard({

FILE: apps/portal/src/components/offers/forms/FormCitiesTypeahead.tsx
  type Props (line 6) | type Props = Omit<
  function FormCitiesTypeahead (line 13) | function FormCitiesTypeahead({ names, ...props }: Props) {

FILE: apps/portal/src/components/offers/forms/FormCompaniesTypeahead.tsx
  type Props (line 6) | type Props = Omit<
  function FormCompaniesTypeahead (line 13) | function FormCompaniesTypeahead({ names, ...props }: Props) {

FILE: apps/portal/src/components/offers/forms/FormJobTitlesTypeahead.tsx
  type Props (line 8) | type Props = Omit<
  function FormJobTitlesTypeahead (line 15) | function FormJobTitlesTypeahead({ name, ...props }: Props) {

FILE: apps/portal/src/components/offers/forms/FormMonthYearPicker.tsx
  type MonthYearPickerProps (line 9) | type MonthYearPickerProps = ComponentProps<typeof MonthYearPicker>;
  type FormMonthYearPickerProps (line 11) | type FormMonthYearPickerProps = Omit<
  function FormMonthYearPickerWithRef (line 18) | function FormMonthYearPickerWithRef({

FILE: apps/portal/src/components/offers/forms/FormRadioList.tsx
  type RadioListProps (line 5) | type RadioListProps = ComponentProps<typeof RadioList>;
  type FormRadioListProps (line 7) | type FormRadioListProps = Omit<RadioListProps, 'onChange'>;
  function FormRadioList (line 9) | function FormRadioList({ name, ...rest }: FormRadioListProps) {

FILE: apps/portal/src/components/offers/forms/FormSection.tsx
  function FormSection (line 3) | function FormSection({

FILE: apps/portal/src/components/offers/forms/FormSelect.tsx
  type SelectProps (line 6) | type SelectProps = ComponentProps<typeof Select>;
  type FormSelectProps (line 8) | type FormSelectProps = Omit<SelectProps, 'onChange'>;
  function FormSelectWithRef (line 10) | function FormSelectWithRef(

FILE: apps/portal/src/components/offers/forms/FormTextArea.tsx
  type TextAreaProps (line 6) | type TextAreaProps = ComponentProps<typeof TextArea>;
  type FormTextAreaProps (line 8) | type FormTextAreaProps = Omit<TextAreaProps, 'onChange'> &
  function FormTextAreaWithRef (line 11) | function FormTextAreaWithRef(

FILE: apps/portal/src/components/offers/forms/FormTextInput.tsx
  type TextInputProps (line 6) | type TextInputProps = ComponentProps<typeof TextInput>;
  type FormTextInputProps (line 8) | type FormTextInputProps = Omit<TextInputProps, 'onChange'> &
  function FormTextInputWithRef (line 11) | function FormTextInputWithRef(

FILE: apps/portal/src/components/offers/offerAnalysis/OfferAnalysis.tsx
  type OfferAnalysisContentProps (line 14) | type OfferAnalysisContentProps = Readonly<{
  function OfferAnalysisContent (line 20) | function OfferAnalysisContent({
  type OfferAnalysisProps (line 92) | type OfferAnalysisProps = Readonly<{
  function OfferAnalysis (line 99) | function OfferAnalysis({

FILE: apps/portal/src/components/offers/offerAnalysis/OfferPercentileAnalysisText.tsx
  type OfferPercentileAnalysisTextProps (line 5) | type OfferPercentileAnalysisTextProps = Readonly<{
  function OfferPercentileAnalysisText (line 11) | function OfferPercentileAnalysisText({

FILE: apps/portal/src/components/offers/offerAnalysis/OfferProfileCard.tsx
  type OfferProfileCardProps (line 26) | type OfferProfileCardProps = Readonly<{
  function OfferProfileCard (line 30) | function OfferProfileCard({

FILE: apps/portal/src/components/offers/offersSubmission/OffersProfileSave.tsx
  type OfferProfileSaveProps (line 13) | type OfferProfileSaveProps = Readonly<{
  function OffersProfileSave (line 19) | function OffersProfileSave({

FILE: apps/portal/src/components/offers/offersSubmission/OffersSubmissionAnalysis.tsx
  type Props (line 4) | type Props = Readonly<{
  function OffersSubmissionAnalysis (line 10) | function OffersSubmissionAnalysis({

FILE: apps/portal/src/components/offers/offersSubmission/OffersSubmissionForm.tsx
  constant DEFAULT_CURRENCY (line 33) | const DEFAULT_CURRENCY = Currency.SGD;
  type Props (line 90) | type Props = Readonly<{
  function OffersSubmissionForm (line 97) | function OffersSubmissionForm({

FILE: apps/portal/src/components/offers/offersSubmission/submissionForm/BackgroundForm.tsx
  function YoeSection (line 21) | function YoeSection() {
  type FullTimeJobFieldsProps (line 83) | type FullTimeJobFieldsProps = Readonly<{
  function FullTimeJobFields (line 87) | function FullTimeJobFields({ defaultCurrency }: FullTimeJobFieldsProps) {
  type InternshipJobFieldsProps (line 160) | type InternshipJobFieldsProps = Readonly<{
  function InternshipJobFields (line 164) | function InternshipJobFields({ defaultCurrency }: InternshipJobFieldsPro...
  type CurrentJobSectionProps (line 227) | type CurrentJobSectionProps = Readonly<{
  function CurrentJobSection (line 231) | function CurrentJobSection({ defaultCurrency }: CurrentJobSectionProps) {
  function EducationSection (line 265) | function EducationSection() {
  type BackgroundFormProps (line 294) | type BackgroundFormProps = Readonly<{
  function BackgroundForm (line 298) | function BackgroundForm({

FILE: apps/portal/src/components/offers/offersSubmission/submissionForm/OfferDetailsForm.tsx
  type FullTimeOfferDetailsFormProps (line 35) | type FullTimeOfferDetailsFormProps = Readonly<{
  function FullTimeOfferDetailsForm (line 41) | function FullTimeOfferDetailsForm({
  type InternshipOfferDetailsFormProps (line 276) | type InternshipOfferDetailsFormProps = Readonly<{
  function InternshipOfferDetailsForm (line 282) | function InternshipOfferDetailsForm({
  type OfferDetailsFormArrayProps (line 441) | type OfferDetailsFormArrayProps = Readonly<{
  function OfferDetailsFormArray (line 447) | function OfferDetailsFormArray({
  type OfferDetailsFormProps (line 493) | type OfferDetailsFormProps = Readonly<{
  function OfferDetailsForm (line 497) | function OfferDetailsForm({

FILE: apps/portal/src/components/offers/profile/EducationCard.tsx
  type Props (line 7) | type Props = Readonly<{
  function EducationCard (line 11) | function EducationCard({

FILE: apps/portal/src/components/offers/profile/OfferCard.tsx
  type Props (line 17) | type Props = Readonly<{
  function OfferCard (line 21) | function OfferCard({

FILE: apps/portal/src/components/offers/profile/ProfileComments.tsx
  type ProfileHeaderProps (line 18) | type ProfileHeaderProps = Readonly<{
  function ProfileComments (line 27) | function ProfileComments({

FILE: apps/portal/src/components/offers/profile/ProfileDetails.tsx
  type ProfileOffersProps (line 23) | type ProfileOffersProps = Readonly<{
  function ProfileOffers (line 27) | function ProfileOffers({ offers }: ProfileOffersProps) {
  type ProfileBackgroundProps (line 56) | type ProfileBackgroundProps = Readonly<{
  function ProfileBackground (line 60) | function ProfileBackground({ background }: ProfileBackgroundProps) {
  type ProfileAnalysisProps (line 97) | type ProfileAnalysisProps = Readonly<{
  function ProfileAnalysis (line 103) | function ProfileAnalysis({
  type ProfileDetailsProps (line 167) | type ProfileDetailsProps = Readonly<{
  function ProfileDetails (line 177) | function ProfileDetails({

FILE: apps/portal/src/components/offers/profile/ProfileHeader.tsx
  type ProfileHeaderProps (line 25) | type ProfileHeaderProps = Readonly<{
  function ProfileHeader (line 34) | function ProfileHeader({

FILE: apps/portal/src/components/offers/profile/ProfilePhotoHolder.tsx
  type ProfilePhotoHolderProps (line 1) | type ProfilePhotoHolderProps = Readonly<{
  function ProfilePhotoHolder (line 5) | function ProfilePhotoHolder({

FILE: apps/portal/src/components/offers/profile/comments/CommentCard.tsx
  type Props (line 12) | type Props = Readonly<{
  function CommentCard (line 22) | function CommentCard({

FILE: apps/portal/src/components/offers/profile/comments/ExpandableCommentCard.tsx
  type Props (line 7) | type Props = Readonly<{
  function ExpandableCommentCard (line 13) | function ExpandableCommentCard({

FILE: apps/portal/src/components/offers/table/OffersHeader.tsx
  type OffersTableHeaderProps (line 9) | type OffersTableHeaderProps = Readonly<{
  function OffersHeader (line 20) | function OffersHeader({

FILE: apps/portal/src/components/offers/table/OffersRow.tsx
  type OfferTableRowProps (line 14) | type OfferTableRowProps = Readonly<{
  function OfferTableRow (line 19) | function OfferTableRow({

FILE: apps/portal/src/components/offers/table/OffersTable.tsx
  constant NUMBER_OF_OFFERS_PER_PAGE (line 29) | const NUMBER_OF_OFFERS_PER_PAGE = 20;
  type OffersTableProps (line 31) | type OffersTableProps = Readonly<{
  function OffersTable (line 45) | function OffersTable({

FILE: apps/portal/src/components/offers/table/OffersTablePagination.tsx
  type OffersTablePaginationProps (line 6) | type OffersTablePaginationProps = Readonly<{
  function OffersTablePagination (line 15) | function OffersTablePagination({

FILE: apps/portal/src/components/offers/table/types.ts
  type YOE_CATEGORY (line 2) | enum YOE_CATEGORY {
  constant YOE_CATEGORY_PARAM (line 9) | const YOE_CATEGORY_PARAM: Record<string, number> = {
  type OfferTableSortType (line 36) | type OfferTableSortType =
  type OFFER_TABLE_SORT_ORDER (line 43) | enum OFFER_TABLE_SORT_ORDER {
  function getOppositeSortOrder (line 49) | function getOppositeSortOrder(
  type OfferTableColumn (line 60) | type OfferTableColumn = {

FILE: apps/portal/src/components/offers/types.ts
  type OffersProfileFormData (line 13) | type OffersProfileFormData = {
  type BackgroundFormData (line 19) | type BackgroundFormData = {
  type EducationFormData (line 27) | type EducationFormData = {
  type ExperienceFormData (line 35) | type ExperienceFormData = {
  type SpecificYoeFormData (line 50) | type SpecificYoeFormData = {
  type OfferFormData (line 56) | type OfferFormData = {
  type OfferFullTimeFormData (line 70) | type OfferFullTimeFormData = {
  type OfferInternFormData (line 80) | type OfferInternFormData = {
  type MoneyFormData (line 88) | type MoneyFormData = {
  type OffersProfilePostData (line 98) | type OffersProfilePostData = {
  type BackgroundPostData (line 104) | type BackgroundPostData = {
  type EducationPostData (line 112) | type EducationPostData = EducationFormData;
  type ExperiencePostData (line 114) | type ExperiencePostData = {
  type SpecificYoePostData (line 129) | type SpecificYoePostData = SpecificYoeFormData;
  type OfferPostData (line 131) | type OfferPostData = {
  type OfferFullTimePostData (line 143) | type OfferFullTimePostData = {
  type OfferInternPostData (line 153) | type OfferInternPostData = {
  type Money (line 161) | type Money = {
  type EducationDisplayData (line 171) | type EducationDisplayData = {
  type OfferDisplayData (line 179) | type OfferDisplayData = {
  type BackgroundDisplayData (line 199) | type BackgroundDisplayData = {
  type CommentEntity (line 207) | type CommentEntity = {

FILE: apps/portal/src/components/offers/util/Tooltip.tsx
  type TooltipProps (line 5) | type TooltipProps = Readonly<{
  function Tooltip (line 11) | function Tooltip({

FILE: apps/portal/src/components/questions/AddToListDropdown.tsx
  type AddToListDropdownProps (line 18) | type AddToListDropdownProps = {
  type DropdownButtonProps (line 22) | type DropdownButtonProps = PropsWithChildren<{
  function DropdownButton (line 26) | function DropdownButton({ onClick, children }: DropdownButtonProps) {
  function AddToListDropdown (line 44) | function AddToListDropdown({

FILE: apps/portal/src/components/questions/ContributeQuestionCard.tsx
  type ContributeQuestionCardProps (line 8) | type ContributeQuestionCardProps = Pick<
  function ContributeQuestionCard (line 13) | function ContributeQuestionCard({

FILE: apps/portal/src/components/questions/ContributeQuestionDialog.tsx
  type ContributeQuestionDialogProps (line 9) | type ContributeQuestionDialogProps = Pick<
  function ContributeQuestionDialog (line 17) | function ContributeQuestionDialog({

FILE: apps/portal/src/components/questions/CreateListDialog.tsx
  type CreateListFormData (line 6) | type CreateListFormData = {
  type CreateListDialogProps (line 10) | type CreateListDialogProps = {
  function CreateListDialog (line 16) | function CreateListDialog({

FILE: apps/portal/src/components/questions/DeleteListDialog.tsx
  type DeleteListDialogProps (line 3) | type DeleteListDialogProps = {
  function DeleteListDialog (line 8) | function DeleteListDialog({

FILE: apps/portal/src/components/questions/DiscardDraftDialog.tsx
  type DiscardDraftDialogProps (line 3) | type DiscardDraftDialogProps = {
  function DiscardDraftDialog (line 8) | function DiscardDraftDialog({

FILE: apps/portal/src/components/questions/FullScreenSpinner.tsx
  function FullScreenSpinner (line 3) | function FullScreenSpinner() {

FILE: apps/portal/src/components/questions/LandingComponent.tsx
  type LandingQueryData (line 21) | type LandingQueryData = {
  type LandingComponentProps (line 27) | type LandingComponentProps = {
  function LandingComponent (line 31) | function LandingComponent({ onLanded }: LandingComponentProps) {

FILE: apps/portal/src/components/questions/PaginationLoadMoreButton.tsx
  type PaginationLoadMoreButtonProps (line 4) | type PaginationLoadMoreButtonProps = {
  function PaginationLoadMoreButton (line 8) | function PaginationLoadMoreButton(

FILE: apps/portal/src/components/questions/QuestionAggregateBadge.tsx
  type QuestionAggregateBadgeProps (line 6) | type QuestionAggregateBadgeProps = Readonly<{
  function QuestionAggregateBadge (line 11) | function QuestionAggregateBadge({

FILE: apps/portal/src/components/questions/QuestionContainer.tsx
  type Props (line 6) | type Props = Readonly<{
  function QuestionContainer (line 12) | function QuestionContainer({

FILE: apps/portal/src/components/questions/QuestionSearchBar.tsx
  type QuestionSearchBarProps (line 13) | type QuestionSearchBarProps = SortOptionsSelectProps & {
  function getSortOrderLabel (line 20) | function getSortOrderLabel(sortOrder: SortOrder, sortType: SortType): st...
  function QuestionSearchBar (line 36) | function QuestionSearchBar({

FILE: apps/portal/src/components/questions/QuestionTypeBadge.tsx
  type QuestionTypeBadgeProps (line 14) | type QuestionTypeBadgeProps = {
  type BadgeProps (line 18) | type BadgeProps = ComponentProps<typeof Badge>;
  function QuestionTypeBadge (line 35) | function QuestionTypeBadge({ type }: QuestionTypeBadgeProps) {

FILE: apps/portal/src/components/questions/SortOptionsSelect.tsx
  type SortOption (line 6) | type SortOption<Value> = {
  type SortOrderProps (line 11) | type SortOrderProps<Order> = {
  type SortTypeProps (line 17) | type SortTypeProps<Type> = {
  type SortOptionsSelectProps (line 23) | type SortOptionsSelectProps = SortOrderProps<SortOrder> &
  function SortOptionsSelect (line 26) | function SortOptionsSelect({

FILE: apps/portal/src/components/questions/VotingButtons.tsx
  type BackendVote (line 8) | type BackendVote = {
  type VotingButtonsCallbackProps (line 13) | type VotingButtonsCallbackProps = {
  type VotingButtonsProps (line 19) | type VotingButtonsProps = VotingButtonsCallbackProps & {
  function VotingButtons (line 24) | function VotingButtons({

FILE: apps/portal/src/components/questions/card/AnswerCard.tsx
  type AnswerCardProps (line 10) | type AnswerCardProps = {
  function AnswerCard (line 22) | function AnswerCard({

FILE: apps/portal/src/components/questions/card/FullAnswerCard.tsx
  type FullAnswerCardProps (line 4) | type FullAnswerCardProps = Omit<
  function FullAnswerCard (line 9) | function FullAnswerCard(props: FullAnswerCardProps) {

FILE: apps/portal/src/components/questions/card/QuestionAnswerCard.tsx
  type QuestionAnswerCardProps (line 6) | type QuestionAnswerCardProps = Required<
  function QuestionAnswerCardWithoutHref (line 10) | function QuestionAnswerCardWithoutHref(props: QuestionAnswerCardProps) {

FILE: apps/portal/src/components/questions/card/question/BaseQuestionCard.tsx
  type UpvoteProps (line 30) | type UpvoteProps =
  type DeleteProps (line 40) | type DeleteProps =
  type AnswerStatisticsProps (line 50) | type AnswerStatisticsProps =
  type AggregateStatisticsProps (line 60) | type AggregateStatisticsProps =
  type ActionButtonProps (line 74) | type ActionButtonProps =
  type ReceivedStatisticsProps (line 86) | type ReceivedStatisticsProps =
  type CreateEncounterProps (line 96) | type CreateEncounterProps =
  type AddToListProps (line 108) | type AddToListProps =
  type BaseQuestionCardProps (line 116) | type BaseQuestionCardProps = ActionButtonProps &
  function BaseQuestionCard (line 133) | function BaseQuestionCard({

FILE: apps/portal/src/components/questions/card/question/FullQuestionCard.tsx
  type QuestionOverviewCardProps (line 4) | type QuestionOverviewCardProps = Omit<
  function FullQuestionCard (line 27) | function FullQuestionCard(props: QuestionOverviewCardProps) {

FILE: apps/portal/src/components/questions/card/question/QuestionListCard.tsx
  type QuestionListCardProps (line 6) | type QuestionListCardProps = Omit<
  function QuestionListCardWithoutHref (line 23) | function QuestionListCardWithoutHref(props: QuestionListCardProps) {

FILE: apps/portal/src/components/questions/card/question/QuestionOverviewCard.tsx
  type QuestionOverviewCardProps (line 6) | type QuestionOverviewCardProps = Omit<
  function QuestionOverviewCardWithoutHref (line 28) | function QuestionOverviewCardWithoutHref(props: QuestionOverviewCardProp...

FILE: apps/portal/src/components/questions/card/question/SimilarQuestionCard.tsx
  type SimilarQuestionCardProps (line 4) | type SimilarQuestionCardProps = Omit<
  function SimilarQuestionCard (line 27) | function SimilarQuestionCard(props: SimilarQuestionCardProps) {

FILE: apps/portal/src/components/questions/comments/AnswerCommentListItem.tsx
  type AnswerCommentListItemProps (line 6) | type AnswerCommentListItemProps = Omit<
  function AnswerCommentListItem (line 13) | function AnswerCommentListItem({

FILE: apps/portal/src/components/questions/comments/CommentListItem.tsx
  type CommentListItemProps (line 6) | type CommentListItemProps = {
  function CommentListItem (line 17) | function CommentListItem({

FILE: apps/portal/src/components/questions/comments/QuestionCommentListItem.tsx
  type QuestionCommentListItemProps (line 6) | type QuestionCommentListItemProps = Omit<
  function QuestionCommentListItem (line 13) | function QuestionCommentListItem({

FILE: apps/portal/src/components/questions/filter/FilterSection.tsx
  type FilterChoice (line 6) | type FilterChoice<V extends string = string> = {
  type FilterOption (line 12) | type FilterOption<V extends string = string> = FilterChoice<V> & {
  type FilterChoices (line 16) | type FilterChoices<V extends string = string> = ReadonlyArray<
  type FilterSectionType (line 20) | type FilterSectionType<V extends string> =
  type FilterSectionProps (line 30) | type FilterSectionProps<V extends string = string> =
  type FilterSectionFormData (line 49) | type FilterSectionFormData = {
  function FilterSection (line 53) | function FilterSection<V extends string>({

FILE: apps/portal/src/components/questions/forms/ContributeQuestionForm.tsx
  type ContributeQuestionData (line 27) | type ContributeQuestionData = {
  type ContributeQuestionFormProps (line 37) | type ContributeQuestionFormProps = {
  function ContributeQuestionForm (line 43) | function ContributeQuestionForm({

FILE: apps/portal/src/components/questions/forms/CreateQuestionEncounterForm.tsx
  type CreateQuestionEncounterData (line 19) | type CreateQuestionEncounterData = {
  type CreateQuestionEncounterFormProps (line 28) | type CreateQuestionEncounterFormProps = {
  function CreateQuestionEncounterForm (line 33) | function CreateQuestionEncounterForm({

FILE: apps/portal/src/components/questions/layout/BackButtonLayout.tsx
  type BackButtonLayoutProps (line 7) | type BackButtonLayoutProps = PropsWithChildren<{
  function BackButtonLayout (line 11) | function BackButtonLayout({

FILE: apps/portal/src/components/questions/protected/ProtectedContextProvider.tsx
  type ProtectedContextData (line 6) | type ProtectedContextData = {
  type ProtectedContextProviderProps (line 15) | type ProtectedContextProviderProps = PropsWithChildren<
  function ProtectedContextProvider (line 19) | function ProtectedContextProvider({

FILE: apps/portal/src/components/questions/protected/ProtectedDialog.tsx
  type ProtectedDialogProps (line 4) | type ProtectedDialogProps = {
  function ProtectedDialog (line 9) | function ProtectedDialog({

FILE: apps/portal/src/components/questions/typeahead/CompanyTypeahead.tsx
  type CompanyTypeaheadProps (line 8) | type CompanyTypeaheadProps = Omit<
  function CompanyTypeahead (line 13) | function CompanyTypeahead(props: CompanyTypeaheadProps) {

FILE: apps/portal/src/components/questions/typeahead/ExpandedTypeahead.tsx
  type TypeaheadProps (line 8) | type TypeaheadProps = ComponentProps<typeof Typeahead>;
  type TypeaheadOption (line 9) | type TypeaheadOption = TypeaheadProps['options'][number];
  type ExpandedTypeaheadProps (line 11) | type ExpandedTypeaheadProps = Omit<
  function ExpandedTypeahead (line 26) | function ExpandedTypeahead({

FILE: apps/portal/src/components/questions/typeahead/LocationTypeahead.tsx
  type LocationTypeaheadProps (line 11) | type LocationTypeaheadProps = Omit<
  function LocationTypeahead (line 19) | function LocationTypeahead({

FILE: apps/portal/src/components/questions/typeahead/RoleTypeahead.tsx
  type RoleTypeaheadProps (line 8) | type RoleTypeaheadProps = Omit<
  function RoleTypeahead (line 13) | function RoleTypeahead(props: RoleTypeaheadProps) {

FILE: apps/portal/src/components/resumes/ResumePdf.tsx
  type Props (line 13) | type Props = Readonly<{
  function ResumePdf (line 17) | function ResumePdf({ url }: Props) {

FILE: apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeCoolIcon.tsx
  function ResumeBadgeCoolIcon (line 3) | function ResumeBadgeCoolIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeRocketIcon.tsx
  function ResumeBadgeRocketIcon (line 3) | function ResumeBadgeRocketIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeTreasureIcon.tsx
  function ResumeBadgeTreasureIcon (line 3) | function ResumeBadgeTreasureIcon({

FILE: apps/portal/src/components/resumes/badgeIcons/resume-badge.d.ts
  type ResumeBadgeProps (line 1) | type ResumeBadgeProps = Readonly<{

FILE: apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeDetectiveIcon.tsx
  function ResumeBadgeDetectiveIcon (line 3) | function ResumeBadgeDetectiveIcon({

FILE: apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeEagleIcon.tsx
  function ResumeBadgeEagleIcon (line 3) | function ResumeBadgeEagleIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeSuperheroIcon.tsx
  function ResumeBadgeSuperheroIcon (line 3) | function ResumeBadgeSuperheroIcon({

FILE: apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeBookIcon.tsx
  function ResumeBadgeBookIcon (line 3) | function ResumeBadgeBookIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeOwlIcon.tsx
  function ResumeBadgeOwlIcon (line 3) | function ResumeBadgeOwlIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeSageIcon.tsx
  function ResumeBadgeSageIcon (line 3) | function ResumeBadgeSageIcon({ className }: ResumeBadgeProps) {

FILE: apps/portal/src/components/resumes/badges/ResumeUserBadge.tsx
  type Props (line 3) | type Props = Readonly<{
  function ResumeUserBadge (line 9) | function ResumeUserBadge({

FILE: apps/portal/src/components/resumes/badges/ResumeUserBadges.tsx
  type Props (line 7) | type Props = Readonly<{
  constant STALE_TIME (line 11) | const STALE_TIME = 60;
  function ResumeUserBadges (line 13) | function ResumeUserBadges({ userId }: Props) {

FILE: apps/portal/src/components/resumes/badges/resumeBadgeConstants.ts
  type BadgeIcon (line 11) | type BadgeIcon = (
  type BadgeInfo (line 15) | type BadgeInfo = {
  type BadgePayload (line 23) | type BadgePayload = {
  constant TIER_THREE (line 29) | const TIER_THREE = 20;
  constant TIER_TWO (line 30) | const TIER_TWO = 10;
  constant TIER_ONE (line 31) | const TIER_ONE = 5;
  constant RESUME_USER_BADGES (line 33) | const RESUME_USER_BADGES: Array<BadgeInfo> = [

FILE: apps/portal/src/components/resumes/browse/ResumeFilterPill.tsx
  type Props (line 3) | type Props = Readonly<{
  function ResumeFilterPill (line 9) | function ResumeFilterPill({

FILE: apps/portal/src/components/resumes/browse/ResumeListItem.tsx
  type Props (line 19) | type Props = Readonly<{
  function ResumeListItem (line 24) | function ResumeListItem({ href, resumeInfo }: Props) {

FILE: apps/portal/src/components/resumes/browse/ResumeListItems.tsx
  type Props (line 5) | type Props = Readonly<{
  function ResumeListItems (line 9) | function ResumeListItems({ resumes }: Props) {

FILE: apps/portal/src/components/resumes/comments/ResumeCommentListItem.tsx
  type ResumeCommentListItemProps (line 14) | type ResumeCommentListItemProps = Readonly<{
  function ResumeCommentListItem (line 19) | function ResumeCommentListItem({

FILE: apps/portal/src/components/resumes/comments/ResumeCommentsForm.tsx
  type ResumeCommentsFormProps (line 10) | type ResumeCommentsFormProps = Readonly<{
  type IFormInput (line 15) | type IFormInput = {
  type InputKeys (line 23) | type InputKeys = keyof IFormInput;
  function ResumeCommentsForm (line 25) | function ResumeCommentsForm({

FILE: apps/portal/src/components/resumes/comments/ResumeCommentsList.tsx
  type ResumeCommentsListProps (line 20) | type ResumeCommentsListProps = Readonly<{
  function ResumeCommentsList (line 24) | function ResumeCommentsList({

FILE: apps/portal/src/components/resumes/comments/comment/ResumeCommentDeleteForm.tsx
  type ResumeCommentDeleteFormProps (line 6) | type ResumeCommentDeleteFormProps = Readonly<{
  function ResumeCommentDeleteForm (line 12) | function ResumeCommentDeleteForm({

FILE: apps/portal/src/components/resumes/comments/comment/ResumeCommentEditForm.tsx
  type ResumeCommentEditFormProps (line 9) | type ResumeCommentEditFormProps = {
  type ICommentInput (line 14) | type ICommentInput = {
  function ResumeCommentEditForm (line 18) | function ResumeCommentEditForm({

FILE: apps/portal/src/components/resumes/comments/comment/ResumeCommentReplyForm.tsx
  type ResumeCommentEditFormProps (line 10) | type ResumeCommentEditFormProps = {
  type IReplyInput (line 17) | type IReplyInput = {
  function ResumeCommentReplyForm (line 21) | function ResumeCommentReplyForm({

FILE: apps/portal/src/components/resumes/comments/comment/ResumeCommentVoteButtons.tsx
  type ResumeCommentVoteButtonsProps (line 12) | type ResumeCommentVoteButtonsProps = {
  function ResumeCommentVoteButtons (line 17) | function ResumeCommentVoteButtons({

FILE: apps/portal/src/components/resumes/comments/resumeCommentConstants.ts
  constant RESUME_COMMENTS_SECTIONS (line 3) | const RESUME_COMMENTS_SECTIONS = [

FILE: apps/portal/src/components/resumes/landing/CallToAction.tsx
  function CallToAction (line 3) | function CallToAction() {

FILE: apps/portal/src/components/resumes/landing/Container.tsx
  type ContainerProps (line 4) | type ContainerProps = {

FILE: apps/portal/src/components/resumes/landing/Hero.tsx
  function Hero (line 5) | function Hero() {

FILE: apps/portal/src/components/resumes/landing/PrimaryFeatures.tsx
  function PrimaryFeatures (line 32) | function PrimaryFeatures() {

FILE: apps/portal/src/components/resumes/shared/ResumeExpandableText.tsx
  type ResumeExpandableTextProps (line 4) | type ResumeExpandableTextProps = Readonly<{
  function ResumeExpandableText (line 8) | function ResumeExpandableText({

FILE: apps/portal/src/components/resumes/shared/ResumeExperienceTypeahead.tsx
  type BaseProps (line 8) | type BaseProps = Pick<
  type Props (line 18) | type Props = BaseProps &
  function ResumeExperienceTypeahead (line 25) | function ResumeExperienceTypeahead({

FILE: apps/portal/src/components/resumes/shared/ResumeSignInButton.tsx
  type Props (line 6) | type Props = Readonly<{
  function ResumeSignInButton (line 11) | function ResumeSignInButton({ text, className }: Props) {

FILE: apps/portal/src/components/resumes/submit-form/ResumeSubmissionGuidelines.tsx
  function ResumeSubmissionGuidelines (line 1) | function ResumeSubmissionGuidelines() {

FILE: apps/portal/src/components/shared/CitiesTypeahead.tsx
  type BaseProps (line 8) | type BaseProps = Pick<
  type Props (line 18) | type Props = BaseProps &
  function useCityOptions (line 25) | function useCityOptions(query: string) {
  function CitiesTypeahead (line 44) | function CitiesTypeahead({

FILE: apps/portal/src/components/shared/CompaniesTypeahead.tsx
  type BaseProps (line 8) | type BaseProps = Pick<
  type Props (line 18) | type Props = BaseProps &
  function CompaniesTypeahead (line 24) | function CompaniesTypeahead({

FILE: apps/portal/src/components/shared/CompanyProfileImage.tsx
  type Props (line 4) | type Props = Readonly<{
  function CompanyProfileImage (line 10) | function CompanyProfileImage({ alt, className, src }: Props) {

FILE: apps/portal/src/components/shared/Container.tsx
  type Props (line 4) | type Props = Readonly<{
  function Container (line 10) | function Container({

FILE: apps/portal/src/components/shared/CountriesTypeahead.tsx
  type BaseProps (line 8) | type BaseProps = Pick<
  type Props (line 18) | type Props = BaseProps &
  function CountriesTypeahead (line 26) | function CountriesTypeahead({

FILE: apps/portal/src/components/shared/JobTitles.ts
  type JobTitleData (line 1) | type JobTitleData = Record<
  type JobTitleType (line 78) | type JobTitleType = keyof typeof JobTitleLabels;
  function getLabelForJobTitleType (line 80) | function getLabelForJobTitleType(jobTitle: JobTitleType): string {

FILE: apps/portal/src/components/shared/JobTitlesTypeahead.tsx
  type BaseProps (line 8) | type BaseProps = Pick<
  type Props (line 18) | type Props = BaseProps &
  function JobTitlesTypeahead (line 27) | function JobTitlesTypeahead({

FILE: apps/portal/src/components/shared/MonthYearPicker.tsx
  type Month (line 5) | type Month = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
  type MonthYear (line 7) | type MonthYear = Readonly<{
  type MonthYearOptional (line 12) | type MonthYearOptional = Readonly<{
  type Props (line 17) | type Props = Readonly<{
  constant MONTH_OPTIONS (line 28) | const MONTH_OPTIONS = [
  constant NUM_YEARS (line 79) | const NUM_YEARS = 5;
  constant YEAR_OPTIONS (line 80) | const YEAR_OPTIONS = Array.from({ length: NUM_YEARS }, (_, i) => {
  function MonthYearPicker (line 88) | function MonthYearPicker({

FILE: apps/portal/src/components/shared/icons/GitHubIcon.tsx
  function GitHubIcon (line 1) | function GitHubIcon(props: React.ComponentProps<'svg'>) {

FILE: apps/portal/src/components/shared/loginPageHref.ts
  function loginPageHref (line 1) | function loginPageHref(redirectUrl?: string) {

FILE: apps/portal/src/constants/file-storage-keys.ts
  constant RESUME_STORAGE_KEY (line 1) | const RESUME_STORAGE_KEY = 'resumes';

FILE: apps/portal/src/middleware.ts
  function middleware (line 4) | function middleware(request: NextRequest) {

FILE: apps/portal/src/pages/404.tsx
  function Example (line 45) | function Example() {

FILE: apps/portal/src/pages/_app.tsx
  method config (line 46) | config({ ctx: _ctx }) {

FILE: apps/portal/src/pages/_document.tsx
  function Document (line 3) | function Document() {

FILE: apps/portal/src/pages/api/auth/[...nextauth].ts
  method session (line 14) | session({ session, user }) {

FILE: apps/portal/src/pages/api/file-storage.ts
  constant BASE_FILE_URL (line 14) | const BASE_FILE_URL = `${env.SUPABASE_URL}/storage/v1/object/public`;
  function handler (line 16) | async function handler(

FILE: apps/portal/src/pages/index.tsx
  function HomePage (line 30) | function HomePage() {

FILE: apps/portal/src/pages/login.tsx
  function LoginPage (line 20) | function LoginPage({

FILE: apps/portal/src/pages/offers/about.tsx
  function AboutPage (line 32) | function AboutPage() {

FILE: apps/portal/src/pages/offers/admin.tsx
  function OffersHomePage (line 29) | function OffersHomePage({

FILE: apps/portal/src/pages/offers/dashboard.tsx
  function ProfilesDashboard (line 14) | function ProfilesDashboard() {

FILE: apps/portal/src/pages/offers/features.tsx
  function LandingPage (line 84) | function LandingPage() {

FILE: apps/portal/src/pages/offers/index.tsx
  function OffersHomePage (line 29) | function OffersHomePage({

FILE: apps/portal/src/pages/offers/profile/[offerProfileId].tsx
  function OfferProfile (line 28) | function OfferProfile() {

FILE: apps/portal/src/pages/offers/profile/edit/[offerProfileId].tsx
  function OffersEditPage (line 26) | function OffersEditPage({

FILE: apps/portal/src/pages/offers/submit/index.tsx
  function OffersSubmissionPage (line 14) | function OffersSubmissionPage({

FILE: apps/portal/src/pages/offers/submit/result/[offerProfileId].tsx
  function OffersSubmissionResult (line 18) | function OffersSubmissionResult() {

FILE: apps/portal/src/pages/profile.tsx
  function ProfilePage (line 3) | function ProfilePage() {

FILE: apps/portal/src/pages/questions/[questionId]/[questionSlug]/answer/[answerId]/[answerSlug]/index.tsx
  type AnswerCommentData (line 22) | type AnswerCommentData = {
  function QuestionPage (line 26) | function QuestionPage() {

FILE: apps/portal/src/pages/questions/[questionId]/[questionSlug]/index.tsx
  type AnswerQuestionData (line 25) | type AnswerQuestionData = {
  type QuestionCommentData (line 29) | type QuestionCommentData = {
  function QuestionPage (line 33) | function QuestionPage() {

FILE: apps/portal/src/pages/questions/about.tsx
  function AboutPage (line 32) | function AboutPage() {

FILE: apps/portal/src/pages/questions/browse.tsx
  function sortOrderToString (line 42) | function sortOrderToString(value: SortOrder): string | null {
  function sortTypeToString (line 53) | function sortTypeToString(value: SortType): string | null {
  function QuestionsBrowsePage (line 66) | function QuestionsBrowsePage() {

FILE: apps/portal/src/pages/questions/history.tsx
  function HistoryPage (line 5) | function HistoryPage() {

FILE: apps/portal/src/pages/questions/index.tsx
  function QuestionsHomePage (line 10) | function QuestionsHomePage() {

FILE: apps/portal/src/pages/questions/lists.tsx
  function ListPage (line 27) | function ListPage() {

FILE: apps/portal/src/pages/questions/my-questions.tsx
  function MyQuestionsPage (line 5) | function MyQuestionsPage() {

FILE: apps/portal/src/pages/resumes/[resumeId].tsx
  function ResumeReviewPage (line 42) | function ResumeReviewPage() {

FILE: apps/portal/src/pages/resumes/about.tsx
  function AboutUsPage (line 32) | function AboutUsPage() {

FILE: apps/portal/src/pages/resumes/features.tsx
  function Home (line 7) | function Home() {

FILE: apps/portal/src/pages/resumes/index.tsx
  constant STALE_TIME (line 47) | const STALE_TIME = 5 * 60 * 1000;
  constant DEBOUNCE_DELAY (line 48) | const DEBOUNCE_DELAY = 800;
  constant PAGE_LIMIT (line 49) | const PAGE_LIMIT = 10;
  function ResumeHomePage (line 93) | function ResumeHomePage() {

FILE: apps/portal/src/pages/resumes/submit.tsx
  constant FILE_SIZE_LIMIT_MB (line 34) | const FILE_SIZE_LIMIT_MB = 3;
  constant FILE_SIZE_LIMIT_BYTES (line 35) | const FILE_SIZE_LIMIT_BYTES = FILE_SIZE_LIMIT_MB * 1000000;
  constant TITLE_PLACEHOLDER (line 37) | const TITLE_PLACEHOLDER =
  constant ADDITIONAL_INFO_PLACEHOLDER (line 39) | const ADDITIONAL_INFO_PLACEHOLDER = `e.g. I’m applying for company XYZ. ...
  constant FILE_UPLOAD_ERROR (line 40) | const FILE_UPLOAD_ERROR = `Please upload a PDF file that is less than ${...
  type IFormInput (line 42) | type IFormInput = {
  type InputKeys (line 52) | type InputKeys = keyof IFormInput;
  type TypeAheadKeys (line 53) | type TypeAheadKeys = keyof Pick<IFormInput, 'location' | 'role'>;
  type InitFormDetails (line 55) | type InitFormDetails = {
  type Props (line 65) | type Props = Readonly<{
  function SubmitResumeForm (line 70) | function SubmitResumeForm({

FILE: apps/portal/src/pages/settings.tsx
  function SettingsForm (line 11) | function SettingsForm({
  function SettingsPage (line 121) | function SettingsPage() {

FILE: apps/portal/src/pages/test__.tsx
  function HomePage (line 17) | function HomePage() {

FILE: apps/portal/src/pages/todos/index.tsx
  function TodoList (line 8) | function TodoList() {

FILE: apps/portal/src/pages/todos/new.tsx
  function TodosCreate (line 8) | function TodosCreate() {

FILE: apps/portal/src/server/router/companies-router.ts
  method resolve (line 9) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/context.ts
  type CreateContextOptions (line 9) | type CreateContextOptions = {
  type Context (line 41) | type Context = trpc.inferAsyncReturnType<typeof createContext>;
  function createProtectedRouter (line 48) | function createProtectedRouter() {

FILE: apps/portal/src/server/router/index.ts
  type AppRouter (line 78) | type AppRouter = typeof appRouter;

FILE: apps/portal/src/server/router/locations-router.ts
  method resolve (line 10) | async resolve({ ctx, input }) {
  method resolve (line 45) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/offers/offers-admin-router.ts
  method resolve (line 67) | async resolve({ ctx, input }) {
  method resolve (line 483) | async resolve({ ctx }) {

FILE: apps/portal/src/server/router/offers/offers-analysis-router.ts
  method resolve (line 15) | async resolve({ ctx, input }) {
  method resolve (line 37) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/offers/offers-comments-router.ts
  method resolve (line 13) | async resolve({ ctx, input }) {
  method resolve (line 107) | async resolve({ ctx, input }) {
  method resolve (line 200) | async resolve({ ctx, input }) {
  method resolve (line 284) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/offers/offers-profile-router.ts
  method resolve (line 112) | async resolve({ ctx, input }) {
  method resolve (line 128) | async resolve({ ctx, input }) {
  method resolve (line 165) | async resolve({ ctx, input }) {
  method resolve (line 259) | async resolve({ ctx, input }) {
  method resolve (line 686) | async resolve({ ctx, input }) {
  method resolve (line 735) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/offers/offers-user-profile-router.ts
  method resolve (line 18) | async resolve({ ctx, input }) {
  method resolve (line 51) | async resolve({ ctx }) {
  method resolve (line 96) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/offers/offers.ts
  method resolve (line 66) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/protected-example-router.ts
  method resolve (line 6) | resolve({ ctx }) {
  method resolve (line 11) | resolve({ ctx: _ctx }) {

FILE: apps/portal/src/server/router/questions/questions-answer-comment-router.ts
  method resolve (line 19) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-answer-comment-user-router.ts
  method resolve (line 13) | async resolve({ ctx, input }) {
  method resolve (line 32) | async resolve({ ctx, input }) {
  method resolve (line 64) | async resolve({ ctx, input }) {
  method resolve (line 92) | async resolve({ ctx, input }) {
  method resolve (line 107) | async resolve({ ctx, input }) {
  method resolve (line 198) | async resolve({ ctx, input }) {
  method resolve (line 289) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-answer-router.ts
  method resolve (line 19) | async resolve({ ctx, input }) {
  method resolve (line 115) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-answer-user-router.ts
  method resolve (line 13) | async resolve({ ctx, input }) {
  method resolve (line 32) | async resolve({ ctx, input }) {
  method resolve (line 63) | async resolve({ ctx, input }) {
  method resolve (line 90) | async resolve({ ctx, input }) {
  method resolve (line 105) | async resolve({ ctx, input }) {
  method resolve (line 195) | async resolve({ ctx, input }) {
  method resolve (line 285) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-list-router.ts
  method resolve (line 10) | async resolve({ ctx }) {
  method resolve (line 70) | async resolve({ ctx, input }) {
  method resolve (line 136) | async resolve({ ctx, input }) {
  method resolve (line 154) | async resolve({ ctx, input }) {
  method resolve (line 185) | async resolve({ ctx, input }) {
  method resolve (line 213) | async resolve({ ctx, input }) {
  method resolve (line 243) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-comment-router.ts
  method resolve (line 19) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-comment-user-router.ts
  method resolve (line 13) | async resolve({ ctx, input }) {
  method resolve (line 32) | async resolve({ ctx, input }) {
  method resolve (line 65) | async resolve({ ctx, input }) {
  method resolve (line 93) | async resolve({ ctx, input }) {
  method resolve (line 108) | async resolve({ ctx, input }) {
  method resolve (line 199) | async resolve({ ctx, input }) {
  method resolve (line 290) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-encounter-router.ts
  method resolve (line 13) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-encounter-user-router.ts
  method resolve (line 19) | async resolve({ ctx, input }) {
  method resolve (line 72) | async resolve({ ctx, input }) {
  method resolve (line 135) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-router.ts
  method resolve (line 28) | async resolve({ ctx, input }) {
  method resolve (line 181) | async resolve({ ctx, input }) {
  method resolve (line 225) | async resolve({ ctx, input }) {
  method resolve (line 301) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/questions/questions-question-user-router.ts
  method resolve (line 19) | async resolve({ ctx, input }) {
  method resolve (line 75) | async resolve({ ctx, input }) {
  method resolve (line 109) | async resolve({ ctx, input }) {
  method resolve (line 137) | async resolve({ ctx, input }) {
  method resolve (line 152) | async resolve({ ctx, input }) {
  method resolve (line 242) | async resolve({ ctx, input }) {
  method resolve (line 332) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-comments-router.ts
  method resolve (line 11) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-comments-user-router.ts
  type ResumeCommentInput (line 6) | type ResumeCommentInput = Readonly<{
  method resolve (line 23) | async resolve({ ctx, input }) {
  method resolve (line 68) | async resolve({ ctx, input }) {
  method resolve (line 88) | async resolve({ ctx, input }) {
  method resolve (line 105) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-comments-votes-router.ts
  method resolve (line 12) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-comments-votes-user-router.ts
  method resolve (line 12) | async resolve({ ctx, input }) {
  method resolve (line 35) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-resume-router.ts
  method resolve (line 27) | async resolve({ ctx, input }) {
  method resolve (line 195) | async resolve({ ctx, input }) {
  method resolve (line 236) | async resolve({ ctx, input }) {
  method resolve (line 257) | async resolve({ ctx, input }) {
  method resolve (line 283) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-resume-user-router.ts
  method resolve (line 24) | async resolve({ ctx, input }) {
  method resolve (line 57) | async resolve({ ctx, input }) {
  method resolve (line 81) | async resolve({ ctx, input }) {
  method resolve (line 279) | async resolve({ ctx, input }) {
  method resolve (line 443) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/resumes/resumes-star-user-router.ts
  method resolve (line 10) | async resolve({ ctx, input }) {
  method resolve (line 27) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/todos-user-router.ts
  method resolve (line 14) | async resolve({ ctx, input }) {
  method resolve (line 30) | async resolve({ ctx, input }) {
  method resolve (line 47) | async resolve({ ctx, input }) {

FILE: apps/portal/src/server/router/todos.ts
  method resolve (line 4) | async resolve({ ctx }) {

FILE: apps/portal/src/server/router/user-router.ts
  method resolve (line 12) | async resolve({ ctx, input }) {

FILE: apps/portal/src/types/index.d.ts
  type Window (line 5) | interface Window {

FILE: apps/portal/src/types/next-auth.d.ts
  type Session (line 7) | type Session = {

FILE: apps/portal/src/types/offers.d.ts
  type Profile (line 3) | type Profile = {
  type Background (line 14) | type Background = {
  type Experience (line 22) | type Experience = {
  type OffersCompany (line 34) | type OffersCompany = {
  type Valuation (line 44) | type Valuation = {
  type Education (line 52) | type Education = {
  type SpecificYoe (line 61) | type SpecificYoe = {
  type DashboardOffer (line 67) | type DashboardOffer = {
  type ProfileOffer (line 82) | type ProfileOffer = {
  type FullTime (line 94) | type FullTime = {
  type Intern (line 104) | type Intern = {
  type Reply (line 112) | type Reply = {
  type User (line 121) | type User = {
  type GetOffersResponse (line 129) | type GetOffersResponse = {
  type Paging (line 135) | type Paging = {
  type CreateOfferProfileResponse (line 142) | type CreateOfferProfileResponse = {
  type OffersDiscussion (line 147) | type OffersDiscussion = {
  type ProfileAnalysis (line 151) | type ProfileAnalysis = {
  type AnalysisUnit (line 161) | type AnalysisUnit = {
  type AnalysisHighestOffer (line 173) | type AnalysisHighestOffer = {
  type AnalysisOffer (line 181) | type AnalysisOffer = {
  type AddToProfileResponse (line 197) | type AddToProfileResponse = {
  type UserProfile (line 203) | type UserProfile = {
  type UserProfileOffer (line 211) | type UserProfileOffer = {
  type Location (line 222) | type Location = {
  type GetAdminOffersResponse (line 232) | type GetAdminOffersResponse = {
  type AdminDashboardOffer (line 238) | type AdminDashboardOffer = {

FILE: apps/portal/src/types/questions.d.ts
  type Question (line 3) | type Question = {
  type StateInfo (line 17) | type StateInfo = {
  type CountryInfo (line 22) | type CountryInfo = {
  type CityLocation (line 27) | type CityLocation = {
  type StateLocation (line 33) | type StateLocation = {
  type CountryLocation (line 39) | type CountryLocation = {
  type Location (line 45) | type Location = CityLocation | CountryLocation | StateLocation;
  type AggregatedQuestionEncounter (line 47) | type AggregatedQuestionEncounter = {
  type AnswerComment (line 53) | type AnswerComment = {
  type Answer (line 63) | type Answer = {
  type QuestionComment (line 73) | type QuestionComment = {
  type SortOrder (line 82) | enum SortOrder {
  type SortType (line 87) | enum SortType {

FILE: apps/portal/src/types/resume-comments.d.ts
  type ResumeComment (line 7) | type ResumeComment = Readonly<{
  type ResumeCommentVote (line 23) | type ResumeCommentVote = Readonly<{

FILE: apps/portal/src/types/resume.d.ts
  type Resume (line 1) | type Resume = {

FILE: apps/portal/src/ui/Alert/Alert.tsx
  type AlertVariant (line 10) | type AlertVariant = 'danger' | 'info' | 'success' | 'warning';
  type Props (line 12) | type Props = Readonly<{
  function Alert (line 58) | function Alert({ children, title, variant }: Props) {

FILE: apps/portal/src/ui/Badge/Badge.tsx
  type BadgeVariant (line 3) | type BadgeVariant =
  type Props (line 10) | type Props = Readonly<{
  function Badge (line 46) | function Badge({

FILE: apps/portal/src/ui/Banner/Banner.tsx
  type BannerSize (line 5) | type BannerSize = 'md' | 'sm' | 'xs';
  type Props (line 7) | type Props = Readonly<{
  function Banner (line 13) | function Banner({ children, size = 'md', onHide }: Props) {

FILE: apps/portal/src/ui/Button/Button.tsx
  type ButtonAddOnPosition (line 8) | type ButtonAddOnPosition = 'end' | 'start';
  type ButtonDisplay (line 9) | type ButtonDisplay = 'block' | 'inline';
  type ButtonSize (line 10) | type ButtonSize = 'lg' | 'md' | 'sm';
  type ButtonType (line 11) | type ButtonType = 'button' | 'reset' | 'submit';
  type ButtonVariant (line 12) | type ButtonVariant =
  type Props (line 22) | type Props = Readonly<{
  function Button (line 107) | function Button({

FILE: apps/portal/src/ui/CheckboxInput/CheckboxInput.tsx
  type Props (line 6) | type Props = Readonly<{
  function CheckboxInput (line 20) | function CheckboxInput(

FILE: apps/portal/src/ui/CheckboxList/CheckboxList.tsx
  type CheckboxListOrientation (line 6) | type CheckboxListOrientation = 'horizontal' | 'vertical';
  type Props (line 8) | type Props = Readonly<{
  function CheckboxList (line 16) | function CheckboxList({

FILE: apps/portal/src/ui/Collapsible/Collapsible.tsx
  type Props (line 6) | type Props = Readonly<{
  function Collapsible (line 12) | function Collapsible({ children, defaultOpen, label }: Props) {

FILE: apps/portal/src/ui/Dialog/Dialog.tsx
  type Props (line 5) | type Props = Readonly<{
  function Dialog (line 15) | function Dialog({

FILE: apps/portal/src/ui/DropdownMenu/DropdownMenu.tsx
  type DropdownMenuAlignment (line 8) | type DropdownMenuAlignment = 'end' | 'start';
  type DropdownMenuSize (line 9) | type DropdownMenuSize = 'lg' | 'md' | 'sm';
  type Props (line 11) | type Props = Readonly<{
  function DropdownMenu (line 49) | function DropdownMenu({

FILE: apps/portal/src/ui/DropdownMenu/DropdownMenuItem.tsx
  type Props (line 5) | type Props = Readonly<{
  function DropdownMenuItem (line 12) | function DropdownMenuItem({

FILE: apps/portal/src/ui/HorizontalDivider/HorizontalDivider.tsx
  type Props (line 3) | type Props = Readonly<{
  function HorizontalDivider (line 7) | function HorizontalDivider({ className }: Props) {

FILE: apps/portal/src/ui/Pagination/Pagination.tsx
  type Props (line 5) | type Props = Readonly<{
  function PaginationPage (line 14) | function PaginationPage({
  function PaginationEllipsis (line 40) | function PaginationEllipsis() {
  function Pagination (line 48) | function Pagination({

FILE: apps/portal/src/ui/RadioList/RadioList.tsx
  type RadioListOrientation (line 8) | type RadioListOrientation = 'horizontal' | 'vertical';
  type Props (line 10) | type Props<T> = Readonly<{
  function RadioList (line 25) | function RadioList<T>({

FILE: apps/portal/src/ui/RadioList/RadioListContext.ts
  type RadioListContextValue (line 4) | type RadioListContextValue<T = unknown> = {
  function useRadioListContext (line 16) | function useRadioListContext<T>(): RadioListContextValue<T> | null {

FILE: apps/portal/src/ui/RadioList/RadioListItem.tsx
  type Props (line 6) | type Props<T> = Readonly<{
  function RadioListItem (line 13) | function RadioListItem<T>({

FILE: apps/portal/src/ui/Select/Select.tsx
  type Attributes (line 6) | type Attributes = Pick<
  type SelectItem (line 11) | type SelectItem<T> = Readonly<{
  type SelectDisplay (line 16) | type SelectDisplay = 'block' | 'inline';
  type SelectBorderStyle (line 17) | type SelectBorderStyle = 'bordered' | 'borderless';
  type Props (line 19) | type Props<T> = Readonly<{
  type State (line 39) | type State = 'error' | 'normal';
  function Select (line 47) | function Select<T>(

FILE: apps/portal/src/ui/SlideOut/SlideOut.tsx
  type SlideOutSize (line 6) | type SlideOutSize = 'lg' | 'md' | 'sm' | 'xl';
  type SlideOutEnterFrom (line 7) | type SlideOutEnterFrom = 'end' | 'start';
  type Props (line 9) | type Props = Readonly<{
  function SlideOut (line 42) | function SlideOut({

FILE: apps/portal/src/ui/Spinner/Spinner.tsx
  type SpinnerColor (line 3) | type SpinnerColor = 'default' | 'inherit';
  type SpinnerSize (line 4) | type SpinnerSize = 'lg' | 'md' | 'sm' | 'xs';
  type SpinnerDisplay (line 5) | type SpinnerDisplay = 'block' | 'inline';
  type Props (line 7) | type Props = Readonly<{
  function Spinner (line 27) | function Spinner({

FILE: apps/portal/src/ui/Tabs/Tabs.tsx
  type TabItem (line 5) | type TabItem<T> = Readonly<{
  type Props (line 11) | type Props<T> = Readonly<{
  function Tabs (line 18) | function Tabs<T>({ label, tabs, value, onChange }: Props<T>) {

FILE: apps/portal/src/ui/TextArea/TextArea.tsx
  type Attributes (line 10) | type Attributes = Pick<
  type TextAreaResize (line 26) | type TextAreaResize = 'both' | 'horizontal' | 'none' | 'vertical';
  type Props (line 28) | type Props = Readonly<{
  type State (line 42) | type State = 'error' | 'normal';
  function TextArea (line 67) | function TextArea(

FILE: apps/portal/src/ui/TextInput/TextInput.tsx
  type Attributes (line 10) | type Attributes = Pick<
  type StartAddOnProps (line 27) | type StartAddOnProps =
  type EndAddOnProps (line 45) | type EndAddOnProps =
  type BaseProps (line 63) | type BaseProps = Readonly<{
  type Props (line 77) | type Props = BaseProps & EndAddOnProps & StartAddOnProps;
  type State (line 79) | type State = 'error' | 'normal';
  function TextInput (line 100) | function TextInput(

FILE: apps/portal/src/ui/Toast/Toast.tsx
  type ToastVariant (line 6) | type ToastVariant = 'failure' | 'success';
  type ToastMessage (line 8) | type ToastMessage = {
  type Props (line 15) | type Props = Readonly<{
  constant DEFAULT_DURATION (line 23) | const DEFAULT_DURATION = 5000;
  function ToastIcon (line 25) | function ToastIcon({ variant }: Readonly<{ variant: ToastVariant }>) {
  function Toast (line 38) | function Toast({

FILE: apps/portal/src/ui/Toast/ToastsProvider.tsx
  type Context (line 6) | type Context = Readonly<{
  type ToastData (line 23) | type ToastData = ToastMessage & {
  type Props (line 27) | type Props = Readonly<{
  function useToast (line 31) | function useToast() {
  function ToastsProvider (line 35) | function ToastsProvider({ children }: Props) {

FILE: apps/portal/src/ui/Typeahead/Typeahead.tsx
  type TypeaheadOption (line 10) | type TypeaheadOption = Readonly<{
  type TypeaheadTextSize (line 16) | type TypeaheadTextSize = 'default' | 'inherit';
  type Attributes (line 18) | type Attributes = Pick<
  type Props (line 29) | type Props = Readonly<{
  type State (line 57) | type State = 'error' | 'normal';
  function Typeahead (line 83) | function Typeahead({

FILE: apps/portal/src/utils/JobExperienceLevel.ts
  type JobExperienceLevel (line 1) | enum JobExperienceLevel {
  function yearsOfExperienceToLevel (line 7) | function yearsOfExperienceToLevel(years: number): Readonly<{

FILE: apps/portal/src/utils/offers/analysis/analysisGeneration.ts
  type Analysis (line 25) | type Analysis =
  type Offer (line 117) | type Offer = OffersOffer & {
  type SimilarOffer (line 132) | type SimilarOffer = OffersOffer & {

FILE: apps/portal/src/utils/offers/currency/CurrencyEnum.tsx
  type Currency (line 1) | enum Currency {
  constant CURRENCY_OPTIONS (line 168) | const CURRENCY_OPTIONS = Object.entries(Currency).map(
  function getCurrencyForCountry (line 175) | function getCurrencyForCountry(

FILE: apps/portal/src/utils/offers/currency/CurrencySelector.tsx
  type Props (line 10) | type Props = Readonly<{
  function CurrencySelector (line 15) | function CurrencySelector({

FILE: apps/portal/src/utils/offers/currency/index.tsx
  function convertMoneyToString (line 7) | function convertMoneyToString(money: Money | undefined) {

FILE: apps/portal/src/utils/offers/form.tsx
  function cleanObject (line 11) | function cleanObject(object: any) {
  function removeEmptyObjects (line 42) | function removeEmptyObjects(object: any) {
  function removeInvalidMoneyData (line 70) | function removeInvalidMoneyData(object: any) {
  function validatePositiveNumber (line 91) | function validatePositiveNumber(v?: number | null) {

FILE: apps/portal/src/utils/offers/link.tsx
  function getProfileLink (line 1) | function getProfileLink(profileId: string, token?: string) {
  function copyProfileLink (line 5) | function copyProfileLink(profileId: string, token?: string) {
  function getProfilePath (line 9) | function getProfilePath(profileId: string, token?: string) {
  function getProfileEditPath (line 16) | function getProfileEditPath(profileId: string, token: string) {

FILE: apps/portal/src/utils/offers/randomGenerator.ts
  function generateRandomName (line 19) | async function generateRandomName(): Promise<string> {
  function generateRandomStringForToken (line 48) | function generateRandomStringForToken(): string {

FILE: apps/portal/src/utils/offers/randomNameGenerator.ts
  function generateRandomName (line 18) | async function generateRandomName(): Promise<string> {

FILE: apps/portal/src/utils/offers/string.tsx
  function joinWithComma (line 7) | function joinWithComma(...strings: Array<string | null | undefined>) {
  function getLocationDisplayText (line 11) | function getLocationDisplayText({ cityName, countryName }: Location) {
  function getCompanyDisplayText (line 17) | function getCompanyDisplayText(
  function getJobDisplayText (line 27) | function getJobDisplayText(

FILE: apps/portal/src/utils/offers/time.tsx
  function formatDate (line 5) | function formatDate(value: Date | number | string) {
  function getCurrentMonth (line 12) | function getCurrentMonth() {
  function getCurrentYear (line 17) | function getCurrentYear() {
  function convertToMonthYear (line 21) | function convertToMonthYear(date: Date) {
  function getDurationDisplayText (line 25) | function getDurationDisplayText(months: number) {

FILE: apps/portal/src/utils/offers/useSearchParam.ts
  type SearchParamOptions (line 4) | type SearchParamOptions<Value> = [Value] extends [string]

FILE: apps/portal/src/utils/questions/RequireAllOrNone.ts
  type RequireAllOrNone (line 1) | type RequireAllOrNone<T> = T | { [K in keyof T]?: never };

FILE: apps/portal/src/utils/questions/companySlug.ts
  function companyOptionToSlug (line 6) | function companyOptionToSlug(option: FilterChoice): string {
  function slugToCompanyOption (line 10) | function slugToCompanyOption(slug: string): FilterOption {

FILE: apps/portal/src/utils/questions/constants.ts
  constant APP_TITLE (line 7) | const APP_TITLE = 'Questions Bank';
  constant COMPANIES (line 9) | const COMPANIES: FilterChoices = [
  constant QUESTION_TYPES (line 23) | const QUESTION_TYPES: FilterChoices<QuestionsQuestionType> = [
  type QuestionAge (line 46) | type QuestionAge = 'all' | 'last-6-months' | 'last-month' | 'last-year';
  constant QUESTION_AGES (line 48) | const QUESTION_AGES: FilterChoices<QuestionAge> = [
  constant SORT_ORDERS (line 71) | const SORT_ORDERS = [
  constant SORT_TYPES (line 82) | const SORT_TYPES = [
  constant QUESTION_SORT_TYPES (line 93) | const QUESTION_SORT_TYPES = [
  constant SAMPLE_QUESTION (line 108) | const SAMPLE_QUESTION = {
  constant SAMPLE_ANSWER (line 126) | const SAMPLE_ANSWER = {
  constant SAMPLE_QUESTION_COMMENT (line 135) | const SAMPLE_QUESTION_COMMENT = {
  constant SAMPLE_ANSWER_COMMENT (line 143) | const SAMPLE_ANSWER_COMMENT = {

FILE: apps/portal/src/utils/questions/createSlug.ts
  function createSlug (line 1) | function createSlug(content: string) {

FILE: apps/portal/src/utils/questions/locationSlug.ts
  function locationOptionToSlug (line 5) | function locationOptionToSlug(

FILE: apps/portal/src/utils/questions/mutations.ts
  function useAddQuestionToListAsync (line 5) | function useAddQuestionToListAsync() {
  function useRemoveQuestionFromListAsync (line 26) | function useRemoveQuestionFromListAsync() {
  function useCreateListAsync (line 41) | function useCreateListAsync() {
  function useDeleteListAsync (line 61) | function useDeleteListAsync() {

FILE: apps/portal/src/utils/questions/relabelQuestionAggregates.ts
  function relabelQuestionAggregates (line 6) | function relabelQuestionAggregates({

FILE: apps/portal/src/utils/questions/server/aggregate-encounters.ts
  type AggregatableEncounters (line 17) | type AggregatableEncounters = Array<{
  type QuestionWithAggregatableData (line 26) | type QuestionWithAggregatableData = QuestionsQuestion & {
  function createQuestionWithAggregateData (line 38) | function createQuestionWithAggregateData(
  function createAggregatedQuestionEncounter (line 76) | function createAggregatedQuestionEncounter(

FILE: apps/portal/src/utils/questions/useDefaultCompany.ts
  function useDefaultCompany (line 5) | function useDefaultCompany(): FilterChoice | undefined {

FILE: apps/portal/src/utils/questions/useDefaultLocation.ts
  function useDefaultLocation (line 7) | function useDefaultLocation():

FILE: apps/portal/src/utils/questions/useLocationOptions.ts
  function useLocationOptions (line 5) | function useLocationOptions(query: string) {

FILE: apps/portal/src/utils/questions/useSearchParam.ts
  type SearchParamOptions (line 4) | type SearchParamOptions<Value> = [Value] extends [string]

FILE: apps/portal/src/utils/questions/vote/useAnswerCommentVote.ts
  function useAnswerCommentVote (line 9) | function useAnswerCommentVote(id: string) {

FILE: apps/portal/src/utils/questions/vote/useAnswerVote.ts
  function useAnswerVote (line 9) | function useAnswerVote(id: string) {

FILE: apps/portal/src/utils/questions/vote/useQuestionCommentVote.ts
  function useQuestionCommentVote (line 9) | function useQuestionCommentVote(id: string) {

FILE: apps/portal/src/utils/questions/vote/useVote.ts
  type UseVoteOptions (line 7) | type UseVoteOptions = {
  type BackendVote (line 13) | type BackendVote = {
  type MutationKey (line 45) | type MutationKey = Parameters<typeof trpc.useMutation>[0];
  type QueryKey (line 46) | type QueryKey = Parameters<typeof trpc.useQuery>[0][0];
  type RevertFunction (line 58) | type RevertFunction = () => void;
  type InvalidateFunction (line 60) | type InvalidateFunction = (voteValueChange: number) => Promise<RevertFun...
  type VoteProps (line 62) | type VoteProps<VoteQueryKey extends QueryKey = QueryKey> = {
  type UseVoteMutationContext (line 72) | type UseVoteMutationContext = {
  function useVote (line 78) | function useVote<VoteQueryKey extends QueryKey = QueryKey>(

FILE: apps/portal/src/utils/resumes/resumeFilters.ts
  type FilterId (line 7) | type FilterId = 'experience' | 'location' | 'role';
  type FilterCounts (line 8) | type FilterCounts = Record<FilterId, Record<string, number>>;
  type CustomFilter (line 10) | type CustomFilter = {
  type FilterOption (line 15) | type FilterOption<T> = {
  type Filter (line 20) | type Filter = {
  type FilterState (line 25) | type FilterState = CustomFilter &
  type SortOrder (line 28) | type SortOrder = 'latest' | 'mostComments' | 'popular';
  type Shortcut (line 30) | type Shortcut = {
  constant BROWSE_TABS_VALUES (line 62) | const BROWSE_TABS_VALUES = {
  constant SORT_OPTIONS (line 68) | const SORT_OPTIONS: Array<FilterOption<SortOrder>> = [
  constant EXPERIENCES (line 74) | const EXPERIENCES: Array<TypeaheadOption> = [
  constant INITIAL_FILTER_STATE (line 97) | const INITIAL_FILTER_STATE: FilterState = {
  constant SHORTCUTS (line 105) | const SHORTCUTS: Array<Shortcut> = [

FILE: apps/portal/src/utils/resumes/resumePrismaUtils.ts
  function resumeGetFilterCounts (line 3) | function resumeGetFilterCounts(data: Array<Resume>) {

FILE: apps/portal/src/utils/resumes/useDebounceValue.ts
  function useDebounceValue (line 3) | function useDebounceValue(value: string, delay: number) {

FILE: apps/portal/src/utils/shared/useCompanyOptions.ts
  function useCompanyOptions (line 3) | function useCompanyOptions(query: string) {

FILE: apps/portal/src/utils/shared/useCountryOptions.ts
  function stringPositionComparator (line 5) | function stringPositionComparator(a: string, b: string, query: string): ...
  function useCompareCountry (line 15) | function useCompareCountry(query: string) {
  function useCountryOptions (line 29) | function useCountryOptions(query: string) {

FILE: apps/portal/src/utils/shared/useJobTitleOptions.ts
  function useJobTitleOptions (line 12) | function useJobTitleOptions(query: string) {

FILE: apps/portal/src/utils/trpc.ts
  type inferQueryOutput (line 13) | type inferQueryOutput<
  type inferQueryInput (line 17) | type inferQueryInput<
  type inferMutationOutput (line 21) | type inferMutationOutput<
  type inferMutationInput (line 25) | type inferMutationInput<

FILE: apps/website/contents/_components/InDocAd.js
  function InDocAd (line 4) | function InDocAd() {

FILE: apps/website/contents/_components/QuestionList.js
  function DifficultyLabel (line 5) | function DifficultyLabel({ difficulty }) {
  function QuestionList (line 21) | function QuestionList() {

FILE: apps/website/experimental/utilities/javascript/binToInt.js
  function binToInt (line 2) | function binToInt(binary) {

FILE: apps/website/experimental/utilities/javascript/binarySearch.js
  function binarySearch (line 1) | function binarySearch(arr, target) {

FILE: apps/website/experimental/utilities/javascript/deepEqual.js
  function deepEqual (line 1) | function deepEqual(val1, val2) {

FILE: apps/website/experimental/utilities/javascript/graphTopoSort.js
  function graphTopoSort (line 1) | function graphTopoSort(numberNodes, edges) {

FILE: apps/website/experimental/utilities/javascript/intToBin.js
  function intToBin (line 2) | function intToBin(number) {

FILE: apps/website/experimental/utilities/javascript/intervalsIntersect.js
  function intervalsIntersect (line 2) | function intervalsIntersect(a, b) {

FILE: apps/website/experimental/utilities/javascript/intervalsMerge.js
  function intervalsMerge (line 3) | function intervalsMerge(a, b) {

FILE: apps/website/experimental/utilities/javascript/isSubsequence.js
  function isSubsequence (line 1) | function isSubsequence(s, t) {

FILE: apps/website/experimental/utilities/javascript/matrixClone.js
  function matrixClone (line 1) | function matrixClone(matrix, defaultValue) {

FILE: apps/website/experimental/utilities/javascript/matrixTranspose.js
  function matrixTranspose (line 1) | function matrixTranspose(matrix) {

FILE: apps/website/experimental/utilities/javascript/matrixTraverse.js
  function traverse (line 1) | function traverse(matrix) {

FILE: apps/website/experimental/utilities/javascript/mergeSort.js
  function mergeSort (line 1) | function mergeSort(arr) {
  function merge (line 13) | function merge(arr1, arr2) {

FILE: apps/website/experimental/utilities/javascript/treeEqual.js
  function treeEqual (line 1) | function treeEqual(node1, node2) {

FILE: apps/website/experimental/utilities/javascript/treeMirror.js
  function treeMirror (line 1) | function treeMirror(node) {

FILE: apps/website/experimental/utilities/python/binary_search.py
  function binary_search (line 1) | def binary_search(arr, target):
  function bisect_left (line 14) | def bisect_left(arr, target):
  function bisect_right (line 27) | def bisect_right(arr, target):

FILE: apps/website/experimental/utilities/python/char_prime_map.py
  function mul (line 13) | def mul(seq):
  function prime_value_of_string (line 16) | def prime_value_of_string(string):

FILE: apps/website/experimental/utilities/python/graph_dfs.py
  function graph_dfs (line 1) | def graph_dfs(matrix):
  function graph_dfs_diagonals_and_boundary_wrap (line 23) | def graph_dfs_diagonals_and_boundary_wrap(matrix):

FILE: apps/website/experimental/utilities/python/graph_topo_sort.py
  function graph_topo_sort (line 1) | def graph_topo_sort(num_nodes, edges):

FILE: apps/website/experimental/utilities/python/heap.py
  function _bubble_up (line 7) | def _bubble_up(heap, i):
  function _bubble_down (line 16) | def _bubble_down(heap, i):
  function heapify (line 37) | def heapify(lst):
  function heappush (line 41) | def heappush(heap, item):
  function heappop (line 45) | def heappop(heap):

FILE: apps/website/experimental/utilities/python/is_subsequence.py
  function is_subsequence (line 1) | def is_subsequence(s, t):

FILE: apps/website/experimental/utilities/python/linked_list.py
  class LinkedListNode (line 6) | class LinkedListNode:
    method __init__ (line 7) | def __init__(self, value):
  function linked_list_append (line 11) | def linked_list_append(linked_list, value):
  function linked_list_insert_index (line 22) | def linked_list_insert_index(linked_list, value, index):
  function linked_list_delete (line 41) | def linked_list_delete(linked_list, value):
  function linked_list_delete_index (line 57) | def linked_list_delete_index(linked_list, index):
  function linked_list_iter (line 75) | def linked_list_iter(linked_list):

FILE: apps/website/experimental/utilities/python/quick_select.py
  function partition (line 5) | def partition(array, start, end, pivot):
  function partition_first (line 17) | def partition_first(array, start, end):
  function quick_select (line 33) | def quick_select(array, k):

FILE: apps/website/experimental/utilities/python/rabin_karp_hash.py
  function rk_hash_init (line 14) | def rk_hash_init(tpl):
  function rk_hash_update (line 18) | def rk_hash_update(curr_hash, size, add_n, rem_n):

FILE: apps/website/experimental/utilities/python/tree_equal.py
  function tree_equal (line 1) | def tree_equal(node1, node2):

FILE: apps/website/experimental/utilities/python/tree_mirror.py
  function tree_mirror (line 1) | def tree_mirror(node):

FILE: apps/website/experimental/utilities/python/tree_traversal.py
  function inorder_traversal (line 2) | def inorder_traversal(root):
  function preorder_traversal (line 23) | def preorder_traversal(root):
  function postorder_traversal (line 41) | def postorder_traversal(root):

FILE: apps/website/experimental/utilities/python/trie.py
  class Trie (line 1) | class Trie(object):
    method __init__ (line 2) | def __init__(self):
    method insert (line 8) | def insert(self, word):
    method search (line 21) | def search(self, word):
    method startsWith (line 35) | def startsWith(self, prefix):
    method searchRegex (line 49) | def searchRegex(self, word):

FILE: apps/website/experimental/utilities/python/union_find.py
  function find_root (line 7) | def find_root(parents, p):
  function union (line 17) | def union(parents, p, q):

FILE: apps/website/functions/grind75/[[catchall]].js
  constant SOURCE_HOST (line 1) | const SOURCE_HOST = 'https://grind75.pages.dev';
  function onRequest (line 3) | async function onRequest(context) {

FILE: apps/website/src/components/SidebarAd/index.js
  constant AD_REFRESH_RATE (line 8) | const AD_REFRESH_RATE = 20 * 1000;
  function FAANGTechLeads (line 10) | function FAANGTechLeads({ position }) {
  function GreatFrontEnd (line 32) | function GreatFrontEnd({ position }) {
  function DesignGurusSystemDesign (line 51) | function DesignGurusSystemDesign({ position }) {
  function ByteByteGoSystemDesign (line 71) | function ByteByteGoSystemDesign({ position }) {

FILE: apps/website/src/pages/index.js
  constant BLIND_75_URL (line 11) | const BLIND_75_URL =
  constant FEATURES (line 14) | const FEATURES = [
  function Tweet (line 85) | function Tweet({ url, handle, name, content, avatar, date }) {
  function Home (line 109) | function Home() {
  function HeroSection (line 129) | function HeroSection() {
  function WhatIsThisSection (line 176) | function WhatIsThisSection() {
  function HowToUseStep (line 226) | function HowToUseStep({ index, title, ctaLink, contents }) {
  function HowToUseSection (line 251) | function HowToUseSection() {
  function FeaturesSection (line 340) | function FeaturesSection() {
  function FAANGTechLeadsSection (line 387) | function FAANGTechLeadsSection() {
  function GreatFrontEndSection (line 424) | function GreatFrontEndSection() {
  function TweetsSection (line 477) | function TweetsSection() {
  function SuccessStory (line 652) | function SuccessStory({ name, quote, thumbnail, title }) {
  function SuccessStoriesSection (line 671) | function SuccessStoriesSection() {
  function SponsorshipSection (line 721) | function SponsorshipSection() {
  function PreFooterSection (line 784) | function PreFooterSection() {

FILE: apps/website/src/theme/DocItem/Content/index.js
  function useSyntheticTitle (line 18) | function useSyntheticTitle() {
  function DocItemContent (line 27) | function DocItemContent({ children }) {

FILE: apps/website/src/theme/DocItem/Layout/index.js
  function useDocTOC (line 19) | function useDocTOC() {
  function DocItemLayout (line 35) | function DocItemLayout({ children }) {

FILE: apps/website/src/theme/DocSidebar/Mobile/index.js
  function DocSidebarMobile (line 36) | function DocSidebarMobile(props) {

FILE: apps/website/src/theme/TOC/index.js
  constant LINK_CLASS_NAME (line 8) | const LINK_CLASS_NAME = 'table-of-contents__link toc-highlight';
  constant LINK_ACTIVE_CLASS_NAME (line 9) | const LINK_ACTIVE_CLASS_NAME = 'table-of-contents__link--active';
  function TOC (line 11) | function TOC({ className, ...props }) {
Condensed preview — 505 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (6,572K chars).
[
  {
    "path": ".editorconfig",
    "chars": 160,
    "preview": "root = true\n\n[*]\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.{js,py}]\ncharset = utf"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 106,
    "preview": "github: [yangshun]\nopen_collective: tech-interview-handbook\ncustom: https://www.buymeacoffee.com/yangshun\n"
  },
  {
    "path": ".github/workflows/lint.yml",
    "chars": 658,
    "preview": "# Workspace validation using Vite+\nname: Check\n\non:\n  pull_request:\n    branches:\n      - main\n\nconcurrency:\n  group: ${"
  },
  {
    "path": ".github/workflows/tsc.yml",
    "chars": 1032,
    "preview": "# Framework builds using Vite+ task orchestration\nname: Build\n\non:\n  pull_request:\n    branches:\n      - main\n\nconcurren"
  },
  {
    "path": ".gitignore",
    "chars": 218,
    "preview": ".idea\n.DS_Store\nnode_modules\n.turbo\n*.log\n.next\ndist\ndist-ssr\n*.local\n.env\n.cache\nserver/dist\npublic/dist\n.turbo\n\n.yarn/"
  },
  {
    "path": ".vite-hooks/pre-commit",
    "chars": 10,
    "preview": "vp staged\n"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 44,
    "preview": "{\n  \"recommendations\": [\"oxc.oxc-vscode\"]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 614,
    "preview": "{\n  \"files.trimFinalNewlines\": true,\n  \"files.trimTrailingWhitespace\": true,\n  \"cSpell.autoFormatConfigFile\": true,\n  \"e"
  },
  {
    "path": "AGENTS.md",
    "chars": 4153,
    "preview": "<!--VITE PLUS START-->\n\n# Using Vite+, the Unified Toolchain for the Web\n\nThis project is using Vite+, a unified toolcha"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 263,
    "preview": "# Code of Conduct\n\nWe have adopted the same Code of Conduct as Facebook that we expect project participants to adhere to"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 427,
    "preview": "## Contributing\n\nWhen contributing to this repository, if it is a non-trivial change, please first discuss the change yo"
  },
  {
    "path": "LICENSE",
    "chars": 1077,
    "preview": "MIT License\n\nCopyright (c) 2017-Present Yangshun Tay\n\nPermission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "README.md",
    "chars": 10590,
    "preview": "<h1 align=\"center\">Tech Interview Handbook</h1>\n\n<div align=\"center\">\n  <a href=\"https://www.techinterviewhandbook.org/\""
  },
  {
    "path": "algorithms/README.md",
    "chars": 161,
    "preview": "# Algorithms\n\nThe contents have been moved to the [website](https://www.techinterviewhandbook.org/algorithms/study-cheat"
  },
  {
    "path": "apps/portal/.gitignore",
    "chars": 432,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "apps/portal/README.md",
    "chars": 2748,
    "preview": "# Create T3 App\n\nThis is an app bootstrapped according to the [init.tips](https://init.tips) stack, also known as the T3"
  },
  {
    "path": "apps/portal/next-env.d.ts",
    "chars": 201,
    "preview": "/// <reference types=\"next\" />\n/// <reference types=\"next/image-types/global\" />\n\n// NOTE: This file should not be edite"
  },
  {
    "path": "apps/portal/next.config.mjs",
    "chars": 502,
    "preview": "import './src/env/server.mjs';\n\n/**\n * Don't be scared of the generics here.\n * All they do is to give us autocompletion"
  },
  {
    "path": "apps/portal/package.json",
    "chars": 1976,
    "preview": "{\n  \"name\": \"@tih/portal\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \""
  },
  {
    "path": "apps/portal/postcss.config.cjs",
    "chars": 83,
    "preview": "module.exports = {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n};\n"
  },
  {
    "path": "apps/portal/prisma/companies.csv",
    "chars": 21961,
    "preview": "name,slug,website,logoUrl,description,finalized\r\n3forge,3forge,3forge.com,https://logo.clearbit.com/3forge.com,,TRUE\r\n99"
  },
  {
    "path": "apps/portal/prisma/data/cities.json",
    "chars": 3575720,
    "preview": "{\n  \"data\": [\n    { \"city_id\": \"1\", \"city_name\": \"Bombuflat\", \"state_id\": \"1\" },\n    { \"city_id\": \"2\", \"city_name\": \"Gar"
  },
  {
    "path": "apps/portal/prisma/data/countries.json",
    "chars": 19792,
    "preview": "{\n  \"data\": [\n    { \"country_id\": \"1\", \"sortname\": \"AF\", \"country_name\": \"Afghanistan\" },\n    { \"country_id\": \"2\", \"sort"
  },
  {
    "path": "apps/portal/prisma/data/states.json",
    "chars": 318544,
    "preview": "{\n  \"data\": [\n    {\n      \"state_id\": \"1\",\n      \"state_name\": \"Andaman and Nicobar Islands\",\n      \"country_id\": \"101\"\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20220928103800_init/migration.sql",
    "chars": 1923,
    "preview": "-- CreateTable\nCREATE TABLE \"Example\" (\n    \"id\" TEXT NOT NULL,\n\n    CONSTRAINT \"Example_pkey\" PRIMARY KEY (\"id\")\n);\n\n--"
  },
  {
    "path": "apps/portal/prisma/migrations/20221002033341_add_todos/migration.sql",
    "chars": 726,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the `Example` table. If the table is not empty, all the data it contains will "
  },
  {
    "path": "apps/portal/prisma/migrations/20221006024246_add_companies/migration.sql",
    "chars": 394,
    "preview": "-- CreateTable\nCREATE TABLE \"Company\" (\n    \"id\" TEXT NOT NULL,\n    \"name\" TEXT NOT NULL,\n    \"slug\" TEXT NOT NULL,\n    "
  },
  {
    "path": "apps/portal/prisma/migrations/20221006090216_add_resume_schemas/migration.sql",
    "chars": 2761,
    "preview": "-- CreateEnum\nCREATE TYPE \"ResumesSection\" AS ENUM ('GENERAL', 'EDUCATION', 'EXPERIENCE', 'PROJECTS', 'SKILLS');\n\n-- Cre"
  },
  {
    "path": "apps/portal/prisma/migrations/20221007062555_add_resume_profile_model/migration.sql",
    "chars": 3815,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `userId` on the `ResumesComment` table. All the data in the column "
  },
  {
    "path": "apps/portal/prisma/migrations/20221007110225_add_questions_model/migration.sql",
    "chars": 7086,
    "preview": "-- CreateEnum\nCREATE TYPE \"QuestionsVote\" AS ENUM ('NO_VOTE', 'UPVOTE', 'DOWNVOTE');\n\n-- CreateTable\nCREATE TABLE \"Quest"
  },
  {
    "path": "apps/portal/prisma/migrations/20221007135344_remove_resumes_profile_model/migration.sql",
    "chars": 3650,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `resumesProfileId` on the `ResumesComment` table. All the data in t"
  },
  {
    "path": "apps/portal/prisma/migrations/20221008090846_add_question_types/migration.sql",
    "chars": 383,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `questionType` to the `QuestionsQuestion` table without a default value. T"
  },
  {
    "path": "apps/portal/prisma/migrations/20221008114522_add_questions_company_loaction_role/migration.sql",
    "chars": 656,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `company` to the `QuestionsQuestionEncounter` table without a default valu"
  },
  {
    "path": "apps/portal/prisma/migrations/20221008165306_update_vote_enum/migration.sql",
    "chars": 1373,
    "preview": "/*\n  Warnings:\n\n  - Changed the type of `vote` on the `QuestionsAnswerCommentVote` table. No cast exists, the column wou"
  },
  {
    "path": "apps/portal/prisma/migrations/20221009093357_update_question_encounter_schema/migration.sql",
    "chars": 276,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `seenAt` to the `QuestionsQuestionEncounter` table without a default value"
  },
  {
    "path": "apps/portal/prisma/migrations/20221009160601_/migration.sql",
    "chars": 7564,
    "preview": "-- CreateEnum\nCREATE TYPE \"JobType\" AS ENUM ('INTERN', 'FULLTIME');\n\n-- CreateTable\nCREATE TABLE \"OffersProfile\" (\n    \""
  },
  {
    "path": "apps/portal/prisma/migrations/20221010055218_update_question_encounter_to_use_company_id/migration.sql",
    "chars": 637,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `company` on the `QuestionsQuestionEncounter` table. All the data i"
  },
  {
    "path": "apps/portal/prisma/migrations/20221011042156_/migration.sql",
    "chars": 6360,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `isAttending` on the `OffersEducation` table. All the data in the c"
  },
  {
    "path": "apps/portal/prisma/migrations/20221012161857_add_user_to_replies/migration.sql",
    "chars": 399,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `creator` on the `OffersReply` table. All the data in the column wi"
  },
  {
    "path": "apps/portal/prisma/migrations/20221013032033_update_resume_vote_to_enum/migration.sql",
    "chars": 323,
    "preview": "/*\n  Warnings:\n\n  - Changed the type of `value` on the `ResumesCommentVote` table. No cast exists, the column would be d"
  },
  {
    "path": "apps/portal/prisma/migrations/20221014192315_/migration.sql",
    "chars": 2228,
    "preview": "-- CreateTable\nCREATE TABLE \"OffersAnalysis\" (\n    \"id\" TEXT NOT NULL,\n    \"profileId\" TEXT NOT NULL,\n    \"offerId\" TEXT"
  },
  {
    "path": "apps/portal/prisma/migrations/20221014205230_/migration.sql",
    "chars": 173,
    "preview": "-- AlterTable\nALTER TABLE \"OffersAnalysis\" ALTER COLUMN \"overallPercentile\" SET DATA TYPE DOUBLE PRECISION,\nALTER COLUMN"
  },
  {
    "path": "apps/portal/prisma/migrations/20221014211740_/migration.sql",
    "chars": 565,
    "preview": "-- DropForeignKey\nALTER TABLE \"OffersAnalysis\" DROP CONSTRAINT \"OffersAnalysis_offerId_fkey\";\n\n-- DropForeignKey\nALTER T"
  },
  {
    "path": "apps/portal/prisma/migrations/20221019104025_update_offers_remove_optional/migration.sql",
    "chars": 649,
    "preview": "/*\n  Warnings:\n\n  - Made the column `totalYoe` on table `OffersBackground` required. This step will fail if there are ex"
  },
  {
    "path": "apps/portal/prisma/migrations/20221020101123_add_resume_comment_parent/migration.sql",
    "chars": 265,
    "preview": "-- AlterTable\nALTER TABLE \"ResumesComment\" ADD COLUMN     \"parentId\" TEXT;\n\n-- AddForeignKey\nALTER TABLE \"ResumesComment"
  },
  {
    "path": "apps/portal/prisma/migrations/20221020115540_/migration.sql",
    "chars": 77,
    "preview": "-- AlterTable\nALTER TABLE \"OffersExperience\" ADD COLUMN     \"location\" TEXT;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221021150358_add_vote_count_and_last_seen/migration.sql",
    "chars": 442,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `upvotes` to the `QuestionsQuestion` table without a default value. This i"
  },
  {
    "path": "apps/portal/prisma/migrations/20221021151424_delete_extra_encounter_fields/migration.sql",
    "chars": 356,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `netVotes` on the `QuestionsQuestionEncounter` table. All the data "
  },
  {
    "path": "apps/portal/prisma/migrations/20221021155717_add_sorting_index/migration.sql",
    "chars": 215,
    "preview": "-- CreateIndex\nCREATE INDEX \"QuestionsQuestion_lastSeenAt_id_idx\" ON \"QuestionsQuestion\"(\"lastSeenAt\", \"id\");\n\n-- Create"
  },
  {
    "path": "apps/portal/prisma/migrations/20221021231817_/migration.sql",
    "chars": 583,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `baseValue` to the `OffersCurrency` table without a default value. This is"
  },
  {
    "path": "apps/portal/prisma/migrations/20221021233952_change_currency_values_to_float/migration.sql",
    "chars": 153,
    "preview": "-- AlterTable\nALTER TABLE \"OffersCurrency\" ALTER COLUMN \"value\" SET DATA TYPE DOUBLE PRECISION,\nALTER COLUMN \"baseValue\""
  },
  {
    "path": "apps/portal/prisma/migrations/20221023100925_update_last_seen_val_to_be_optional/migration.sql",
    "chars": 87,
    "preview": "-- AlterTable\nALTER TABLE \"QuestionsQuestion\" ALTER COLUMN \"lastSeenAt\" DROP NOT NULL;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221023102619_add_list_schema/migration.sql",
    "chars": 1466,
    "preview": "-- CreateTable\nCREATE TABLE \"QuestionsList\" (\n    \"id\" TEXT NOT NULL,\n    \"userId\" TEXT NOT NULL,\n    \"name\" VARCHAR(256"
  },
  {
    "path": "apps/portal/prisma/migrations/20221023203239_/migration.sql",
    "chars": 84,
    "preview": "-- AlterTable\nALTER TABLE \"OffersBackground\" ALTER COLUMN \"totalYoe\" SET DEFAULT 0;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221024123252_add_upvotes_to_schema/migration.sql",
    "chars": 470,
    "preview": "/*\n  Warnings:\n\n  - Added the required column `upvotes` to the `QuestionsAnswerComment` table without a default value. T"
  },
  {
    "path": "apps/portal/prisma/migrations/20221024123849_add_upvotes_default_value/migration.sql",
    "chars": 89,
    "preview": "-- AlterTable\nALTER TABLE \"QuestionsAnswerComment\" ALTER COLUMN \"upvotes\" SET DEFAULT 0;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221024154046_remove_specialization_and_make_base_bonus_and_stocks_optional/migration.sql",
    "chars": 739,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `specialization` on the `OffersExperience` table. All the data in t"
  },
  {
    "path": "apps/portal/prisma/migrations/20221027052436_resumes_add_is_resolved_status/migration.sql",
    "chars": 102,
    "preview": "-- AlterTable\nALTER TABLE \"ResumesResume\" ADD COLUMN     \"isResolved\" BOOLEAN NOT NULL DEFAULT false;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221029180052_add_ecnounter_sort_support/migration.sql",
    "chars": 222,
    "preview": "-- AlterTable\nALTER TABLE \"QuestionsQuestion\" ADD COLUMN     \"numEncounters\" INTEGER NOT NULL DEFAULT 0;\n\n-- CreateIndex"
  },
  {
    "path": "apps/portal/prisma/migrations/20221030024321_locations/migration.sql",
    "chars": 1173,
    "preview": "-- CreateTable\nCREATE TABLE \"Country\" (\n    \"id\" TEXT NOT NULL,\n    \"name\" TEXT NOT NULL,\n    \"code\" TEXT NOT NULL,\n\n   "
  },
  {
    "path": "apps/portal/prisma/migrations/20221030121147_use_roles_and_location_table/migration.sql",
    "chars": 1659,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `location` on the `QuestionsQuestionEncounter` table. All the data "
  },
  {
    "path": "apps/portal/prisma/migrations/20221030133638_add_theory_enum/migration.sql",
    "chars": 68,
    "preview": "-- AlterEnum\nALTER TYPE \"QuestionsQuestionType\" ADD VALUE 'THEORY';\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221031033529_change_analysis_models_to_allow_for_multiple_company_analysis/migration.sql",
    "chars": 4766,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `companyPercentile` on the `OffersAnalysis` table. All the data in "
  },
  {
    "path": "apps/portal/prisma/migrations/20221102121331_update_location_for_offers/migration.sql",
    "chars": 951,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `location` on the `OffersExperience` table. All the data in the col"
  },
  {
    "path": "apps/portal/prisma/migrations/20221103031927_change_company_in_analysis_unit/migration.sql",
    "chars": 605,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `companyName` on the `OffersAnalysisUnit` table. All the data in th"
  },
  {
    "path": "apps/portal/prisma/migrations/20221104042559_add_reference_to_analysed_offer_in_analysis_unit/migration.sql",
    "chars": 734,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `companyId` on the `OffersAnalysisUnit` table. All the data in the "
  },
  {
    "path": "apps/portal/prisma/migrations/20221104084342_add_cascade_delete_to_analysed_offer_in_analysis_unit/migration.sql",
    "chars": 318,
    "preview": "-- DropForeignKey\nALTER TABLE \"OffersAnalysisUnit\" DROP CONSTRAINT \"OffersAnalysisUnit_analysedOfferId_fkey\";\n\n-- AddFor"
  },
  {
    "path": "apps/portal/prisma/migrations/20221104084451_add_cascade_delete_to_overall_analysis_in_offers_analysis/migration.sql",
    "chars": 327,
    "preview": "-- DropForeignKey\nALTER TABLE \"OffersAnalysis\" DROP CONSTRAINT \"OffersAnalysis_overallAnalysisUnitId_fkey\";\n\n-- AddForei"
  },
  {
    "path": "apps/portal/prisma/migrations/20221104095551_use_location_database_for_resumes/migration.sql",
    "chars": 627,
    "preview": "/*\n  Warnings:\n\n  - You are about to drop the column `location` on the `ResumesResume` table. All the data in the column"
  },
  {
    "path": "apps/portal/prisma/migrations/20221105140124_revert_default_location/migration.sql",
    "chars": 82,
    "preview": "-- AlterTable\nALTER TABLE \"ResumesResume\" ALTER COLUMN \"locationId\" DROP DEFAULT;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221106002645_country_ranking/migration.sql",
    "chars": 80,
    "preview": "-- AlterTable\nALTER TABLE \"Country\" ADD COLUMN     \"ranking\" INTEGER DEFAULT 0;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221107014555_company_website/migration.sql",
    "chars": 67,
    "preview": "-- AlterTable\nALTER TABLE \"Company\" ADD COLUMN     \"website\" TEXT;\n"
  },
  {
    "path": "apps/portal/prisma/migrations/20221108061935_add_comment_deletion/migration.sql",
    "chars": 284,
    "preview": "-- DropForeignKey\nALTER TABLE \"ResumesComment\" DROP CONSTRAINT \"ResumesComment_parentId_fkey\";\n\n-- AddForeignKey\nALTER T"
  },
  {
    "path": "apps/portal/prisma/migrations/20221109070931_company_city_ranking/migration.sql",
    "chars": 158,
    "preview": "-- AlterTable\nALTER TABLE \"City\" ADD COLUMN     \"ranking\" INTEGER DEFAULT 0;\n\n-- AlterTable\nALTER TABLE \"Company\" ADD CO"
  },
  {
    "path": "apps/portal/prisma/migrations/20221117094655_add_offersadmin_table/migration.sql",
    "chars": 411,
    "preview": "-- CreateTable\nCREATE TABLE \"OffersAdmin\" (\n    \"id\" TEXT NOT NULL,\n    \"userId\" TEXT NOT NULL,\n\n    CONSTRAINT \"OffersA"
  },
  {
    "path": "apps/portal/prisma/migrations/migration_lock.toml",
    "chars": 126,
    "preview": "# Please do not edit this file manually\n# It should be added in your version-control system (i.e. Git)\nprovider = \"postg"
  },
  {
    "path": "apps/portal/prisma/schema.prisma",
    "chars": 21007,
    "preview": "// Refer to the Prisma schema docs: https://pris.ly/d/prisma-schema\n\ngenerator client {\n  provider        = \"prisma-clie"
  },
  {
    "path": "apps/portal/prisma/seed-analysis.ts",
    "chars": 1100,
    "preview": "import { PrismaClient } from '@prisma/client';\nimport { generateAnalysis } from '../src/utils/offers/analysis/analysisGe"
  },
  {
    "path": "apps/portal/prisma/seed-companies.ts",
    "chars": 886,
    "preview": "import * as fs from 'fs';\nconst { PrismaClient } = require('@prisma/client');\nconst { parse } = require('csv-parse/sync'"
  },
  {
    "path": "apps/portal/prisma/seed-questions.ts",
    "chars": 6576,
    "preview": "import { PrismaClient } from '@prisma/client';\n\nimport { JobTitleLabels } from '../src/components/shared/JobTitles';\n\nco"
  },
  {
    "path": "apps/portal/prisma/seed-salaries.ts",
    "chars": 12303,
    "preview": "import reader from 'xlsx';\nimport { PrismaClient } from '@prisma/client';\nimport crypto from 'crypto';\nimport { baseCurr"
  },
  {
    "path": "apps/portal/prisma/seed.ts",
    "chars": 1232,
    "preview": "const { PrismaClient } = require('@prisma/client');\n\nconst cities = require('./data/cities.json');\nconst countries = req"
  },
  {
    "path": "apps/portal/src/components/global/AppShell.tsx",
    "chars": 8690,
    "preview": "import clsx from 'clsx';\nimport Link from 'next/link';\nimport { useRouter } from 'next/router';\nimport { signOut, useSes"
  },
  {
    "path": "apps/portal/src/components/global/GlobalNavigation.ts",
    "chars": 615,
    "preview": "import {\n  BriefcaseIcon,\n  CurrencyDollarIcon,\n  DocumentTextIcon,\n} from '@heroicons/react/24/outline';\n\ntype GlobalNa"
  },
  {
    "path": "apps/portal/src/components/global/GoogleAnalytics.tsx",
    "chars": 2449,
    "preview": "import { useRouter } from 'next/router';\nimport Script from 'next/script';\nimport { createContext, useContext, useEffect"
  },
  {
    "path": "apps/portal/src/components/global/HomeNavigation.ts",
    "chars": 516,
    "preview": "// Not using this for now.\n// const navigation: ProductNavigationItems = [\n//   { href: '/offers', name: 'Offers' },\n// "
  },
  {
    "path": "apps/portal/src/components/global/MobileNavigation.tsx",
    "chars": 5310,
    "preview": "import clsx from 'clsx';\nimport Link from 'next/link';\nimport { Fragment } from 'react';\nimport { Dialog, Transition } f"
  },
  {
    "path": "apps/portal/src/components/global/ProductNavigation.tsx",
    "chars": 4238,
    "preview": "import clsx from 'clsx';\nimport Link from 'next/link';\nimport { useRouter } from 'next/router';\nimport { Fragment } from"
  },
  {
    "path": "apps/portal/src/components/offers/Breadcrumbs.tsx",
    "chars": 1543,
    "preview": "import clsx from 'clsx';\nimport { ChevronRightIcon } from '@heroicons/react/20/solid';\n\nexport type BreadcrumbStep = Rea"
  },
  {
    "path": "apps/portal/src/components/offers/EducationFields.ts",
    "chars": 2515,
    "preview": "import { emptyOption } from './constants';\n\nconst EducationFieldLabels = {\n  'aerospace-engineering': 'Aerospace Enginee"
  },
  {
    "path": "apps/portal/src/components/offers/EducationLevels.ts",
    "chars": 373,
    "preview": "import { emptyOption } from './constants';\n\nexport const EducationLevelLabels = [\n  'Bachelor',\n  'Diploma',\n  'Masters'"
  },
  {
    "path": "apps/portal/src/components/offers/InternshipCycles.ts",
    "chars": 578,
    "preview": "import { emptyOption } from './constants';\n\nexport const InternshipCycleLabels = [\n  'Spring',\n  'Summer',\n  'Fall',\n  '"
  },
  {
    "path": "apps/portal/src/components/offers/JobTypeTabs.tsx",
    "chars": 1448,
    "preview": "import clsx from 'clsx';\nimport { JobType } from '@prisma/client';\n\nimport { JobTypeLabel } from '~/components/offers/co"
  },
  {
    "path": "apps/portal/src/components/offers/OffersNavigation.tsx",
    "chars": 1313,
    "preview": "import type { ProductNavigationItems } from '~/components/global/ProductNavigation';\n\nconst navigation: ProductNavigatio"
  },
  {
    "path": "apps/portal/src/components/offers/Years.ts",
    "chars": 325,
    "preview": "const NUM_YEARS = 5;\nconst OFFSET = 2;\nexport const YearsOptions = (yearSelected?: number) =>\n  Array.from({ length: NUM"
  },
  {
    "path": "apps/portal/src/components/offers/admin/OffersHeader.tsx",
    "chars": 2357,
    "preview": "import clsx from 'clsx';\n\nimport type { OfferTableSortType } from '~/components/offers/admin/types';\nimport {\n  getOppos"
  },
  {
    "path": "apps/portal/src/components/offers/admin/OffersRow.tsx",
    "chars": 2208,
    "preview": "import clsx from 'clsx';\nimport Link from 'next/link';\nimport { JobType } from '@prisma/client';\n\nimport type { JobTitle"
  },
  {
    "path": "apps/portal/src/components/offers/admin/OffersTable.tsx",
    "chars": 9770,
    "preview": "import { useRouter } from 'next/router';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { JobType "
  },
  {
    "path": "apps/portal/src/components/offers/admin/OffersTablePagination.tsx",
    "chars": 1862,
    "preview": "import { useEffect, useState } from 'react';\nimport { Pagination, Spinner } from '~/ui';\n\nimport type { Paging } from '~"
  },
  {
    "path": "apps/portal/src/components/offers/admin/types.ts",
    "chars": 1981,
    "preview": "// eslint-disable-next-line no-shadow\nexport enum YOE_CATEGORY {\n  ENTRY = 'entry',\n  INTERN = 'intern',\n  MID = 'mid',\n"
  },
  {
    "path": "apps/portal/src/components/offers/constants.ts",
    "chars": 957,
    "preview": "export const HOME_URL = '/offers';\nexport const OFFERS_SUBMIT_URL = '/offers/submit';\n\nexport const JobTypeLabel = {\n  F"
  },
  {
    "path": "apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx",
    "chars": 2895,
    "preview": "import {\n  ArrowTrendingUpIcon,\n  BuildingOfficeIcon,\n  MapPinIcon,\n} from '@heroicons/react/20/solid';\nimport { JobType"
  },
  {
    "path": "apps/portal/src/components/offers/dashboard/DashboardProfileCard.tsx",
    "chars": 3753,
    "preview": "import { useRouter } from 'next/router';\nimport { BookmarkSlashIcon } from '@heroicons/react/20/solid';\nimport { ArrowRi"
  },
  {
    "path": "apps/portal/src/components/offers/features/LeftTextCard.tsx",
    "chars": 1950,
    "preview": "import type { StaticImageData } from 'next/image';\nimport Image from 'next/image';\nimport type { ReactNode } from 'react"
  },
  {
    "path": "apps/portal/src/components/offers/features/RightTextCard.tsx",
    "chars": 1969,
    "preview": "import type { StaticImageData } from 'next/image';\nimport Image from 'next/image';\nimport type { ReactNode } from 'react"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormCitiesTypeahead.tsx",
    "chars": 877,
    "preview": "import type { ComponentProps } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\n\nimport CitiesT"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormCompaniesTypeahead.tsx",
    "chars": 884,
    "preview": "import type { ComponentProps } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\n\nimport Compani"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormJobTitlesTypeahead.tsx",
    "chars": 981,
    "preview": "import type { ComponentProps } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\n\nimport type { "
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormMonthYearPicker.tsx",
    "chars": 1021,
    "preview": "import type { ComponentProps } from 'react';\nimport { forwardRef } from 'react';\nimport { useFormContext, useWatch } fro"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormRadioList.tsx",
    "chars": 514,
    "preview": "import type { ComponentProps } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { RadioList } from"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormSection.tsx",
    "chars": 439,
    "preview": "import { HorizontalDivider } from '~/ui';\n\nexport default function FormSection({\n  children,\n  title,\n}: Readonly<{ chil"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormSelect.tsx",
    "chars": 652,
    "preview": "import type { ComponentProps, ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\nimport { useFormContext }"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormTextArea.tsx",
    "chars": 699,
    "preview": "import type { ComponentProps, ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\nimport type { UseFormRegi"
  },
  {
    "path": "apps/portal/src/components/offers/forms/FormTextInput.tsx",
    "chars": 708,
    "preview": "import type { ComponentProps, ForwardedRef } from 'react';\nimport { forwardRef } from 'react';\nimport type { UseFormRegi"
  },
  {
    "path": "apps/portal/src/components/offers/offerAnalysis/OfferAnalysis.tsx",
    "chars": 4531,
    "preview": "import { useEffect } from 'react';\nimport { useState } from 'react';\nimport { ArrowUpRightIcon } from '@heroicons/react/"
  },
  {
    "path": "apps/portal/src/components/offers/offerAnalysis/OfferPercentileAnalysisText.tsx",
    "chars": 1032,
    "preview": "import { OVERALL_TAB } from '../constants';\n\nimport type { AnalysisUnit } from '~/types/offers';\n\ntype OfferPercentileAn"
  },
  {
    "path": "apps/portal/src/components/offers/offerAnalysis/OfferProfileCard.tsx",
    "chars": 5124,
    "preview": "import {\n  ArrowTrendingUpIcon,\n  BuildingOfficeIcon,\n  MapPinIcon,\n} from '@heroicons/react/20/solid';\nimport {\n  Arrow"
  },
  {
    "path": "apps/portal/src/components/offers/offersSubmission/OffersProfileSave.tsx",
    "chars": 4558,
    "preview": "import { signIn, useSession } from 'next-auth/react';\nimport type { UseQueryResult } from 'react-query';\nimport { Docume"
  },
  {
    "path": "apps/portal/src/components/offers/offersSubmission/OffersSubmissionAnalysis.tsx",
    "chars": 830,
    "preview": "import OfferAnalysis from '../offerAnalysis/OfferAnalysis';\n\nimport type { ProfileAnalysis } from '~/types/offers';\ntype"
  },
  {
    "path": "apps/portal/src/components/offers/offersSubmission/OffersSubmissionForm.tsx",
    "chars": 10743,
    "preview": "import { useRouter } from 'next/router';\nimport { useEffect, useRef, useState } from 'react';\nimport type { SubmitHandle"
  },
  {
    "path": "apps/portal/src/components/offers/offersSubmission/submissionForm/BackgroundForm.tsx",
    "chars": 10374,
    "preview": "import { useFormContext, useWatch } from 'react-hook-form';\nimport { JobType } from '@prisma/client';\nimport { Collapsib"
  },
  {
    "path": "apps/portal/src/components/offers/offersSubmission/submissionForm/OfferDetailsForm.tsx",
    "chars": 18837,
    "preview": "import { useEffect, useState } from 'react';\nimport type {\n  FieldValues,\n  UseFieldArrayRemove,\n  UseFieldArrayReturn,\n"
  },
  {
    "path": "apps/portal/src/components/offers/profile/EducationCard.tsx",
    "chars": 1688,
    "preview": "import { BuildingLibraryIcon, LightBulbIcon } from '@heroicons/react/20/solid';\n\nimport type { EducationType } from '~/c"
  },
  {
    "path": "apps/portal/src/components/offers/profile/OfferCard.tsx",
    "chars": 6346,
    "preview": "import {\n  ArrowTrendingUpIcon,\n  BuildingOfficeIcon,\n  CalendarIcon,\n  MapPinIcon,\n} from '@heroicons/react/20/solid';\n"
  },
  {
    "path": "apps/portal/src/components/offers/profile/ProfileComments.tsx",
    "chars": 7160,
    "preview": "import { signIn, useSession } from 'next-auth/react';\nimport { useState } from 'react';\nimport { ClipboardDocumentIcon, "
  },
  {
    "path": "apps/portal/src/components/offers/profile/ProfileDetails.tsx",
    "chars": 5293,
    "preview": "import { useState } from 'react';\nimport {\n  AcademicCapIcon,\n  ArrowPathIcon,\n  BriefcaseIcon,\n} from '@heroicons/react"
  },
  {
    "path": "apps/portal/src/components/offers/profile/ProfileHeader.tsx",
    "chars": 8956,
    "preview": "import { useRouter } from 'next/router';\nimport { signIn, useSession } from 'next-auth/react';\nimport { useState } from "
  },
  {
    "path": "apps/portal/src/components/offers/profile/ProfilePhotoHolder.tsx",
    "chars": 646,
    "preview": "type ProfilePhotoHolderProps = Readonly<{\n  size?: 'lg' | 'sm' | 'xs';\n}>;\n\nexport default function ProfilePhotoHolder({"
  },
  {
    "path": "apps/portal/src/components/offers/profile/comments/CommentCard.tsx",
    "chars": 8015,
    "preview": "import { formatDistanceToNow } from 'date-fns';\nimport { signIn, useSession } from 'next-auth/react';\nimport { useState "
  },
  {
    "path": "apps/portal/src/components/offers/profile/comments/ExpandableCommentCard.tsx",
    "chars": 1295,
    "preview": "import { useState } from 'react';\n\nimport CommentCard from '~/components/offers/profile/comments/CommentCard';\n\nimport t"
  },
  {
    "path": "apps/portal/src/components/offers/table/OffersHeader.tsx",
    "chars": 2357,
    "preview": "import clsx from 'clsx';\n\nimport type { OfferTableSortType } from '~/components/offers/table/types';\nimport {\n  getOppos"
  },
  {
    "path": "apps/portal/src/components/offers/table/OffersRow.tsx",
    "chars": 2514,
    "preview": "import clsx from 'clsx';\nimport Link from 'next/link';\nimport { JobType } from '@prisma/client';\n\nimport CompanyProfileI"
  },
  {
    "path": "apps/portal/src/components/offers/table/OffersTable.tsx",
    "chars": 9478,
    "preview": "import { useRouter } from 'next/router';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { JobType "
  },
  {
    "path": "apps/portal/src/components/offers/table/OffersTablePagination.tsx",
    "chars": 1862,
    "preview": "import { useEffect, useState } from 'react';\nimport { Pagination, Spinner } from '~/ui';\n\nimport type { Paging } from '~"
  },
  {
    "path": "apps/portal/src/components/offers/table/types.ts",
    "chars": 1981,
    "preview": "// eslint-disable-next-line no-shadow\nexport enum YOE_CATEGORY {\n  ENTRY = 'entry',\n  INTERN = 'intern',\n  MID = 'mid',\n"
  },
  {
    "path": "apps/portal/src/components/offers/types.ts",
    "chars": 4636,
    "preview": "import type { JobType } from '@prisma/client';\n\nimport type { MonthYear } from '~/components/shared/MonthYearPicker';\n\ni"
  },
  {
    "path": "apps/portal/src/components/offers/util/Tooltip.tsx",
    "chars": 932,
    "preview": "import type { ReactNode } from 'react';\nimport { usePopperTooltip } from 'react-popper-tooltip';\nimport type { Placement"
  },
  {
    "path": "apps/portal/src/components/questions/AddToListDropdown.tsx",
    "chars": 6169,
    "preview": "import clsx from 'clsx';\nimport type { PropsWithChildren } from 'react';\nimport { useMemo } from 'react';\nimport { Fragm"
  },
  {
    "path": "apps/portal/src/components/questions/ContributeQuestionCard.tsx",
    "chars": 1386,
    "preview": "import { useState } from 'react';\n\nimport { useProtectedCallback } from '~/utils/questions/useProtectedCallback';\n\nimpor"
  },
  {
    "path": "apps/portal/src/components/questions/ContributeQuestionDialog.tsx",
    "chars": 4032,
    "preview": "import { Fragment, useState } from 'react';\nimport { Dialog, Transition } from '@headlessui/react';\nimport { HorizontalD"
  },
  {
    "path": "apps/portal/src/components/questions/CreateListDialog.tsx",
    "chars": 1778,
    "preview": "import { useForm } from 'react-hook-form';\nimport { Button, Dialog, TextInput } from '~/ui';\n\nimport { useFormRegister }"
  },
  {
    "path": "apps/portal/src/components/questions/DeleteListDialog.tsx",
    "chars": 673,
    "preview": "import { Button, Dialog } from '~/ui';\n\nexport type DeleteListDialogProps = {\n  onCancel: () => void;\n  onDelete: () => "
  },
  {
    "path": "apps/portal/src/components/questions/DiscardDraftDialog.tsx",
    "chars": 702,
    "preview": "import { Button, Dialog } from '~/ui';\n\nexport type DiscardDraftDialogProps = {\n  onCancel: () => void;\n  onDiscard: () "
  },
  {
    "path": "apps/portal/src/components/questions/FullScreenSpinner.tsx",
    "chars": 205,
    "preview": "import { Spinner } from '~/ui';\n\nexport default function FullScreenSpinner() {\n  return (\n    <div className=\"flex h-ful"
  },
  {
    "path": "apps/portal/src/components/questions/LandingComponent.tsx",
    "chars": 6374,
    "preview": "import { useEffect, useState } from 'react';\nimport { ArrowSmallRightIcon } from '@heroicons/react/24/outline';\nimport t"
  },
  {
    "path": "apps/portal/src/components/questions/PaginationLoadMoreButton.tsx",
    "chars": 768,
    "preview": "import type { UseInfiniteQueryResult } from 'react-query';\nimport { Button } from '~/ui';\n\nexport type PaginationLoadMor"
  },
  {
    "path": "apps/portal/src/components/questions/QuestionAggregateBadge.tsx",
    "chars": 2455,
    "preview": "import { useMemo } from 'react';\nimport { usePopperTooltip } from 'react-popper-tooltip';\n\nimport 'react-popper-tooltip/"
  },
  {
    "path": "apps/portal/src/components/questions/QuestionContainer.tsx",
    "chars": 568,
    "preview": "// TODO: Remove this after Steps\n\nimport clsx from 'clsx';\nimport React from 'react';\n\ntype Props = Readonly<{\n  childre"
  },
  {
    "path": "apps/portal/src/components/questions/QuestionSearchBar.tsx",
    "chars": 3314,
    "preview": "import {\n  AdjustmentsHorizontalIcon,\n  MagnifyingGlassIcon,\n} from '@heroicons/react/24/outline';\nimport { Button, Tabs"
  },
  {
    "path": "apps/portal/src/components/questions/QuestionTypeBadge.tsx",
    "chars": 1117,
    "preview": "import type { ComponentProps } from 'react';\nimport {\n  BookOpenIcon,\n  ChatBubbleLeftRightIcon,\n  CodeBracketIcon,\n  Wr"
  },
  {
    "path": "apps/portal/src/components/questions/QuestionsNavigation.tsx",
    "chars": 551,
    "preview": "import type { ProductNavigationItems } from '~/components/global/ProductNavigation';\n\nconst navigation: ProductNavigatio"
  },
  {
    "path": "apps/portal/src/components/questions/SortOptionsSelect.tsx",
    "chars": 1950,
    "preview": "import { Select } from '~/ui';\nimport { SORT_ORDERS, SORT_TYPES } from '~/utils/questions/constants';\n\nimport type { Sor"
  },
  {
    "path": "apps/portal/src/components/questions/VotingButtons.tsx",
    "chars": 2244,
    "preview": "import clsx from 'clsx';\nimport React from 'react';\nimport { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/"
  },
  {
    "path": "apps/portal/src/components/questions/card/AnswerCard.tsx",
    "chars": 2403,
    "preview": "import clsx from 'clsx';\nimport { formatDistanceToNow } from 'date-fns';\nimport { ChatBubbleLeftRightIcon } from '@heroi"
  },
  {
    "path": "apps/portal/src/components/questions/card/FullAnswerCard.tsx",
    "chars": 325,
    "preview": "import type { AnswerCardProps } from './AnswerCard';\nimport AnswerCard from './AnswerCard';\n\nexport type FullAnswerCardP"
  },
  {
    "path": "apps/portal/src/components/questions/card/QuestionAnswerCard.tsx",
    "chars": 511,
    "preview": "import withHref from '~/utils/questions/withHref';\n\nimport type { AnswerCardProps } from './AnswerCard';\nimport AnswerCa"
  },
  {
    "path": "apps/portal/src/components/questions/card/question/BaseQuestionCard.tsx",
    "chars": 9465,
    "preview": "import clsx from 'clsx';\nimport { useMemo, useState } from 'react';\nimport {\n  BuildingOfficeIcon,\n  CalendarIcon,\n  Map"
  },
  {
    "path": "apps/portal/src/components/questions/card/question/FullQuestionCard.tsx",
    "chars": 1134,
    "preview": "import type { BaseQuestionCardProps } from './BaseQuestionCard';\nimport BaseQuestionCard from './BaseQuestionCard';\n\nexp"
  },
  {
    "path": "apps/portal/src/components/questions/card/question/QuestionListCard.tsx",
    "chars": 1071,
    "preview": "import withHref from '~/utils/questions/withHref';\n\nimport type { BaseQuestionCardProps } from './BaseQuestionCard';\nimp"
  },
  {
    "path": "apps/portal/src/components/questions/card/question/QuestionOverviewCard.tsx",
    "chars": 1239,
    "preview": "import withHref from '~/utils/questions/withHref';\n\nimport type { BaseQuestionCardProps } from './BaseQuestionCard';\nimp"
  },
  {
    "path": "apps/portal/src/components/questions/card/question/SimilarQuestionCard.tsx",
    "chars": 1104,
    "preview": "import type { BaseQuestionCardProps } from './BaseQuestionCard';\nimport BaseQuestionCard from './BaseQuestionCard';\n\nexp"
  },
  {
    "path": "apps/portal/src/components/questions/comments/AnswerCommentListItem.tsx",
    "chars": 696,
    "preview": "import useAnswerCommentVote from '~/utils/questions/vote/useAnswerCommentVote';\n\nimport type { CommentListItemProps } fr"
  },
  {
    "path": "apps/portal/src/components/questions/comments/CommentListItem.tsx",
    "chars": 1452,
    "preview": "import { formatDistanceToNow } from 'date-fns';\n\nimport type { BackendVote } from '../VotingButtons';\nimport VotingButto"
  },
  {
    "path": "apps/portal/src/components/questions/comments/QuestionCommentListItem.tsx",
    "chars": 714,
    "preview": "import useQuestionCommentVote from '~/utils/questions/vote/useQuestionCommentVote';\n\nimport type { CommentListItemProps "
  },
  {
    "path": "apps/portal/src/components/questions/filter/FilterSection.tsx",
    "chars": 4503,
    "preview": "import { useMemo } from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\nimport { useForm } from '"
  },
  {
    "path": "apps/portal/src/components/questions/forms/ContributeQuestionForm.tsx",
    "chars": 9351,
    "preview": "import { startOfMonth } from 'date-fns';\nimport { useEffect, useState } from 'react';\nimport { Controller, useForm } fro"
  },
  {
    "path": "apps/portal/src/components/questions/forms/CreateQuestionEncounterForm.tsx",
    "chars": 5817,
    "preview": "import { startOfMonth } from 'date-fns';\nimport { useState } from 'react';\nimport { CheckIcon } from '@heroicons/react/2"
  },
  {
    "path": "apps/portal/src/components/questions/layout/BackButtonLayout.tsx",
    "chars": 818,
    "preview": "import type { PropsWithChildren } from 'react';\nimport { ArrowSmallLeftIcon } from '@heroicons/react/24/outline';\nimport"
  },
  {
    "path": "apps/portal/src/components/questions/protected/ProtectedContextProvider.tsx",
    "chars": 919,
    "preview": "import type { PropsWithChildren } from 'react';\nimport { createContext, useState } from 'react';\n\nimport ProtectedDialog"
  },
  {
    "path": "apps/portal/src/components/questions/protected/ProtectedDialog.tsx",
    "chars": 755,
    "preview": "import { signIn } from 'next-auth/react';\nimport { Button, Dialog } from '~/ui';\n\nexport type ProtectedDialogProps = {\n "
  },
  {
    "path": "apps/portal/src/components/questions/typeahead/CompanyTypeahead.tsx",
    "chars": 729,
    "preview": "import { useState } from 'react';\n\nimport useCompanyOptions from '~/utils/shared/useCompanyOptions';\n\nimport type { Expa"
  },
  {
    "path": "apps/portal/src/components/questions/typeahead/ExpandedTypeahead.tsx",
    "chars": 2131,
    "preview": "import type { ComponentProps } from 'react';\nimport { useState } from 'react';\nimport { useMemo } from 'react';\nimport {"
  },
  {
    "path": "apps/portal/src/components/questions/typeahead/LocationTypeahead.tsx",
    "chars": 1594,
    "preview": "import { useState } from 'react';\nimport type { TypeaheadOption } from '~/ui';\n\nimport useLocationOptions from '~/utils/"
  },
  {
    "path": "apps/portal/src/components/questions/typeahead/RoleTypeahead.tsx",
    "chars": 799,
    "preview": "import { useState } from 'react';\n\nimport useJobTitleOptions from '~/utils/shared/useJobTitleOptions';\n\nimport type { Ex"
  },
  {
    "path": "apps/portal/src/components/resumes/ResumePdf.tsx",
    "chars": 2887,
    "preview": "import clsx from 'clsx';\nimport { useEffect, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';"
  },
  {
    "path": "apps/portal/src/components/resumes/ResumesNavigation.tsx",
    "chars": 752,
    "preview": "import type { ProductNavigationItems } from '~/components/global/ProductNavigation';\n\nconst navigation: ProductNavigatio"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeCoolIcon.tsx",
    "chars": 2787,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeCoolIcon({ className }: Res"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeRocketIcon.tsx",
    "chars": 4318,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeRocketIcon({ className }: R"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/popularResumes/ResumeBadgeTreasureIcon.tsx",
    "chars": 10773,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeTreasureIcon({\n  className,"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/resume-badge.d.ts",
    "chars": 67,
    "preview": "export type ResumeBadgeProps = Readonly<{\n  className: string;\n}>;\n"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeDetectiveIcon.tsx",
    "chars": 4429,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeDetectiveIcon({\n  className"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeEagleIcon.tsx",
    "chars": 1317,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeEagleIcon({ className }: Re"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/reviewer/ResumeBadgeSuperheroIcon.tsx",
    "chars": 3103,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeSuperheroIcon({\n  className"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeBookIcon.tsx",
    "chars": 6677,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeBookIcon({ className }: Res"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeOwlIcon.tsx",
    "chars": 5979,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeOwlIcon({ className }: Resu"
  },
  {
    "path": "apps/portal/src/components/resumes/badgeIcons/topComment/ResumeBadgeSageIcon.tsx",
    "chars": 4095,
    "preview": "import type { ResumeBadgeProps } from '../resume-badge';\n\nexport default function ResumeBadgeSageIcon({ className }: Res"
  },
  {
    "path": "apps/portal/src/components/resumes/badges/ResumeUserBadge.tsx",
    "chars": 1055,
    "preview": "import type { BadgeIcon } from './resumeBadgeConstants';\n\ntype Props = Readonly<{\n  description: string;\n  icon: BadgeIc"
  },
  {
    "path": "apps/portal/src/components/resumes/badges/ResumeUserBadges.tsx",
    "chars": 1573,
    "preview": "import { trpc } from '~/utils/trpc';\n\nimport type { BadgePayload } from './resumeBadgeConstants';\nimport { RESUME_USER_B"
  },
  {
    "path": "apps/portal/src/components/resumes/badges/resumeBadgeConstants.ts",
    "chars": 3705,
    "preview": "import ResumeBadgeCoolIcon from '../badgeIcons/popularResumes/ResumeBadgeCoolIcon';\nimport ResumeBadgeRocketIcon from '."
  },
  {
    "path": "apps/portal/src/components/resumes/browse/ResumeFilterPill.tsx",
    "chars": 656,
    "preview": "import clsx from 'clsx';\n\ntype Props = Readonly<{\n  isSelected: boolean;\n  onClick?: (event: React.MouseEvent<HTMLElemen"
  },
  {
    "path": "apps/portal/src/components/resumes/browse/ResumeListItem.tsx",
    "chars": 3628,
    "preview": "import clsx from 'clsx';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport Link from 'next/link';\ni"
  },
  {
    "path": "apps/portal/src/components/resumes/browse/ResumeListItems.tsx",
    "chars": 481,
    "preview": "import ResumeListItem from './ResumeListItem';\n\nimport type { Resume } from '~/types/resume';\n\ntype Props = Readonly<{\n "
  },
  {
    "path": "apps/portal/src/components/resumes/comments/ResumeCommentListItem.tsx",
    "chars": 6654,
    "preview": "import clsx from 'clsx';\nimport { formatDistanceToNow } from 'date-fns';\nimport { useState } from 'react';\n\nimport Resum"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/ResumeCommentsForm.tsx",
    "chars": 6306,
    "preview": "import { useState } from 'react';\nimport type { SubmitHandler } from 'react-hook-form';\nimport { useForm } from 'react-h"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/ResumeCommentsList.tsx",
    "chars": 3291,
    "preview": "import { useSession } from 'next-auth/react';\nimport {\n  BookOpenIcon,\n  BriefcaseIcon,\n  CodeBracketSquareIcon,\n  FaceS"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/comment/ResumeCommentDeleteForm.tsx",
    "chars": 2052,
    "preview": "import { Button, Dialog } from '~/ui';\n\nimport { useGoogleAnalytics } from '~/components/global/GoogleAnalytics';\n\nimpor"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/comment/ResumeCommentEditForm.tsx",
    "chars": 2529,
    "preview": "import type { SubmitHandler } from 'react-hook-form';\nimport { useForm } from 'react-hook-form';\nimport { Button, TextAr"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/comment/ResumeCommentReplyForm.tsx",
    "chars": 2856,
    "preview": "import type { SubmitHandler } from 'react-hook-form';\nimport { useForm } from 'react-hook-form';\nimport type { ResumesSe"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/comment/ResumeCommentVoteButtons.tsx",
    "chars": 4353,
    "preview": "import clsx from 'clsx';\nimport { useRouter } from 'next/router';\nimport { useState } from 'react';\nimport { ChevronDown"
  },
  {
    "path": "apps/portal/src/components/resumes/comments/resumeCommentConstants.ts",
    "chars": 435,
    "preview": "import { ResumesSection } from '@prisma/client';\n\nexport const RESUME_COMMENTS_SECTIONS = [\n  {\n    label: 'General',\n  "
  }
]

// ... and 305 more files (download for full content)

About this extraction

This page contains the full source code of the yangshun/tech-interview-handbook GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 505 files (5.5 MB), approximately 1.5M tokens, and a symbol index with 959 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!