!m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None =?@APX`.j  !&*[Z+ \]_^,-9876543210/.-,+*). TS/RQPONM012  3456YXWVU789:;'()u<{=>?@A"B%#$C`dDE_FaGHIJKLMNbcOghiPQRSTUVWXefYZ[\]^jkmnopqrstvwlzyx|}~     ! #"('&%$:;<=>?@ABCDEFGHIJKL`abcdefghijklmnopqrstuvwxyz{|}~)8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHLKJIMNOPQRSTUVWXYcba`_^]\[Zdefghijklmnopqrstuvwxyz{|}~      !"#&%$'(*+,-./012345679:;<=>?@ABCDEFGHIJK\Q[ZYXWVUTSRPONML]^a`_fedcbghij  !&*[Z+ \]_^,-9876543210/.-,+*). TS/RQPONM012  3456YXWVU789:;'()u<{=>?@A"B%#$C`dDE_FaGHIJKLMNbcOghiPQRSTUVWXefYZ[\]^jkmnopqrstvwlzyx|}~     ! #"('&%$:;<=>?@ABCDEFGHIJKL`abcdefghijklmnopqrstuvwxyz{|}~)8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHLKJIMNOPQRSTUVWXYcba`_^]\[Zdefghijklmnopqrstuvwxyz{|}~      !"#&%$'(*+,-./012345679:;<=>?@ABCDEFGHIJK\Q[ZYXWVUTSRPONML]^a`_fedcbghiNone =?@APX`JNone =?@AMPX`YxjwebbyVVarious kinds of errors thrown by this library - these can be caught by handler code.webbyZInternal type used to terminate handler processing by throwing and catching an exception.pwebby8Captures are simply extracted path elements in a HashMapqwebby3A route is a pair of a route pattern and a handler.rwebbyAA route pattern represents logic to match a request to a handler.swebby;The main monad transformer stack used in the web-framework.@The type of a handler for a request is `WebbyM appEnv ()`. The appEnv parameter is used by the web application to store an (read-only) environment. For e.g. it can be used to store a database connection pool.twebbyrThe reader environment used by the web framework. It is parameterized by the application's environment data type.webbydA data type to represent parts of the response constructed in the handler when servicing a request.jmlkonpqrstNone =?@APX`j uwebbyIRetrieve the app environment given to the application at initialization.wwebbyRetrieve all path capturesxwebby-Retrieve a particular capture (TODO: extend?)webbyReturns an action that returns successive chunks of the rquest body. It returns an empty bytestring after the request body is consumed.webby0Return the raw request body as a lazy bytestringwebbyUUse this function, to create a WAI application. It takes a user/application defined appEnv data type and a list of routes. Routes are matched in the given order. If none of the requests match a request, a default 404 response is returned.webbyVCreate a route for a user-provided HTTP request method, pattern and handler function.webbyNCreate a route for a POST request method, given the path pattern and handler.webbyMCreate a route for a GET request method, given the path pattern and handler.webbyMCreate a route for a PUT request method, given the path pattern and handler.webbyKCreate a route for a DELETE request method, given path pattern and handler.!uvwxyz{|}~None =?@APX`k)Ijklmnopqrstuvwxyz{|}~)srqpwx}~|yz{Ituvjklmno     ! "#$%&'()*+,-./012324256789:;<=>? @ABCDEFG HIJKLMNOP(Q*RSTUVWXYZ[\]^_ `a `b `c `d `efgfhfifjklmnopq `rst `u `vwxwywzw{|} `~ ` `Z ` ` ` `pp `|| ` ` `T2\000000000000VVVVVVV       T TTTTTTTTTTTTTTTTTTT T!"#"$"$"%"&"&'(')'*'+'+','-'-'.'/'/'0'1'1'2'3'3'4'5'5'6'7'7Z8Z9Z:Z:;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;MNONP|Q|R|S|T|U|V|W|XYZY[Y[\]\]^_^`^a^b^cAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtwuwvwwxyz{|}|~|                 '                  !"#$%&'()*+,-./0123456789:;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;[;\;];^;_;`;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;{;|;};~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;      !""#$#%#&#'()(*(+(,(-(.(/(0(1(2(3(4565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5HIJIKILIMINIOIPIQRSRTRURVWXYZY[Y\Y]Y^Y_Y`Yabcbdbebfbgbhbijkjljmjnjojpjqjrstsusvswsxyzy{y|y}~~~~~~~~~~~~      !""webby-0.3.1-GS3Il93xE84EFH3miM5ODEPreludeWebby Paths_webby Webby.Types Webby.ServerbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negate>>=>>fmapreturnControl.Monad.Failfail Data.String fromString fromIntegral realToFrac toInteger toRational Control.MonadguardGHC.ExtsIsListfromList fromListN<>memptymappendmconcatjoin<*>pure*>BoundedEnumEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadRealRealFracGHC.ShowShowData.Typeable.InternalTypeable MonadFailIsString Applicative Data.FoldableFoldableData.Traversable Traversable GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel SemigroupMonoid GHC.TypesBoolCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeOrderingRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackD#FalseF#NothingJustTrueLeftRightLTEQGTbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$><|>'hashable-1.3.0.0-1RsrIcitxVDKffGN1TuMlmData.Hashable.ClassHashable text-1.2.3.1Data.Text.InternalTextconst.id3unordered-containers-0.2.10.0-b9YJCQLkMeLUf311RZkQDData.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMapGHC.IO.Handle.TypesHandle<*String Alternativemplusmzero MonadPlusnullboundedEnumFromThenboundedEnumFrommaxIntminIntData.Functor.Compose getComposeCompose Data.VoidvacuousabsurdVoidData.Semigroup mtimesDefaultcycle1 WrappedMonoid getOptionOptionsortWithData.Bifunctorsecondfirstbimap BifunctorData.List.NonEmptyinitlasttailheadnonEmptyGHC.ExecutionStackshowStackTrace getStackTraceControl.Monad.IO.ClassliftIOMonadIO fromLabelmfilter<$!>unless replicateM_ replicateM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM mapAccumR mapAccumLforMsequencemapM sequenceAtraverseControl.Applicativeoptional getZipListZipList Control.Arrow&&&Data.Functor.Identity runIdentityIdentity System.IOwithFileGHC.IO.Handle.FDstderrstdin GHC.StackwithFrozenCallStack callStack GHC.Conc.Sync writeTVarreadTVarnewTVarSTMTVarstdout GHC.IORefIORefGHC.IOFilePath GHC.ExceptionprettyCallStack prettySrcLocGHC.Exception.Type SomeExceptiondisplayException fromException toException ExceptionData.Functor.ConstgetConstConstfindallanyorand concatMapconcatasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMlengthtoListfoldl'foldrfoldMapfold Data.MonoidgetFirstFirstgetLastLastData.Semigroup.Internal stimesMonoidstimesIdempotentgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetAltAlt someNatValnatValSomeNat Data.OldListunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupgenericReplicategenericSplitAt genericDrop genericTake genericLength transpose intercalate intersperse isPrefixOf Text.Read readMaybereads fromRightfromLeftisRightisLeftpartitionEithersrightsleftseitherData.Ord comparingDown Data.ProxyProxy GHC.IO.IOMode ReadWriteMode AppendMode WriteModeReadModeIOModeatanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtexppi byteSwap64 byteSwap32 byteSwap16 Data.Bitsxor Data.Boolbool Data.Function&onfixvoid$><&>lcmgcd^^^oddeven denominator numeratordivModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFractionmaxBoundminBoundfromEnumtoEnumpredsuccGHC.Charchrunzip3unzipzipWithzip3reversebreaksplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanrscanl Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybe isNothingisJustmaybeswapuncurrycurryGHC.MVarMVarsubtractsignumabs*+ GHC.Stack.CCScurrentCallStackasTypeOf$!flipordwhen=<<liftA3<**>stimessconcat<$liftA2manysomeempty:|NonEmpty getCallStack HasCallStackstimesIdempotentMonoid/=<=compare&&||not<>maxmintransformers-0.5.5.0 Control.Monad.Trans.State.StrictStateTControl.Monad.Trans.ReaderReaderTControl.Monad.Trans.MaybeMaybeTControl.Monad.Trans.ExceptExceptT&resourcet-1.2.2-9mQA4C1qNtbAMbQUuTwoFY%Control.Monad.Trans.Resource.Internal ResourceTControl.Monad.Trans.Resource runResourceTControl.Monad.Trans.Class MonadTransliftData.IntMap.InternalIntMapData.IntSet.InternalIntSetData.Sequence.InternalSeqData.Set.InternalSetdeepseq-1.4.4.0Control.DeepSeqforce$!!deepseqrnfNFData'formatting-6.3.7-3nAJq4aGUsODXBCe9rTpAxFormatting.ShortFormattersshstdtFormatting.Internalsformatformat% hashWithSalt(http-types-0.12.3-A2cx1Lg5j0cKG76Sfj8L06Network.HTTP.Types.URIencodePathSegmentsRelativeNetwork.HTTP.Types.Versionhttp20http11http10http09 httpMinor httpMajor HttpVersionNetwork.HTTP.Types.QueryLiketoQuery QueryLikerenderQueryBuilderPartialEscaperenderQueryPartialEscape decodePath encodePath extractPathdecodePathSegmentsencodePathSegments urlDecode urlEncodeurlEncodeBuilderparseSimpleQuery parseQueryrenderSimpleQuery renderQueryrenderQueryBuildersimpleQueryToQueryparseQueryTextqueryToQueryTextrenderQueryTextqueryTextToQuery QueryItemQuery QueryTextSimpleQueryItem SimpleQueryQNQE EscapeItemPartialEscapeQueryItemPartialEscapeQueryNetwork.HTTP.Types.StatusstatusIsServerErrorstatusIsClientErrorstatusIsRedirectionstatusIsSuccessfulstatusIsInformational networkAuthenticationRequired511 status511httpVersionNotSupported505 status505gatewayTimeout504 status504serviceUnavailable503 status503 badGateway502 status502notImplemented501 status501internalServerError500 status500requestHeaderFieldsTooLarge431 status431tooManyRequests429 status429preconditionRequired428 status428unprocessableEntity422 status422 imATeapot418 status418expectationFailed417 status417requestedRangeNotSatisfiable416 status416unsupportedMediaType415 status415requestURITooLong414 status414requestEntityTooLarge413 status413preconditionFailed412 status412lengthRequired411 status411gone410 status410 conflict409 status409requestTimeout408 status408proxyAuthenticationRequired407 status407notAcceptable406 status406methodNotAllowed405 status405 notFound404 status404 forbidden403 status403paymentRequired402 status402unauthorized401 status401 badRequest400 status400permanentRedirect308 status308temporaryRedirect307 status307 useProxy305 status305notModified304 status304 seeOther303 status303found302 status302movedPermanently301 status301multipleChoices300 status300partialContent206 status206resetContent205 status205 noContent204 status204nonAuthoritative203 status203 accepted202 status202 created201 status201ok200 status200switchingProtocols101 status101 continue100 status100mkStatus statusMessage statusCodeStatusNetwork.HTTP.Types.MethodrenderStdMethod renderMethod parseMethod methodPatch methodOptions methodConnect methodTrace methodDelete methodPut methodHead methodPost methodGetMethodPATCHOPTIONSCONNECTTRACEDELETEPUTHEADPOSTGET StdMethodNetwork.HTTP.Types.HeaderparseByteRangesrenderByteRangesrenderByteRangesBuilderrenderByteRangerenderByteRangeBuilderhCookie hUserAgenthServerhRefererhRange hLocation hLastModifiedhIfRangehIfModifiedSincehDate hContentType hContentMD5hContentLengthhContentEncoding hConnection hCacheControlhAuthorizationhAcceptLanguagehAcceptHeader HeaderNameRequestHeadersResponseHeadersByteRangeSuffixByteRangeFromTo ByteRangeFrom ByteRange ByteRanges runMaybeT runReaderTControl.Monad.Trans.Identity IdentityT runIdentityT mtl-2.2.2Control.Monad.State.Classgetsmodify'modifystate MonadStateControl.Monad.Reader.Classasksreaderlocalask MonadReader runExceptTReader runReader withReader withReaderT runStateTStaterunState evalState execState withState evalStateT execStateT#relude-0.2.0-KQrhFVe8oZVAlavsTXKQvB Relude.Debug undefinedtraceIdtraceM traceShowM traceShowId traceShowerrortrace UndefinedRelude.Foldable.FoldanyMallMorMandMnotElemelemproductsumfoldMapMfoldMapA flipfoldl' DisallowElemElemErrorMessageRelude.Bool.GuardguardMifMunlessMwhenMRelude.DeepSeq evaluateNF_ evaluateNF evaluateWHNF_ evaluateWHNFRelude.ExceptionbugExcBugRelude.List.NonEmpty whenNotNullM whenNotNulluncons viaNonEmptyRelude.Monad.Either whenRightM_ whenRightM whenRight_ whenRight whenLeftM_ whenLeftM whenLeft_whenLeft maybeToLeft maybeToRight rightToMaybe leftToMaybeRelude.String.Conversion fromStrictfromLazyshow readEitherLText LByteStringdecodeUtf8Strict decodeUtf8 encodeUtf8 ConvertUtf8toTextToTexttoLTextToLTexttoStringToStringtoStricttoLazy LazyStrict Relude.Print putLTextLnputLText putTextLnputTextprintputStrLnputStrPrint Relude.Nub unstableNubsortNubhashNubordNub Relude.Monoid maybeToMonoidRelude.Monad.TransexecutingStateexecutingStateTevaluatingStateevaluatingStateT usingState usingStateT usingReader usingReaderTRelude.Monad.Maybe whenNothingM_ whenNothingM whenNothing_ whenNothing whenJustMwhenJust?:Relude.Lifted.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef writeIORef readIORefnewIORefRelude.Lifted.FileopenFile writeFilereadFilegetLine appendFileRelude.Lifted.Exitdie exitSuccess exitFailureexitWithRelude.Lifted.Concurrent readTVarIO newTVarIO atomically tryTakeMVar tryReadMVar tryPutMVartakeMVarswapMVarreadMVarputMVarnewMVar newEmptyMVarRelude.Functor.Fmap<<$>>Relude.FunctionidentityRelude.Container.OneoneOneItemOneRelude.ApplicativepassData.HashSet.BaseHashSetmaybeToExceptTexceptToMaybeTData.Text.Encoding.ErrorUnicodeException OnDecodeErrorOnError strictDecode lenientDecodeData.Text.EncodingdecodeUtf8With decodeUtf8' Data.Textwordslinesunlinesunwords stm-2.5.0.0Control.Concurrent.STM.TVar modifyTVar' liftResourceT&unliftio-0.2.12-5DamjS12r4928CJMrZLZhtUnliftIO.ExceptionthrowIO"wai-3.2.2.1-JzBDibJJ3faLI9wezOeqvE Network.WailazyRequestBodystrictRequestBody ifRequestmodifyResponsedefaultRequestmapResponseStatusmapResponseHeadersresponseToStreamresponseHeadersresponseStatus responseRawresponseStream responseLBSresponseBuilder responseFile Application MiddlewareNetwork.Wai.InternalgetRequestBodyChunkrequestHeaderUserAgentrequestHeaderRefererrequestHeaderRangerequestHeaderHostrequestBodyLengthvault requestBody queryStringpathInfo remoteHostisSecurerequestHeadersrawQueryString rawPathInfo httpVersion requestMethodRequestResponse StreamingBody KnownLength ChunkedBodyRequestBodyLengthfilePartFileSizefilePartByteCountfilePartOffsetFilePartResponseReceivedparseIntheadMay WebbyErrorWebbyJSONParseErrorWebbyParamParseErrorWebbyMissingCapture wppeParamName wppeErrMsgCapturesRoute RoutePatternWebbyMWEnv getAppEnv runAppEnvcaptures getCapture setStatus addHeader setHeaderparamsflagparamparam_headerrequestgetRequestBodyChunkActionheadersfinishblobtextrequestBodyLBSjsonDatajsonstream mkWebbyAppmkRoutepostgetputdeleteversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName FinishThrownWyRespunWebbyM weLogTime weLoggerSetweAppEnv weRequest weCapturesweResp wrResponded wrRespData wrHeaderswrStatus defaultWyResp runWebbyMresp400 matchRequesterrorResponse404invalidRoutesErr