Given a rectangular text as a word search puzzle and a search string, determine if the text contains the search string. The search string may appear:

- horizontally, vertically or diagonally
- forwards or backwards

You may write a function or a program and take two strings as input via function argument, ARGV or STDIN. The output should be a [truthy or falsy](http://meta.codegolf.stackexchange.com/a/2194/8478) result which can either be returned from the function or written to STDOUT.

Assume that the text will contain arbitrary printable ASCII characters (hex codes 20 to 7E) and line break characters. Letters are case sensitive. You may assume that the input text is rectangular, i.e. all lines have the same length.

This is code golf, the shortest answer (in bytes) wins.

## Examples

Using grid from Wikipedia's article on word searches as the first input:

    WVERTICALL
    ROOAFFLSAB
    ACRILIATOA
    NDODKONWDC
    DRKESOODDK
    OEEPZEGLIW
    MSIIHOAERA
    ALRKRRIRER
    KODIDEDRCD
    HELWSLEUTH

the following search strings should yield truthy or falsy results respectively:

    Truthy: RANDOM, VERTICAL, HORIZONTAL, WORDSEARCH, WIKIPEDIA, TAIL
    Falsy:  WordSearch, CODEGOLF, UNICORN

Alternatively, using this input text

    Lorem ipsum dolor sit amet consectetu
    r adipisicing elit sed do eiusmod tem
    por incididunt ut labore et dolore ma
    gna aliqua. Ut enim ad minim veniam, 
    quis nostrud exercitation ullamco lab
    oris nisi ut aliquip ex ea commodo co
    nsequat. Duis aute irure dolor in rep
    rehenderit in voluptate velit esse ci
    llum dolore eu fugiat nulla pariatur.

We get the following search results (using quotes now, because there are spaces in some search strings):

    Truthy: "Lorem", "mine", "uma bop", "tuetdot", "snol,a", "texas", "pii.d  v", "vexta"
    Falsy:  "lorem", "wordsearch", "pii.d v", "mute"