Applicationio.ktor.server.applicationPluginInstanceio.ktor.server.applicationRouteScopedPluginio.ktor.server.applicationinstallio.ktor.server.applicationConditionalHeaders&io.ktor.server.application.Applicationinstall&io.ktor.server.application.Applicationrouting&io.ktor.server.application.Application staticFiles&io.ktor.server.application.ApplicationEmbeddedServerio.ktor.server.engineembeddedServerio.ktor.server.enginestart$io.ktor.server.engine.EmbeddedServerstop$io.ktor.server.engine.EmbeddedServer staticFilesio.ktor.server.http.contentNettyio.ktor.server.nettyNettyApplicationEngineio.ktor.server.netty Configuration+io.ktor.server.netty.NettyApplicationEngineConditionalHeaders)io.ktor.server.plugins.conditionalheadersConditionalHeadersConfig)io.ktor.server.plugins.conditionalheadersRouteio.ktor.server.routingRoutingio.ktor.server.routing RoutingRootio.ktor.server.routingroutingio.ktor.server.routing staticFilesio.ktor.server.routing.RoutingBufferedReaderjava.ioFilejava.io FileFilterjava.ioFileOutputStreamjava.ioFilenameFilterjava.io IOExceptionjava.io InputStreamjava.ioreadTextjava.io.BufferedReaderusejava.io.BufferedReaderexists java.io.File extension java.io.FileforEach java.io.File isDirectory java.io.File listFiles java.io.Filemkdirs java.io.File outputStream java.io.File parentFile java.io.FilereadText java.io.FilerecursiveFindAndReplace java.io.FiletakeIf java.io.File writeText java.io.Filejava.io.FileFilterflushjava.io.FileOutputStreamusejava.io.FileOutputStreamjava.io.FilenameFilterbufferedReaderjava.io.InputStreamcopyTojava.io.InputStreamusejava.io.InputStreamflushjava.io.OutputStreamClass java.langRuntimeException java.langgetResourceAsStreamjava.lang.Class ServerSocketjava.net localPortjava.net.ServerSocketusejava.net.ServerSocketArraykotlin CharSequencekotlin Function1kotlinNothingkotlintakeIfkotlinusekotlinforEach kotlin.Arraynotkotlin.Booleaninvokekotlin.Function1contains kotlin.Stringreplace kotlin.StringIteratorkotlin.collectionsListkotlin.collectionsMapkotlin.collections MutableListkotlin.collectionsanykotlin.collectionscontainskotlin.collectionsfilterkotlin.collectionsfirstkotlin.collectionsforEachkotlin.collectionslistOfkotlin.collections mutableListOfkotlin.collectionshasNextkotlin.collections.Iteratornextkotlin.collections.Iteratoranykotlin.collections.Listcontainskotlin.collections.Listfilterkotlin.collections.Listfirstkotlin.collections.Listiteratorkotlin.collections.Listsizekotlin.collections.Listgetkotlin.collections.MapSuspendFunction1kotlin.coroutinesbufferedReader kotlin.iocopyTo kotlin.io extension kotlin.io outputStream kotlin.ioprintln kotlin.ioreadText kotlin.iouse kotlin.io writeText kotlin.ioJvmField kotlin.jvmjava kotlin.jvmcontains kotlin.rangesfirst kotlin.rangesjavakotlin.reflect.KClassSequencekotlin.sequencesanykotlin.sequencescontainskotlin.sequencesfilterkotlin.sequencesfirstkotlin.sequencesforEachkotlin.sequencesTest kotlin.test assertEquals kotlin.test assertTrue kotlin.testany kotlin.textcontains kotlin.textfilter kotlin.textfirst kotlin.textforEach kotlin.textreplace kotlin.textCoroutineScopekotlinx.coroutines runBlockingkotlinx.coroutinesRespectAppManifest!kotlinx.coroutines.CoroutineScopeValidateLinkUseCase!kotlinx.coroutines.CoroutineScope mutableListOf!kotlinx.coroutines.CoroutineScopeworld!kotlinx.coroutines.CoroutineScope KSerializerkotlinx.serializationJsonkotlinx.serialization.json JsonBuilderkotlinx.serialization.jsondecodeFromStringkotlinx.serialization.json.JsonignoreUnknownKeys&kotlinx.serialization.json.JsonBuilderRule org.junitTest org.junitTemporaryFolderorg.junit.rulesFileorg.junit.rules.TemporaryFolder IOExceptionorg.junit.rules.TemporaryFoldercopyResourcesToTempDirorg.junit.rules.TemporaryFoldercopyToorg.junit.rules.TemporaryFolderjavaorg.junit.rules.TemporaryFolder newFolderorg.junit.rules.TemporaryFolder outputStreamorg.junit.rules.TemporaryFoldertakeIforg.junit.rules.TemporaryFolderuseorg.junit.rules.TemporaryFolderKoinApplication org.koin.corejvmKoinAppModuleorg.koin.core.KoinApplicationmodulesorg.koin.core.KoinApplication startKoinorg.koin.core.contextstopKoinorg.koin.core.contextModuleorg.koin.core.moduleKoinTest org.koin.testget org.koin.testJson world.respectOpdsFeed world.respectOpdsSerializationTest world.respectTest world.respectbufferedReader world.respectjava world.respectprintln world.respectreadText world.respect serializer world.respectuse world.respectJson#world.respect.OpdsSerializationTestOpdsFeed#world.respect.OpdsSerializationTestbufferedReader#world.respect.OpdsSerializationTestjava#world.respect.OpdsSerializationTestprintln#world.respect.OpdsSerializationTestreadText#world.respect.OpdsSerializationTest serializer#world.respect.OpdsSerializationTestuse#world.respect.OpdsSerializationTestRespectAppManifest-world.respect.datasource.compatibleapps.model Companion@world.respect.datasource.compatibleapps.model.RespectAppManifest MIME_TYPE@world.respect.datasource.compatibleapps.model.RespectAppManifest MIME_TYPEJworld.respect.datasource.compatibleapps.model.RespectAppManifest.CompanionOpdsFeed#world.respect.datasource.opds.model ReadiumLink#world.respect.datasource.opds.model Companion,world.respect.datasource.opds.model.OpdsFeed serializer,world.respect.datasource.opds.model.OpdsFeed serializer6world.respect.datasource.opds.model.OpdsFeed.CompanionjvmKoinAppModuleworld.respect.diBooleanworld.respect.domain.validatorConditionalHeadersworld.respect.domain.validatorHttpLinkHeaderworld.respect.domain.validatorHttpLinkHeaderTestworld.respect.domain.validatorJvmFieldworld.respect.domain.validatorKoinTestworld.respect.domain.validatorListworld.respect.domain.validatorListAndPrintlnValidatorReporterworld.respect.domain.validatorNettyworld.respect.domain.validatorRespectAppManifestworld.respect.domain.validatorRuleworld.respect.domain.validatorStringworld.respect.domain.validatorTemporaryFolderworld.respect.domain.validatorTestworld.respect.domain.validatorTestValidationScenariosworld.respect.domain.validatorUnitworld.respect.domain.validatorValidateLinkUseCaseworld.respect.domain.validatorValidationScenarioContextworld.respect.domain.validatorValidatorMessageworld.respect.domain.validatoranyworld.respect.domain.validator assertEqualsworld.respect.domain.validator assertTrueworld.respect.domain.validatorcontainsworld.respect.domain.validatorcopyResourcesToTempDirworld.respect.domain.validatorembeddedServerworld.respect.domain.validator extensionworld.respect.domain.validatorfilterworld.respect.domain.validator findFreePortworld.respect.domain.validatorfirstworld.respect.domain.validatorjvmKoinAppModuleworld.respect.domain.validatorlistOfworld.respect.domain.validator mutableListOfworld.respect.domain.validatorparseHeaderValueworld.respect.domain.validatorprintlnworld.respect.domain.validatorrecursiveFindAndReplaceworld.respect.domain.validatorreplaceworld.respect.domain.validator runBlockingworld.respect.domain.validator startKoinworld.respect.domain.validatorstopKoinworld.respect.domain.validatorworldworld.respect.domain.validator Companion-world.respect.domain.validator.HttpLinkHeaderLink-world.respect.domain.validator.HttpLinkHeaderlinks-world.respect.domain.validator.HttpLinkHeaderparseHeaderValue-world.respect.domain.validator.HttpLinkHeaderparseHeaderValue7world.respect.domain.validator.HttpLinkHeader.Companionparams2world.respect.domain.validator.HttpLinkHeader.LinkuriRef2world.respect.domain.validator.HttpLinkHeader.LinkHttpLinkHeader1world.respect.domain.validator.HttpLinkHeaderTest assertEquals1world.respect.domain.validator.HttpLinkHeaderTestfirst1world.respect.domain.validator.HttpLinkHeaderTestparseHeaderValue1world.respect.domain.validator.HttpLinkHeaderTestmessages>world.respect.domain.validator.ListAndPrintlnValidatorReporterBoolean6world.respect.domain.validator.TestValidationScenariosConditionalHeaders6world.respect.domain.validator.TestValidationScenariosJvmField6world.respect.domain.validator.TestValidationScenariosList6world.respect.domain.validator.TestValidationScenariosListAndPrintlnValidatorReporter6world.respect.domain.validator.TestValidationScenariosNetty6world.respect.domain.validator.TestValidationScenariosRespectAppManifest6world.respect.domain.validator.TestValidationScenariosRule6world.respect.domain.validator.TestValidationScenariosString6world.respect.domain.validator.TestValidationScenariosTemporaryFolder6world.respect.domain.validator.TestValidationScenariosTest6world.respect.domain.validator.TestValidationScenariosUnit6world.respect.domain.validator.TestValidationScenariosValidateLinkUseCase6world.respect.domain.validator.TestValidationScenariosValidationScenarioContext6world.respect.domain.validator.TestValidationScenariosValidatorMessage6world.respect.domain.validator.TestValidationScenariosany6world.respect.domain.validator.TestValidationScenarios assertEquals6world.respect.domain.validator.TestValidationScenarios assertTrue6world.respect.domain.validator.TestValidationScenarioscontains6world.respect.domain.validator.TestValidationScenarioscopyResourcesToTempDir6world.respect.domain.validator.TestValidationScenariosembeddedServer6world.respect.domain.validator.TestValidationScenarios extension6world.respect.domain.validator.TestValidationScenariosfilter6world.respect.domain.validator.TestValidationScenarios findFreePort6world.respect.domain.validator.TestValidationScenariosget6world.respect.domain.validator.TestValidationScenariosinstall6world.respect.domain.validator.TestValidationScenariosjvmKoinAppModule6world.respect.domain.validator.TestValidationScenarioslistOf6world.respect.domain.validator.TestValidationScenarios mutableListOf6world.respect.domain.validator.TestValidationScenariosprintln6world.respect.domain.validator.TestValidationScenariosrecursiveFindAndReplace6world.respect.domain.validator.TestValidationScenariosreplace6world.respect.domain.validator.TestValidationScenariosrouting6world.respect.domain.validator.TestValidationScenarios runBlocking6world.respect.domain.validator.TestValidationScenarios startKoin6world.respect.domain.validator.TestValidationScenarios staticFiles6world.respect.domain.validator.TestValidationScenariosstopKoin6world.respect.domain.validator.TestValidationScenarios tempFileRule6world.respect.domain.validator.TestValidationScenariostestValidationScenario6world.respect.domain.validator.TestValidationScenariosworld6world.respect.domain.validator.TestValidationScenariosValidatorMessagePworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextanyPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext assertEqualsPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext assertTruePworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextcontainsPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextfilterPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextreporterPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContext testBaseUrlPworld.respect.domain.validator.TestValidationScenarios.ValidationScenarioContextValidatorOptions2world.respect.domain.validator.ValidateLinkUseCaseinvoke2world.respect.domain.validator.ValidateLinkUseCase Companion/world.respect.domain.validator.ValidatorMessageLevel/world.respect.domain.validator.ValidatorMessagelevel/world.respect.domain.validator.ValidatorMessagemessage/world.respect.domain.validator.ValidatorMessage sourceUri/world.respect.domain.validator.ValidatorMessageERROR5world.respect.domain.validator.ValidatorMessage.LevelFileworld.respect.testutil FileFilterworld.respect.testutil IOExceptionworld.respect.testutilIntworld.respect.testutilListworld.respect.testutilRuntimeExceptionworld.respect.testutilStringworld.respect.testutilTemporaryFolderworld.respect.testutilcopyResourcesToTempDirworld.respect.testutilcopyToworld.respect.testutil findFreePortworld.respect.testutilforEachworld.respect.testutiljavaworld.respect.testutil outputStreamworld.respect.testutilreadTextworld.respect.testutilrecursiveFindAndReplaceworld.respect.testutiltakeIfworld.respect.testutiluseworld.respect.testutil writeTextworld.respect.testutil