function CreateChapter(f)
    local characters = {
        f.Character("Sherlock", "s01c01_character_Sherlock_name"),
        f.Character("Swifty", "s01c01_character_Swifty_name"),
        f.Character("Lavanda", "s01c01_character_Lavanda_name"),
        f.Character("MrBooth", "s01c01_character_MrBooth_name"),
        f.Character("Timmy", "s01c01_character_Timmy_name"),
        f.Character("NoahMcGoudy", "s01c01_character_NoahMcGoudy_name"),
        f.Character("FlowerGirl", "s01c01_character_FlowerGirl_name"),
        f.Character("GentlemanWithNewspaper", "s01c01_character_GentlemanWithNewspaper_name"),
        f.Character("LadyWithUmbrella", "s01c01_character_LadyWithUmbrella_name")
    }
    local locations = {
        f.Location("0000_SherlockApartment", {
            "Assets/Scenes/Locations/s01c01/0000_SherlockApartment.unity"}),
        f.Location("0001_MinistryHall", {
            "Assets/Scenes/Locations/s01c01/0001_MinistryHall.unity"}),
        f.Location("0002_BadfortStreet", {
            "Assets/Scenes/Locations/s01c01/0002_BadfortStreet.unity"})
    }

    local points = {
            f.KeyPointPage(1, "s01c01_key_point_1", {1}),
            f.KeyPointPage(2, "s01c01_key_point_2", {3}),
            f.KeyPointPage(3, "s01c01_key_point_3", {9}),
            f.KeyPointPage(4, "s01c01_key_point_4", {12}),
            f.KeyPointPage(5, "s01c01_key_point_5", {15})
        }

-- TODO: пока шлем все время одни и теже тексты, надо ввести настоящие

    local notifies = {
        f.ReturningNotificationsKeyPoint(0, {
            f.ReturningNotification("s01c01_keyPoint_0_notification_0_title",
                "s01c01_keyPoint_0_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_0_notification_1_title",
                "s01c01_keyPoint_0_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_0_notification_2_title",
                "s01c01_keyPoint_0_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_0_notification_3_title",
                "s01c01_keyPoint_0_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_0_notification_4_title",
                "s01c01_keyPoint_0_notification_4_desc")
        }),
        f.ReturningNotificationsKeyPoint(1, {
            f.ReturningNotification("s01c01_keyPoint_1_notification_0_title",
                "s01c01_keyPoint_1_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_1_notification_1_title",
                "s01c01_keyPoint_1_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_1_notification_2_title",
                "s01c01_keyPoint_1_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_1_notification_3_title",
                "s01c01_keyPoint_1_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_1_notification_4_title",
                "s01c01_keyPoint_1_notification_4_desc")
        }),
        f.ReturningNotificationsKeyPoint(3, {
            f.ReturningNotification("s01c01_keyPoint_2_notification_0_title",
                "s01c01_keyPoint_2_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_2_notification_1_title",
                "s01c01_keyPoint_2_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_2_notification_2_title",
                "s01c01_keyPoint_2_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_2_notification_3_title",
                "s01c01_keyPoint_2_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_2_notification_4_title",
                "s01c01_keyPoint_2_notification_4_desc")
        }),
        f.ReturningNotificationsKeyPoint(9, {
            f.ReturningNotification("s01c01_keyPoint_3_notification_0_title",
                "s01c01_keyPoint_3_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_3_notification_1_title",
                "s01c01_keyPoint_3_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_3_notification_2_title",
                "s01c01_keyPoint_3_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_3_notification_3_title",
                "s01c01_keyPoint_3_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_3_notification_4_title",
                "s01c01_keyPoint_3_notification_4_desc")
        }),
        f.ReturningNotificationsKeyPoint(12, {
            f.ReturningNotification("s01c01_keyPoint_4_notification_0_title",
                "s01c01_keyPoint_4_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_4_notification_1_title",
                "s01c01_keyPoint_4_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_4_notification_2_title",
                "s01c01_keyPoint_4_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_4_notification_3_title",
                "s01c01_keyPoint_4_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_4_notification_4_title",
                "s01c01_keyPoint_4_notification_4_desc")
        }),
        f.ReturningNotificationsKeyPoint(15, {
            f.ReturningNotification("s01c01_keyPoint_5_notification_0_title",
                "s01c01_keyPoint_5_notification_0_desc"),
            f.ReturningNotification("s01c01_keyPoint_5_notification_1_title",
                "s01c01_keyPoint_5_notification_1_desc"),
            f.ReturningNotification("s01c01_keyPoint_5_notification_2_title",
                "s01c01_keyPoint_5_notification_2_desc"),
            f.ReturningNotification("s01c01_keyPoint_5_notification_3_title",
                "s01c01_keyPoint_5_notification_3_desc"),
            f.ReturningNotification("s01c01_keyPoint_5_notification_4_title",
                "s01c01_keyPoint_5_notification_4_desc")
          })
    };

    return f.Chapter(1, 1, "s01c01_chapter_title", characters, locations, points, null,
        notifies)
end

function CreateInvestigation(f)
    local missions = {
        f.Mission(1, "s01c01_mission_1", {0}, {f.SimpleAction()}, 1, {
            f.Speech({"s01c01_Sherlock_mission_1_speech_1_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_1_speech_2_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_1_speech_3_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_1_speech_4_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_1_speech_5_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_1_speech_6_phrase_1"})
        }),
        f.Mission(2, "s01c01_mission_2", {1}, {f.SimpleAction()}, 1, {
            f.Speech({"s01c01_Sherlock_mission_2_speech_1_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_2_speech_2_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_2_speech_3_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_2_speech_4_phrase_1", "s01c01_Sherlock_mission_2_speech_4_phrase_2"}),
            f.Speech({"s01c01_Sherlock_mission_2_speech_5_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_2_speech_6_phrase_1"})
        }),
        f.Mission(3, "s01c01_mission_3", {2}, {f.SimpleAction()}, 1, {
            f.Speech({"s01c01_Sherlock_mission_3_speech_1_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_3_speech_2_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_3_speech_3_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_3_speech_4_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_3_speech_5_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_3_speech_6_phrase_1"})
        }),
        f.Mission(4, "s01c01_mission_4", {3}, {f.SimpleAction()}, 1, {
            f.Speech({"s01c01_Sherlock_mission_4_speech_1_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_4_speech_2_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_4_speech_3_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_4_speech_4_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_4_speech_5_phrase_1"}),
            f.Speech({"s01c01_Sherlock_mission_4_speech_6_phrase_1"})
        }),
        f.Mission(5, "s01c01_mission_5", {4}, {f.SimpleAction()}, 1),
        f.Mission(6, "s01c01_mission_6", {5}, {f.SimpleAction()}, 1),
        f.Mission(7, "s01c01_mission_7", {6}, {f.SimpleAction()}, 1),
        f.Mission(8, "s01c01_mission_8", {7}, {f.SimpleAction()}, 1),
        f.Mission(9, "s01c01_mission_9", {5}, {f.SimpleAction()}, 1),
        f.Mission(10, "s01c01_mission_10", {8, 9}, {f.SimpleAction()}, 1),
        f.Mission(11, "s01c01_mission_11", {10}, {f.SimpleAction()}, 1),
        f.Mission(12, "s01c01_mission_12", {11}, {f.SimpleAction()}, 1),
        f.Mission(13, "s01c01_mission_13", {12}, {f.SimpleAction()}, 1),
        f.Mission(14, "s01c01_mission_14", {13}, {f.SimpleAction()}, 1),
        f.Mission(15, "s01c01_mission_15", {14}, {f.SimpleAction()}, 1)
    }

    return f.Investigation(2, missions)
end

function PrepareLocation()
    ChangeLocation('0000_SherlockApartment')
end

function StartInvestigation()
    Parallel(function()
        ShowLocationCaption('s01c01_location_0_caption', 's01c01_location_0_time')
        MoveCamera('camera_point_0_1', .5, 1.2, .6)
    end)

    StartDialog()
    SetupAnim('Lavanda', 'Cry', {const=true})
    ApplyAnim('Lavanda')
    SetupAnim('Lavanda', 'WipeAwayTears', {notLoop=true})
    Say('Lavanda', 'WipingAwayTears', 's01c01_Lavanda_phrase_1', null, 's01c01_character_lady_in_trouble')
    SetupAnim('Lavanda', 'Embarrassed', {notLoop=true})
    Say('Lavanda', 'Embarrassed', 's01c01_Lavanda_phrase_2', null, 's01c01_character_lady_in_trouble')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_phrase_1')
    SetupAnim('Lavanda', 'Embarrassed', {notLoop=true})
    Say('Lavanda', 'Embarrassed', 's01c01_Lavanda_phrase_3', null, 's01c01_character_lady_in_trouble')
    Say('Sherlock', 'Amiable', 's01c01_Sherlock_phrase_2')
    --SetupAnim('Lavanda', 'TalkTears', {notLoop=true})
    Say('Lavanda', 'Sad', 's01c01_Lavanda_phrase_4')
    SetupAnim('Lavanda', 'Despaired', {notLoop=true})
    Say('Lavanda', 'Despairingly', 's01c01_Lavanda_phrase_5')
    -- слишком короткая реплика для анимации
    SetupAnim('Lavanda', 'GetUpset', {notLoop=true})
    Say('Lavanda', 'Upset', 's01c01_Lavanda_phrase_6')
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_phrase_3')
    --TODO: сделать InvestigationStarted() ?
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_phrase_4')
    ResetAnim('Lavanda')
    EndDialog()

    MoveAndZoomCamera('camera_point_0_0', 1, .5, .1)
	ShowChapterTitle()
	SetAllInteractive(true)
end

function ApplyMission1Action0()

    Parallel(function()
        CameraTo('camera_point_0_1', 1, 1)
        Walk('Sherlock', 'Sherlock_point_1_0')
    end)

    StartDialog()
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_1_phrase_1')
    SetupAnim('Lavanda', 'SpreadArms', {notLoop=true})
    Say('Lavanda', 'Scattered', 's01c01_Lavanda_mission_1_phrase_1')
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_mission_1_phrase_2')
	SetupAnim('Sherlock', 'Thinking', {notLoop=true})
	Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_1_phrase_3')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_1_phrase_4')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_1_1')
        Walk('Lavanda', 'Lavanda_point_1_1')
        CameraTo('camera_point_1_0')
    end)

    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_1_phrase_5', 'Sherlock')
    Say('Sherlock', 'Guiltily', 's01c01_Sherlock_mission_1_phrase_6')
    --Анимация: Шерлок рассматривает стол
    SetupAnim('Sherlock', 'EvaluativeView', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_1_phrase_7')
    EndDialog()

    StartDialog()
    CleanCustomize('Table')
    Say('Sherlock', 'Satisfied', 's01c01_Sherlock_mission_1_phrase_8', 'Lavanda')
    EndDialog()

    Walk('Sherlock', 'Sherlock_point_1_2')
    SetActive('SherlockFeather', true)
    Play('Sherlock', 'Write')
    SetActive('SherlockFeather', false)
    Walk('Sherlock', 'Sherlock_point_1_3')

    StartDialog()
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_mission_1_phrase_9')
    --MoveCamera('camera_point_0_0', .5, 1, .6)
    EndDialog()

    ActionCompleted()
end

function ApplyMission2Action0()

    Parallel(function()
        CameraTo('camera_point_1_0', 1, 1)
        Walk('Sherlock', 'Sherlock_point_2_0')
    end)

	Parallel(function()
		Walk('Lavanda', 'Lavanda_point_2_0')
		Walk('Sherlock', 'Sherlock_point_2_1')
    end)

    ChangeLocation('0001_MinistryHall')
    ShowLocationCaption('s01c01_location_1_caption', 's01c01_location_1_time')

    Parallel(function()
        Walk('Lavanda', 'Lavanda_point_2_0', 1.4)
        Walk('Sherlock', 'Sherlock_point_2_0', 1.4)
		MoveCamera('camera_point_2_0', 2.5)
    end)

    Play('Sherlock', 'LookAround')
    -- Play('Sherlock', 'Look')
    SetupAnim('Sherlock', 'Surprised', {notLoop=true})

    StartDialog()
    Parallel(function()
        Say('Sherlock', 'Surprised', 's01c01_Sherlock_mission_2_phrase_1', 'Lavanda', nil, 'CalmDown')
        ZoomCamera(1.5, .5)
    end)
    SetupAnim('Lavanda', 'Dreamily', {notLoop=true})
    Say('Lavanda', 'Dreamily', 's01c01_Lavanda_mission_2_phrase_1')
    Say('Sherlock', 'Concentrated', 's01c01_Sherlock_mission_2_phrase_2', 'Lavanda', nil, 'Upset')
    ActionCompleted()
    Say('Sherlock', 'Concentrated', 's01c01_Sherlock_mission_2_phrase_3')
    EndDialog()

end

function ApplyMission3Action0()

    --CameraTo('camera_point_2_0', 1, 1.5)

	Parallel(function()
		Walk('Sherlock', 'Sherlock_point_3_0')
		Sequence(function()
		    Delay(1)
		    Walk('Lavanda', 'Lavanda_point_3_0')
        end)
	    CameraTo('camera_point_3_0', 1, 2.2)
	end)

	StartDialog()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_3_phrase_1')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_1')
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_3_phrase_2')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_2')
    Say('Lavanda', 'Upset', 's01c01_Lavanda_mission_3_phrase_1', 'Sherlock')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_3_phrase_3', 'MrBooth')
    EndDialog()

    Customize('Cabinet')

    StartDialog()
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_3')
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_3_phrase_4')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_4')

    SetupAnim('Sherlock', 'PointToPerson', {notLoop=true})
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_3_phrase_5')

    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_5')
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_3_phrase_6')

    SetupAnim('MrBooth', 'Thinking', {notLoop=true})
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_3_phrase_6')

    Say('Sherlock', 'Concentrated', 's01c01_Sherlock_mission_3_phrase_7')

    SetupAnim('MrBooth', 'Confidently', {notLoop=true})
    Say('MrBooth', 'Confidently', 's01c01_MrBooth_mission_3_phrase_7')

    ActionCompleted()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_3_phrase_8')
    EndDialog()

    ZoomCamera(1.5, .5)
end

function ApplyMission4Action0()

    --CameraTo('camera_point_3_0', 1, 1.5)

	Parallel(function()
	    Walk('Lavanda', 'Lavanda_point_4_0')
		Walk('Sherlock', 'Sherlock_point_4_0')
		CameraTo('camera_point_4_0', 1, 2.2)
	end)

	StartDialog()
    Say('Lavanda', 'Sad', 's01c01_Lavanda_mission_4_phrase_1')
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_mission_4_phrase_1')
    Say('Lavanda', 'CalmDown', 's01c01_Lavanda_mission_4_phrase_2')
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_4_phrase_2')
    ActionCompleted()
    SetupAnim('Lavanda', 'Thinking', {notLoop=true})
    Say('Lavanda', 'Thoughtful', 's01c01_Lavanda_mission_4_phrase_3')
    EndDialog()

end

function ApplyMission5Action0()
	Parallel(function()
	    Walk('Lavanda', 'Lavanda_point_5_0')
		Walk('Sherlock', 'Sherlock_point_5_0')
		CameraTo('camera_point_5_0', 1, 1)
	end)
	ChangeLocation('0002_BadfortStreet');
	ShowLocationCaption('s01c01_location_2_caption', 's01c01_location_2_time');


	Parallel(function()
	    Walk('Lavanda', 'Lavanda_point_5_1', 1.4)
	    Walk('Sherlock', 'Sherlock_point_5_1', 1.4)
        MoveCamera('camera_point_0_0', 4, 1.5)
    end)

    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_5_phrase_1')
    EndDialog()

    MoveCamera('camera_point_5_1', 1)

    StartDialog()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_5_phrase_2')
    EndDialog()

    MoveCamera('camera_point_5_2', 1)

    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_5_phrase_3', nil, nil, nil, nil, true, false)
    EndDialog()

    MoveCamera('camera_point_0_0', 1)
end

function ApplyMission6Action0()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_6_0')
        Walk('Lavanda', 'Lavanda_point_6_0')
        MoveCamera('camera_point_6_0', 2)
    end)

    StartDialog()
    SetupAnim('Timmy', 'ExpresslyIndifferently', {notLoop=true})
    Say('Timmy', 'ExpresslyIndifferently', 's01c01_Timmy_mission_6_phrase_1')

    Say('Sherlock', 'Amiable', 's01c01_Sherlock_mission_6_phrase_3')

    SetupAnim('Timmy', 'ExpresslyIndifferently', {notLoop=true})
    Say('Timmy', 'ExpresslyIndifferently', 's01c01_Timmy_mission_6_phrase_2')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_6_1')
        Walk('Lavanda', 'Lavanda_point_6_1')
        MoveCamera('camera_point_6_1', 2)
    end)
    ActionCompleted()

    StartDialog()
    Say('Sherlock', 'Bewildered', 's01c01_Sherlock_mission_6_phrase_4', 'Sherlock')
    EndDialog()

    ZoomCamera(1, .5)
end

function ApplyMission7Action0()

    Parallel(function()
        CameraTo('camera_point_6_1', 1, 1)
        Walk('Sherlock', 'Sherlock_point_7_0_1')
    end)

    Play('Sherlock', 'EvaluativeView')
    Walk('Sherlock', 'Sherlock_point_7_0_2')

    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_7_phrase_1', 'Sherlock')
    SetupAnim('Sherlock', 'Enlightened', {notLoop=true})
    Say('Sherlock', 'Joyous', 's01c01_Sherlock_mission_7_phrase_2')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_7_0')
        Walk('Lavanda', 'Lavanda_point_7_0')
    end)
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_7_1')
        Walk('Lavanda', 'Lavanda_point_7_1', 1.3)
        MoveCamera('camera_point_7_0', 2, 1.5, -1, false)
    end)

    StartDialog()
    --SetupAnim('NoahMcGoudy', 'TalkEmotional')
    SetupAnim('NoahMcGoudy', 'Hello', {notLoop=true})
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_1', 'Sherlock', nil, 'Calm')

    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_7_phrase_3')
    --SetupAnim('NoahMcGoudy', 'TalkEmotional')

    SetupAnim('NoahMcGoudy', 'PraiseGoods', {notLoop=true})
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_2')
    EndDialog()

    Play('NoahMcGoudy', 'Open')

    StartDialog()
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_7_phrase_4')
    --TODO Эмоция [Страдальческая улыбка]
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_3')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_7_phrase_5')
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_mission_7_phrase_6')
    EndDialog()

    Play('Sherlock', 'ChestOpen')

    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_7_phrase_7', 'Sherlock')
    Say('Sherlock', 'Resolute', 's01c01_Sherlock_mission_7_phrase_8')
    EndDialog()

    Customize('Trolleys')

    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_7_phrase_9', 'NoahMcGoudy')
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_4')
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_5')
    EndDialog()

    Parallel(function()
        Play('Sherlock', 'Take')
        Sequence(function()
            Delay(.6)
            SetActive('SherlockCake', true)
        end)
        Sequence(function()
            Delay(1.9)
            SetActive('SherlockCake', false)
        end)
    end)

    StartDialog()
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_7_phrase_10')
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_7_phrase_6')

    ActionCompleted()
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_7_2')
        Walk('Lavanda', 'Lavanda_point_7_2')
    end)
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_7_3')
        Walk('Lavanda', 'Lavanda_point_7_3')
        MoveCamera('camera_point_7_1', 2, 1, -1, false)
    end)

end

function ApplyMission8Action0()

    --CameraTo('camera_point_7_1', 1, 1)

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_8_0')
        Walk('Lavanda', 'Lavanda_point_8_0')
        CameraTo('camera_point_8_0', 1, 1.5)
    end)

    StartDialog()
    Say('Sherlock', 'Amiable', 's01c01_Sherlock_mission_8_phrase_1')
    SetupAnim('Timmy', 'ExpresslyIndifferently', {notLoop=true})
    Say('Timmy', 'ExpresslyIndifferently', 's01c01_Timmy_mission_8_phrase_1')

    Say('Sherlock', 'Amiable', 's01c01_Sherlock_mission_8_phrase_2')
    SetupAnim('Timmy', 'Disappointed', {notLoop=true})
    Say('Timmy', 'Disappointed', 's01c01_Timmy_mission_8_phrase_2')
    Say('Sherlock', 'spec:ArchlyCake', 's01c01_Sherlock_mission_8_phrase_3')
    EndDialog()

    Parallel(function()
        Sequence(function()
            Delay(0.1)
            SetActive('SherlockCake', true)
        end)
        Play('Sherlock', 'Give')
        Sequence(function()
            Delay(0.5)
            Play('Timmy', 'TakeCake')
        end)
        Sequence(function()
            Delay(1)
            SetActive('SherlockCake', false)
        end)
    end)

    Play('Timmy', 'Eat')

    StartDialog()
    Say('Sherlock', 'Serious', 's01c01_Sherlock_mission_8_phrase_4', 'Timmy', nil, 'spec:HappyCreamFace')
    SetupAnim('Timmy', 'FullAndFatisfied', {notLoop=true})
    Say('Timmy', 'spec:HappyCreamFace', 's01c01_Timmy_mission_8_phrase_3')

    Say('Timmy', 'Satisfied', 's01c01_Timmy_mission_8_phrase_4')
    SetupAnim('Sherlock', 'PointToPerson_right', {notLoop=true})
    Say('Sherlock', 'Amiable', 's01c01_Sherlock_mission_8_phrase_5')
    --SetupAnim('Timmy', 'TalkEmotional')

    SetupAnim('Timmy', 'Thinking', {notLoop=true})
    Say('Timmy', 'Thoughtful', 's01c01_Timmy_mission_8_phrase_5')
    EndDialog()

    Play('Timmy', 'ShowDirection')

    StartDialog()
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_8_phrase_6')
    ActionCompleted()

    SetupAnim('Timmy', 'HappyBye', {notLoop=true})
    Say('Timmy', 'Satisfied', 's01c01_Timmy_mission_8_phrase_6')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_8_1')
        Walk('Lavanda', 'Lavanda_point_8_1')
        MoveCamera('camera_point_8_1', 2, 1)
    end)
end

function ApplyMission9Action0()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_9_0')
        Walk('Lavanda', 'Lavanda_point_9_0')
        CameraTo('camera_point_0_0', 1, 1)
    end)
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_9_1')
        Walk('Lavanda', 'Lavanda_point_9_1')
        MoveCamera('camera_point_9_0', 2, 1.5, -1, false)
    end)

    StartDialog()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_9_phrase_1')
    --SetupAnim('NoahMcGoudy', 'TalkEmotional')
    SetupAnim('NoahMcGoudy', 'Helpfully', {notLoop=true})
    Say('NoahMcGoudy', 'SalesmanSmile', 's01c01_NoahMcGoudy_mission_9_phrase_1')

    SetupAnim('Sherlock', 'PointToPerson_right', {notLoop=true})
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_9_phrase_2')
    SetupAnim('NoahMcGoudy', 'Thinking', {notLoop=true})
    Say('NoahMcGoudy', 'Thoughtful', 's01c01_NoahMcGoudy_mission_9_phrase_2')

    SetupAnim('Sherlock', 'TalkGesticulation', {notLoop=true})
    Say('Sherlock', 'Crafty', 's01c01_Sherlock_mission_9_phrase_3')
    Say('Sherlock', 'Archly', 's01c01_Sherlock_mission_9_phrase_4')
    --SetupAnim('NoahMcGoudy', 'TalkEmotional')
    SetupAnim('NoahMcGoudy', 'ExpresslySurprised', {notLoop=true})
    Say('NoahMcGoudy', 'Satisfied', 's01c01_NoahMcGoudy_mission_9_phrase_3')
    Say('Swifty', 'spec:PeepOutExcited', 's01c01_Swifty_mission_9_phrase_1', 'Sherlock')
    SetupAnim('Sherlock', 'TalkToPocket', {notLoop=true})
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_9_phrase_5')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_9_phrase_6', 'NoahMcGoudy')

    SetupAnim('NoahMcGoudy', 'Thinking', {notLoop=true})
    Say('NoahMcGoudy', 'Thoughtful', 's01c01_NoahMcGoudy_mission_9_phrase_4')

    ActionCompleted()
    Say('Sherlock', 'Thankfully', 's01c01_Sherlock_mission_9_phrase_7')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_9_2')
        Walk('Lavanda', 'Lavanda_point_9_2')
    end)
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_9_3')
        Walk('Lavanda', 'Lavanda_point_9_3')
        MoveCamera('camera_point_9_1', 2, 1, -1, false)
    end)
end

function ApplyMission10Action0()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_9_3')
        CameraTo("camera_point_9_1", 1, 1.5)
    end)

--[[    CameraTo('Sherlock')

    ZoomCamera(1.5, .5)--]]

    StartDialog()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_10_phrase_1')
    SetupAnim('Lavanda', 'GetUpset', {notLoop=true})
    Say('Lavanda', 'Upset', 's01c01_Lavanda_mission_10_phrase_1')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_10_phrase_2')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_10_0')
        Walk('Lavanda', 'Lavanda_point_10_0')
        MoveCamera('camera_point_10_0', 3, 1, -1, false)
    end)

    SetupLocation(function()
        MoveCamera('camera_point_10_0', 0)
    end)

    ChangeLocation('0001_MinistryHall')
    Parallel(function()
        ShowLocationCaption('s01c01_location_3_caption', 's01c01_location_3_time');
        Walk('Sherlock', 'Sherlock_point_10_1')
        Walk('Lavanda', 'Lavanda_point_10_1')
    end)
    ActionCompleted()
end

function ApplyMission11Action0()

    --CameraTo('camera_point_10_0', 1, 1)

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_11_0')
        CameraTo('camera_point_11_0', 1, 1.5)
    end)

    StartDialog()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_11_phrase_1')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_11_phrase_1')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_11_phrase_2')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_11_phrase_2')
    SetupAnim('Sherlock', 'TalkGesticulation', {notLoop=true})
    Say('Sherlock', 'Annoyed', 's01c01_Sherlock_mission_11_phrase_3')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_11_phrase_3')
    Say('Sherlock', 'ExhalesCalmDown', 's01c01_Sherlock_mission_11_phrase_4')
    Say('Sherlock', 'Interested', 's01c01_Sherlock_mission_11_phrase_5')
    Say('MrBooth', 'DutyCourtesy', 's01c01_MrBooth_mission_11_phrase_4')
    ActionCompleted()
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_11_phrase_6')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_11_1')
        MoveCamera('camera_point_11_1', 1.5)
    end)
end

function ApplyMission12Action0()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_11_1')
        CameraTo('camera_point_11_1', 1, 1.5)
    end)

    StartDialog()
    SetupAnim('Sherlock', 'Thinking', {notLoop=true})
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_12_phrase_1', 'Sherlock')
    EndDialog()

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_12_0')
        MoveCamera('camera_point_12_0', .5)
    end)

    StartDialog()
    Say('Sherlock', 'Embarrassed', 's01c01_Sherlock_mission_12_phrase_2', 'Lavanda')
    SetupAnim('Lavanda', 'Embarrassed', {notLoop=true})
    Say('Lavanda', 'Embarrassed', 's01c01_Lavanda_mission_12_phrase_1')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_12_phrase_3')
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_12_phrase_4')
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_12_phrase_5')
    SetupAnim('Lavanda', 'GetUpset', {notLoop=true})
    Say('Lavanda', 'Sad', 's01c01_Lavanda_mission_12_phrase_2')
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_12_phrase_6')
    SetupAnim('Lavanda', 'Cry', {notLoop=true})
    Say('Lavanda', 'Sad', 's01c01_Lavanda_mission_12_phrase_3')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_12_phrase_7')
    Say('Sherlock', 'Confidently', 's01c01_Sherlock_mission_12_phrase_8')
    Say('Lavanda', 'Surprised', 's01c01_Lavanda_mission_12_phrase_4')
    Say('Sherlock', 'Satisfied', 's01c01_Sherlock_mission_12_phrase_9')
    SetupAnim('Lavanda', 'Cry', {notLoop=true})
    Say('Lavanda', 'Sad', 's01c01_Lavanda_mission_12_phrase_5')
    ActionCompleted()
    Say('Sherlock', 'Confidently', 's01c01_Sherlock_mission_12_phrase_10')
    EndDialog()
end

function ApplyMission13Action0()

    --CameraTo('camera_point_12_0', 1, 1.5)

    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_13_0')
        Walk('Lavanda', 'Lavanda_point_13_0')
        CameraTo('camera_point_13_0', 1, 1)
    end)
    ChangeLocation('0002_BadfortStreet');
    Parallel(function()
        ShowLocationCaption('s01c01_location_2_caption', 's01c01_location_2_time')
        Walk('Lavanda', 'Lavanda_point_13_1')
        Walk('Sherlock', 'Sherlock_point_13_1')
    end)
    ZoomCamera(1.5, .5)
end

function ApplyMission14Action0()

    Parallel(function()
        Walk('Lavanda', 'Lavanda_point_13_1')
        Walk('Sherlock', 'Sherlock_point_13_1')
        SetTo('Swifty', 'Swifty_point_13_0')
        CameraTo('camera_point_0_0', 1, 1.5)
    end)

    StartDialog()
    Parallel(function()
        ReleaseMouse()
        Say('Sherlock', 'spec:SmileSwifty', 's01c01_Sherlock_mission_13_phrase_1', 'Sherlock')
    end)
    SetActive('Swifty', true)
    EndDialog()

    Parallel(function()
        SetupAnim('Swifty', 'Search')
        Walk('Swifty', 'swifty_point_14_0')
        Walk('Sherlock', 'Sherlock_point_14_0')
        MoveCamera('camera_point_14_0', 1.5, 1, -1, false)
    end)

    StartDialog()
    Say('Sherlock', 'Smile', 's01c01_Sherlock_mission_13_phrase_2', 'Swifty')
    EndDialog()

    Parallel(function()
        SetupAnim('Swifty', 'Search')
        Walk('Swifty', 'swifty_point_14_1')
        Sequence(function()
            Delay(1)
            Walk('Sherlock', 'Sherlock_point_14_1')
            Walk('Lavanda', 'Lavanda_point_14_0')
        end)
        MoveCamera('camera_point_14_1', 2.5, 1.5, -1, false)
    end)

    StartDialog()

    Parallel(function()
        Say('Timmy', 'Surprised', 's01c01_Timmy_mission_13_phrase_1', 'Timmy')
        Play('Timmy', 'SurprisedScared')
    end)

    Say('Sherlock', 'Smile', 's01c01_Sherlock_mission_13_phrase_3', 'Swifty')
    SetupAnim('Swifty', 'Search')
    EndDialog()

    Walk('Swifty', 'swifty_point_14_2')
    Play('Swifty', 'AttractAttention')
    Parallel(function()
        Walk('Sherlock', 'Sherlock_point_14_2')
        Walk('Lavanda', 'Lavanda_point_14_1')
    end)
end

function ApplyMission15Action0()

    --CameraTo('camera_point_14_1', 1, 1.5)

    Parallel(function()
        Sequence(function()
            Delay(.4)
            Walk('Lavanda', 'Lavanda_point_15_0_01')
            Walk('Lavanda', 'Lavanda_point_15_0')
        end)
        Walk('Sherlock', 'Sherlock_point_15_0')
		CameraTo('camera_point_15_0', 1, 1.5);
    end)

    StartDialog()
    Say('Sherlock', 'Satisfied', 's01c01_Sherlock_mission_14_phrase_1')
    -- TODO: тут нужна анимация, пока ее нет. Шерлок достает сумку Лаванды
    EndDialog()

    Walk('Sherlock', 'Sherlock_point_15_1')

    Parallel(function()
        Play('Sherlock', 'GiveSandwich')
        Sequence(function()
            Delay(2.8)
            SetActive('Bag', true)
        end)
    end)
    Walk('Sherlock', 'Sherlock_point_15_2')

    StartDialog()
    Say('Sherlock', 'Satisfied', 's01c01_Sherlock_mission_14_phrase_2')
    -- TODO: анимация Шерлок отдает сумку Лаванде
    EndDialog()

    Parallel(function()
        Walk('Lavanda', 'Lavanda_point_15_0_1')
        Play('Sherlock', 'Give')
        Sequence(function()
            Delay(1.1)
            SetActive('Bag', false)
        end)
        Sequence(function()
            Delay(0.4)
            SetupAnim('Lavanda', 'IdleBag', {const=true})
            ApplyAnim('Lavanda')
            Play('Lavanda', 'TakeBag')
        end)
    end)

    SetupAnim('Lavanda', 'ExcitedBag', {notLoop=true})
    --SetupAnim('Lavanda', 'IdleBag')

    StartDialog()
    Say('Lavanda', 'Excited', 's01c01_Lavanda_mission_14_phrase_1')
    EndDialog()

    SetupAnim('Lavanda', 'WalkBag')
    Walk('Lavanda', 'Lavanda_point_15_0_2', 3)
    Parallel(function()
        Play('Lavanda', 'Hug')
        Sequence(function()
            Delay(0.5)
            Play('Sherlock', 'ReactOnHug')
        end)
    end)
    SetupAnim('Lavanda', 'WalkBag')
    Walk('Lavanda', 'Lavanda_point_15_0_3')
    --SetupAnim('Lavanda', 'TalkEmotionalBag')
    SetupAnim('Lavanda', 'DreamilyBag', {notLoop=true})

    StartDialog()
    Say('Lavanda', 'Dreamily', 's01c01_Lavanda_mission_14_phrase_2')
    SetupAnim('Lavanda', 'IdleBag')
    ApplyAnim('Lavanda')
    Say('Sherlock', 'Sarcastic', 's01c01_Sherlock_mission_14_phrase_3')
    --SetupAnim('Lavanda', 'TalkBag')
    SetupAnim('Lavanda', 'ExcitedBag', {notLoop=true})
    Say('Lavanda', 'Excited', 's01c01_Lavanda_mission_14_phrase_3')
    SetupAnim('Lavanda', 'IdleBag')
    ApplyAnim('Lavanda')
    Say('Sherlock', 'Thoughtful', 's01c01_Sherlock_mission_14_phrase_4')
    EndDialog()

    Walk('Swifty', 'swifty_point_15_0')
    Parallel(function()
        Play('Lavanda', 'GiveCheese')
        Sequence(function()
            Delay(4.8)
            Play('Swifty', 'Take')
        end)
        Sequence(function()
            Delay(5.8)
            SetActive('SwiftyCheese', true)
        end)
        Sequence(function()
            Delay(6.5)
            Play('Swifty', 'TakeEnd')
        end)
    end)

    StartDialog()
    Parallel(function()
        Say('Swifty', 'spec:HappyWithCheese', 's01c01_Swifty_mission_14_phrase_1', 'Swifty')
        Sequence(function()
            Play('Swifty', 'Eat')
            SetActive('SwiftyCheese', false)
        end)
    end)
    SetupAnim('Lavanda', 'TalkBag')
    Say('Lavanda', 'Surprised', 's01c01_Lavanda_mission_14_phrase_4', 'Sherlock', nil, 'Calm')
    SetupAnim('Lavanda', 'IdleBag')
    ApplyAnim('Lavanda')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_14_phrase_5')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_14_phrase_6')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_14_phrase_7')
    Say('Sherlock', 'Calm', 's01c01_Sherlock_mission_14_phrase_8')
    --SetupAnim('Lavanda', 'TalkBag')
    SetupAnim('Lavanda', 'ExcitedBag', {notLoop=true})
    Say('Lavanda', 'Admiringly', 's01c01_Lavanda_mission_14_phrase_5')
    InvestigationCompleted()
    ActionCompleted()
    Say('Sherlock', 'Confidently', 's01c01_Sherlock_mission_14_phrase_9')
    EndDialog()
end

function ApplyMissionActionBeforeNextChapter()

    Parallel(function()
        Walk('Swifty', 'swifty_point_15_1')
        Walk('Sherlock', 'Sherlock_point_15_2_1')
        CameraTo('camera_point_15_0', 1, 1.5)
    end)

    PocketMouse()
    --SetActive('Swifty', false)
    SetupAnim('Lavanda', 'WalkBag')
    Parallel(function()
        Walk('Lavanda', 'Lavanda_point_15_1')
        Walk('Sherlock', 'Sherlock_point_15_3')
    end)
    SetupAnim('Lavanda', 'WalkBag')
    Parallel(function()
        Walk('Lavanda', 'Lavanda_point_15_2')
        Walk('Sherlock', 'Sherlock_point_15_4')
        MoveCamera('camera_point_15_1', 3, 1, -1, false)
    end)
end

function ReleaseMouse()
    Parallel(function()
        SetActive('SwiftyHand', true)
        Play('Sherlock', 'ReleaseMouse')
        Sequence(function()
            Play('SwiftyHand', 'Release')
            Parallel(function()
                SetActive('SwiftyHand', false)
                -- TODO: включить когда будет поддержка вложенных точек
                -- SetTo('Swifty', 'Swifty_release_point')
                SetActive('Swifty', true)
            end)
        end)
    end)
end

function PocketMouse()
    -- TODO: включить когда будет поддержка вложенных точек
    -- Walk('Swifty', 'Swifty_pocket_point')

    Parallel(function()
        SetActive('Swifty', false)
        SetActive('SwiftyPocket', true)
        Play('Sherlock', 'PocketMouse')
        Sequence(function()
            Play('SwiftyPocket', 'Pocket')
            SetActive('SwiftyPocket', false)
        end)
    end)
end

function MoveAndZoomCamera(pointUid, zoom, duration, zoomDelta)
    MoveCamera(pointUid, duration, zoom, duration + (zoomDelta or 0))
end

function CreateInteractiveEnvironment(f)
    return f.InteractiveEnvironment(
    {
        CreateInteractiveLocation(f, '0000_SherlockApartment',
        {
            f.InteractiveObject('LavandaIso',
            {
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_0'},
                     {'s01c01_lio_0000_Lavanda_1'},
                     {'s01c01_lio_0000_Lavanda_2'}}),
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_3'},
                     {'s01c01_lio_0000_Lavanda_4'}},
                    f.InvestigationRestriction(1, '=')),
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_5'},
                     {'s01c01_lio_0000_Lavanda_6'},
                     {'s01c01_lio_sherlock_common_phrase_0'}},
                    f.InvestigationRestriction(2, '=')),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_phrase_0'},
                     {'s01c01_lio_0000_Lavanda_phrase_1'},
                     {'s01c01_lio_0000_Lavanda_phrase_2'}},
                     {'Lavanda'}),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_phrase_3'},
                     {'s01c01_lio_0000_Lavanda_phrase_4'},
                     {'s01c01_lio_0000_Lavanda_phrase_5'},
                     {'s01c01_lio_0000_Lavanda_phrase_6'},
                     {'s01c01_lio_0000_Lavanda_phrase_7'}},
                     {'Lavanda'},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('Table',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_desk_1_point',
                    {{'s01c01_lio_0000_decoration_desk_1_0'},
                     {'s01c01_lio_0000_decoration_desk_1_1'},
                     {'s01c01_lio_0000_decoration_desk_1_2'}},
                     f.InvestigationRestriction(2,'<')),
                SherlockWalkAndSpeech(f, 'io_decoration_desk_1_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '=')),
                SherlockWalkAndSpeech(f, 'io_decoration_desk_1_point',
                    {{'s01c01_lio_0000_decoration_desk_1_3'}},
                    f.InvestigationRestriction(1, '>')),
                SherlockWalkAndSpeech(f,'io_decoration_desk_1_point',
                    {{'s01c01_lio_0000_decoration_desk_1_4'},
                    {'s01c01_lio_0000_decoration_desk_1_5'},
                    {'s01c01_lio_0000_decoration_desk_1_6'},
                    {'s01c01_lio_0000_decoration_desk_1_7'}})    
            }),
            f.InteractiveObject('Bed',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_bed_point',
                    {{'s01c01_lio_0000_decoration_bed_0'},
                     {'s01c01_lio_0000_decoration_bed_1'},
                     {'s01c01_lio_0000_decoration_bed_2'},
                     {'s01c01_lio_0000_decoration_bed_3'}})
            }),
            f.InteractiveObject('decoration-desk_2',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_desk_2_point',
                    {{'s01c01_lio_0000_decoration_desk_2_0'},
                     {'s01c01_lio_0000_decoration_desk_2_1'},
                     {'s01c01_lio_0000_decoration_desk_2_2'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_desk_2_point',
                    {{'s01c01_lio_0000_decoration_desk_2_3'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-carpetBag',
            {
                SherlockWalkAndSpeech(f, 'io_carpet_bag_point',
                    {{'s01c01_lio_0000_carpet_bag_0'},
                     {'s01c01_lio_0000_carpet_bag_1'},
                     {'s01c01_lio_0000_carpet_bag_2'},
                     {'s01c01_lio_0000_carpet_bag_3'},
                     {'s01c01_lio_0000_carpet_bag_4'}})
            }),
            f.InteractiveObject('decoration-portrait',
            {
                SherlockWalkAndSpeech(f, 'io_fireplace_point',
                    {{'s01c01_lio_0000_decoration_portrait_0'},
                     {'s01c01_lio_0000_decoration_portrait_1'}})
            }),
            f.InteractiveObject('Fireplace',
            {
                SherlockWalkAndSpeech(f, 'io_fireplace_point',
                    {{'s01c01_lio_0000_place_fire_0'},
                     {'s01c01_lio_0000_place_fire_1'},
                     {'s01c01_lio_0000_place_fire_2'},
                     {'s01c01_lio_0000_place_fire_3'},
                     {'s01c01_lio_0000_place_fire_4'}}),
                SherlockWalkAndSpeech(f, 'io_fireplace_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-firewood',
            {
                SherlockWalkAndSpeech(f, 'io_firewood_point',
                    {{'s01c01_lio_0000_place_wood_0'},
                     {'s01c01_lio_0000_place_wood_1'},
                     {'s01c01_lio_0000_place_wood_2'}})
            }),
            f.InteractiveObject('decoration-doorPanel_2',
            {
                SherlockWalkAndSpeech(f, 'io_door_point',
                    {{'s01c01_lio_0000_door_0'}}),
                SherlockWalkAndSpeech(f, 'io_door_point',
                    {{'s01c01_lio_0000_door_1'},
                     {'s01c01_lio_0000_door_2'}},
                    f.InvestigationRestriction(1, '=')),
                SherlockWalkAndSpeech(f, 'io_door_point',
                    {{'s01c01_lio_sherlock_common_phrase_0'},
                     {'s01c01_lio_sherlock_common_phrase_1'},
                     {'s01c01_lio_sherlock_common_phrase_3'}},
                    f.InvestigationRestriction(2, '='))
            }),
            CreateInteractiveObjects(f,
                {
                    'decoration-vase',
                    'decoration-vase_2',
                    'decoration-vase_3'
                },
                CreateSameActions(f, {
                    'io_decoration_vase_point',
                    'io_decoration_window_point',
                    'io_decoration_vase_point_3'
                }, SherlockWalkAndSpeech,
                    {{'s01c01_lio_0000_vase_0'},
                     {'s01c01_lio_0000_vase_1'},
                     {'s01c01_lio_0000_vase_2'},
                     {'s01c01_lio_0000_vase_3'}})
            ),
            f.InteractiveObject('Clock',
            {
                SherlockWalkAndSpeech(f, 'io_clock_point',
                    {{'s01c01_lio_0000_clock_0'},
                     {'s01c01_lio_0000_clock_1'},
                     {'s01c01_lio_0000_clock_2'}}),
                SherlockWalkAndSpeech(f, 'io_clock_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '=')),
                SherlockWalkAndSpeech(f, 'io_clock_point',
                    {{'s01c01_lio_0000_clock_3'}},
                    f.InvestigationRestriction(2, '='))
            }),
            f.InteractiveObject('Cage',
            {
                SherlockWalkAndSpeech(f, 'io_bird_cage_point',
                    {{'s01c01_lio_0000_bird_cage_0'},
                     {'s01c01_lio_0000_bird_cage_1'},
                     {'s01c01_lio_0000_bird_cage_2'},
                     {'s01c01_lio_0000_bird_cage_3'},
                     {'s01c01_lio_0000_bird_cage_4'}}),
                SherlockWalkAndSpeech(f, 'io_bird_cage_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-cabinet_1',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_cabinet_1_point',
                    {{'s01c01_lio_0000_cabinet_1_0'},
                     {'s01c01_lio_0000_cabinet_1_1'},
                     {'s01c01_lio_0000_cabinet_1_2'},
                     {'s01c01_lio_0000_cabinet_1_3'},
                     {'s01c01_lio_0000_cabinet_1_4'},
                     {'s01c01_lio_0000_cabinet_1_5'}})
            }),
            f.InteractiveObject('decoration-window',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_window_point',
                    {{'s01c01_lio_0000_decoration_window_0'},
                     {'s01c01_lio_0000_decoration_window_1'},
                     {'s01c01_lio_0000_decoration_window_2'},
                     {'s01c01_lio_0000_decoration_window_3'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_window_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-chest_of_drawers',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_mirror_point',
                    {{'s01c01_lio_0000_decoration_chest_of_drawers_0'},
                     {'s01c01_lio_0000_decoration_chest_of_drawers_1'},
                     {'s01c01_lio_0000_decoration_chest_of_drawers_2'},
                     {'s01c01_lio_0000_decoration_chest_of_drawers_3'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_mirror_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-mirror',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_mirror_point',
                    {{'s01c01_lio_0000_decoration_mirror_0'},
                     {'s01c01_lio_0000_decoration_mirror_1'},
                     {'s01c01_lio_0000_decoration_mirror_2'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_mirror_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-cabinet_2',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_cabinet_2_point',
                    {{'s01c01_lio_0000_decoration_cabinet_2_0'},
                     {'s01c01_lio_0000_decoration_cabinet_2_1'},
                     {'s01c01_lio_0000_decoration_cabinet_2_2'}})
            }),
            f.InteractiveObject('decoration-box',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_box_point',
                    {{'s01c01_lio_0000_decoration_box_0'},
                     {'s01c01_lio_0000_decoration_box_1'},
                     {'s01c01_lio_0000_decoration_box_2'},
                     {'s01c01_lio_0000_decoration_box_3'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_box_point',
                    {{'s01c01_lio_0000_Lavanda_common_1'}},
                    f.InvestigationRestriction(1, '='))
            }),
            f.InteractiveObject('decoration-sofa',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_sofa_point',
                    {{'s01c01_lio_0000_decoration_sofa_0'},
                     {'s01c01_lio_0000_decoration_sofa_1'},
                     {'s01c01_lio_0000_decoration_sofa_2'},
                     {'s01c01_lio_0000_decoration_sofa_3'}})
            }),
            f.InteractiveObject('decoration-kitchen',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_kitchen_point',
                    {{'s01c01_lio_0000_decoration_kitchen_0'},
                     {'s01c01_lio_0000_decoration_kitchen_1_0', 's01c01_lio_0000_decoration_kitchen_1_1'},
                     {'s01c01_lio_0000_decoration_kitchen_2_0', 's01c01_lio_0000_decoration_kitchen_2_1'},
                     {'s01c01_lio_0000_decoration_kitchen_3'}})
            }),
            f.InteractiveObject('decoration-bar_chair',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_bar_chair_point',
                    {{'s01c01_lio_0000_decoration_bar_chair_0'},
                     {'s01c01_lio_0000_decoration_bar_chair_1_0', 's01c01_lio_0000_decoration_bar_chair_1_1'},
                     {'s01c01_lio_0000_decoration_bar_chair_2'},
                     {'s01c01_lio_0000_decoration_bar_chair_3'}})
            }),
            CreateInteractiveObjects(f,
            {
                'decoration-chair_1',
                'decoration-chair_2',
                'decoration-chair_3'
            },
            CreateSameActions(f, {
                'io_decoration_chair_1_point',
                'io_decoration_chair_2_point',
                'io_decoration_chair_3_point'
            }, SherlockWalkAndSpeech,
                {{'s01c01_lio_0000_decoration_chair_0'},
                 {'s01c01_lio_0000_decoration_chair_1'},
                 {'s01c01_lio_0000_decoration_chair_2'}})
            ),
            f.InteractiveObject('decoration-armchair',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_armchair_point',
                    {{'s01c01_lio_0000_decoration_armchair_0'},
                     {'s01c01_lio_0000_decoration_armchair_1_0', 's01c01_lio_0000_decoration_armchair_1_1'},
                     {'s01c01_lio_0000_decoration_armchair_2_0', 's01c01_lio_0000_decoration_armchair_2_1'},
                     {'s01c01_lio_0000_decoration_armchair_3'},
                     {'s01c01_lio_0000_decoration_armchair_4'}})
            }),
            f.InteractiveObject('decoration-nightstand',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_nightstand_point',
                    {{'s01c01_lio_0000_decoration_nightstand_0'},
                     {'s01c01_lio_0000_decoration_nightstand_1_0', 's01c01_lio_0000_decoration_nightstand_1_1'},
                     {'s01c01_lio_0000_decoration_nightstand_2'},
                     {'s01c01_lio_0000_decoration_nightstand_3'}})
            }),
            f.InteractiveObject('decoration-shield',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_shield_point',
                    {{'s01c01_lio_0000_decoration_shield_0'},
                     {'s01c01_lio_0000_decoration_shield_1'},
                     {'s01c01_lio_0000_decoration_shield_2'},
                     {'s01c01_lio_0000_decoration_shield_3'}})
            }),
            CreateInteractiveObjects(f,
            {
                'decoration-picture_1',
                'decoration-picture_2',
                'decoration-picture_3'
            },
            CreateSameActions(f, {
                'io_decoration_picture_point_1',
                'io_decoration_picture_point_2',
                'io_decoration_picture_point_3'
            }, SherlockWalkAndSpeech,
                {{'s01c01_lio_0000_decoration_picture_0_0', 's01c01_lio_0000_decoration_picture_0_1'},
                 {'s01c01_lio_0000_decoration_picture_1'},
                 {'s01c01_lio_0000_decoration_picture_2_0', 's01c01_lio_0000_decoration_picture_2_1'},
                 {'s01c01_lio_0000_decoration_picture_3'}})
            ),
            f.InteractiveObject('SherlockIso',
            {
                SherlockSpeech(f,
                    {{'s01c01_lio_sherlock_common_phrase_7'},
                    {'s01c01_lio_sherlock_common_phrase_8'},
                    {'s01c01_lio_sherlock_common_phrase_9', 's01c01_lio_sherlock_common_phrase_10'}}),
                SherlockSpeech(f,
                    {{'s01c01_lio_0000_sherlock_0'}},
                    f.InvestigationRestriction(2, '='))
            }),
        }),
        CreateInteractiveLocation(f, '0002_BadfortStreet',
        {
            f.InteractiveObject('LavandaIso',
            {
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0001_Lavanda_0'},
                     {'s01c01_lio_0001_Lavanda_1'},
                     {'s01c01_lio_0001_Lavanda_2'},
                     {'s01c01_lio_0002_Lavanda_3'}},
                    f.InvestigationRestriction(15, '<=')),
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0002_Lavanda_0'},
                     {'s01c01_lio_0002_Lavanda_1'},
                     {'s01c01_lio_0002_Lavanda_2'},
                     {'s01c01_lio_0002_Lavanda_4'},
                     {'s01c01_lio_0002_Lavanda_5',
                     's01c01_lio_0002_Lavanda_6'}},
                    f.InvestigationRestriction(15, '>')),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_phrase_0'},
                     {'s01c01_lio_0000_Lavanda_phrase_1'},
                     {'s01c01_lio_0000_Lavanda_phrase_2'},
                     {'s01c01_lio_0001_Lavanda_phrase_0'},
                     {'s01c01_lio_0001_Lavanda_phrase_1'},
                     {'s01c01_lio_0002_Lavanda_phrase_6'}},
                     {'Lavanda'}),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0001_Lavanda_phrase_1'},
                     {'s01c01_lio_0002_Lavanda_phrase_0'},
                     {'s01c01_lio_0002_Lavanda_phrase_7'}},
                     {'Lavanda'},
                    f.InvestigationRestriction(15, '<=')),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0002_Lavanda_phrase_1'},
                     {'s01c01_lio_0002_Lavanda_phrase_2'},
                     {'s01c01_lio_0002_Lavanda_phrase_3'},
                     {'s01c01_lio_0002_Lavanda_phrase_4'},
                     {'s01c01_lio_0002_Lavanda_phrase_5'},
                     {'s01c01_lio_0002_Lavanda_phrase_8'}},
                     {'Lavanda'},
                    f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('NoahMcGoudyIso',
            {
                SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                    {{'s01c01_lio_0002_NoahMcGoudy_2'},
                     {'s01c01_lio_0002_NoahMcGoudy_6',
                     's01c01_lio_0002_NoahMcGoudy_6_1'}}),
                SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                    {{'s01c01_lio_sherlock_common_phrase_2'},
                     {'s01c01_lio_sherlock_common_phrase_5'},
                     {'s01c01_lio_0002_NoahMcGoudy_7',
                      's01c01_lio_0002_NoahMcGoudy_7_1'}},
                    f.InvestigationRestriction(7, '=')),
                SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                    {{'s01c01_lio_sherlock_common_phrase_2'},
                     {'s01c01_lio_sherlock_common_phrase_5'},
                     {'s01c01_lio_0002_NoahMcGoudy_5'}},
                    f.InvestigationRestriction(9, '=')),
                CharacterSpeech(f, 'NoahMcGoudy',
                    {{'s01c01_lio_0002_NoahMcGoudy_phrase_0'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_1'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_2'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_3'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_4'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_5'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_6'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_7'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_8'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_9'},
                     {'s01c01_lio_0002_NoahMcGoudy_phrase_10'}},
                     {'NoahMcGoudy'})
            }),
            --TODO: Переделать на общие с NoahMcGoudyIso действия
            f.InteractiveObject('Trolleys',
            {
              SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                  {{'s01c01_lio_0002_NoahMcGoudy_2'},
                   {'s01c01_lio_0002_NoahMcGoudy_6',
                   's01c01_lio_0002_NoahMcGoudy_6_1'}}),
                SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                    {{'s01c01_lio_0002_NoahMcGoudy_8',
                    's01c01_lio_0002_NoahMcGoudy_0',
                     's01c01_lio_0002_NoahMcGoudy_3'},
                     {'s01c01_lio_0002_NoahMcGoudy_1'},
                     {'s01c01_lio_0002_NoahMcGoudy_4'}},
                    f.InvestigationRestriction(7, '>')),
              SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                  {{'s01c01_lio_sherlock_common_phrase_2'},
                   {'s01c01_lio_sherlock_common_phrase_5'},
                   {'s01c01_lio_0002_NoahMcGoudy_7',
                    's01c01_lio_0002_NoahMcGoudy_7_1'}},
                  f.InvestigationRestriction(7, '=')),
              SherlockWalkAndSpeech(f, 'io_NoahMcGoudyIso_point',
                  {{'s01c01_lio_sherlock_common_phrase_2'},
                   {'s01c01_lio_sherlock_common_phrase_5'},
                   {'s01c01_lio_0002_NoahMcGoudy_5'},
                   {'s01c01_lio_0002_NoahMcGoudy_8'}},
                  f.InvestigationRestriction(9, '=')),
              CharacterSpeech(f, 'NoahMcGoudy',
                  {{'s01c01_lio_0002_NoahMcGoudy_phrase_0'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_1'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_2'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_3'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_4'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_5'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_6'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_7'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_8'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_9'},
                   {'s01c01_lio_0002_NoahMcGoudy_phrase_10'}},
                   {'NoahMcGoudy'},
                  f.InvestigationRestriction(7, '>'))
            }),
            f.InteractiveObject('TimmyIso',
            {
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_0'},
                    {'s01c01_lio_0002_Timmy_11',
                    's01c01_lio_0002_Timmy_12'}}),
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_3'}},
                    f.InvestigationRestriction(8, '<')),
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_1'},
                    {'s01c01_lio_0002_Timmy_13'},
                    {'s01c01_lio_0002_Timmy_2'}},
                    f.InvestigationRestriction(6, '>'),
                    f.InvestigationRestriction(8, '<')),
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_4'},
                    {'s01c01_lio_0002_decoration_bench_5'},
                    {'s01c01_lio_0002_Timmy_5'},
                    {'s01c01_lio_0002_Timmy_14'}},
                    f.InvestigationRestriction(7, '=')),
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c00_lio_0001_decoration_door_7'},
                    {'s01c01_lio_0002_decoration_bench_5'},
                    {'s01c01_lio_0002_Timmy_6'},
                    {'s01c01_lio_0002_Timmy_15'},
                    {'s01c01_lio_0002_Timmy_16'}},
                    f.InvestigationRestriction(8, '=')),
                SherlockWalkToObjectAndSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_7'},
                    {'s01c01_lio_0002_Timmy_8'},
                    {'s01c01_lio_0002_Timmy_9'},
                    {'s01c01_lio_0002_Timmy_10'},
                    {'s01c01_lio_0002_Timmy_17'},
                    {'s01c01_lio_0002_Timmy_18'}},
                    f.InvestigationRestriction(8, '>')),
                CharacterSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_phrase_0'},
                     {'s01c01_lio_0002_Timmy_phrase_1'},
                     {'s01c01_lio_0002_Timmy_phrase_2'},
                     {'s01c01_lio_0002_Timmy_phrase_10'}},
                     {'Timmy'}),
                CharacterSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_phrase_3'},
                     {'s01c01_lio_0002_Timmy_phrase_4'},
                     {'s01c01_lio_0002_Timmy_phrase_5'},
                     {'s01c01_lio_0002_Timmy_phrase_6'},
                     {'s01c01_lio_0002_Timmy_phrase_11'}},
                     {'Timmy'},
                     f.InvestigationRestriction(8, '<=')),
                CharacterSpeech(f, 'Timmy',
                    {{'s01c01_lio_0002_Timmy_phrase_7'},
                     {'s01c01_lio_0002_Timmy_phrase_8'},
                     {'s01c01_lio_0002_Timmy_phrase_9'},
                     {'s01c01_lio_0002_Timmy_phrase_12'},
                     {'s01c01_lio_0002_Timmy_phrase_13'},
                     {'s01c01_lio_0002_Timmy_phrase_14'}},
                     {'Timmy'},
                     f.InvestigationRestriction(8, '>'))
            }),
            CreateInteractiveObjects(f,
                {
                    'decoration-pillar_and_fence_1_3',
                    'decoration-pillar_and_fence_2_1',
                    'decoration-pillar_and_fence_1',
                    'decoration-pillar_and_fence_2',
                    'decoration-pillar_and_fence_2_2',
                    'decoration-pillar_and_fence_1_1',
                    'decoration-pillar_and_fence_2_3',
                    'decoration-pillar_and_fence_1_2',
                    'decoration-pillar_and_fence_2_4',
                    'decoration-pillar_and_fence_1_4'
                },
                CreateSameActions(f, {
                    'io_decoration-pillar_and_fence_1_3_point',
                    'io_decoration-pillar_and_fence_2_1_point',
                    'io_decoration-pillar_and_fence_1_point',
                    'io_decoration-pillar_and_fence_2_point',
                    'io_decoration-pillar_and_fence_2_2_point',
                    'io_decoration-pillar_and_fence_1_1_point',
                    'io_decoration-pillar_and_fence_2_3_point',
                    'io_decoration-pillar_and_fence_1_2_point',
                    'io_decoration-pillar_and_fence_2_4_point',
                    'io_decoration-pillar_and_fence_1_4_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c01_lio_0002_decoration_pillar_and_fence_0'},
                     {'s01c01_lio_0002_decoration_pillar_and_fence_1'},
                     {'s01c01_lio_0002_decoration_pillar_and_fence_2'}})
            ),
            f.InteractiveObject('decoration-gate',
            {
                SherlockWalkAndSpeech(f, 'io_decoration-gate_point',
                    {{'s01c01_lio_0002_decoration_gate_0'},
                     {'s01c01_lio_0002_decoration_gate_1'},
                     {'s01c01_lio_0002_decoration_gate_2'},
                     {'s01c01_lio_0002_decoration_gate_3'}})
            }),
            CreateInteractiveObjects(f,
                {
                    'decoration-lamp',
                    'decoration-lamp_1'
                },
                CreateSameActions(f, {
                    'io_decoration-lamp_point',
                    'io_decoration-lamp_1_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c01_lio_0002_decoration_lamp_0'},
                     {'s01c01_lio_0002_decoration_lamp_1'},
                     {'s01c01_lio_0002_decoration_lamp_2'}})
            ),
            f.InteractiveObject('decoration-pedestal',
            {
                SherlockWalkAndSpeech(f, 'io_decoration-pedestal_point',
                    {{'s01c01_lio_0002_decoration_pedestal_1'},
                     {'s01c01_lio_0002_decoration_pedestal_2'},
                     {'s01c01_lio_0002_decoration_pedestal_3'},
                     {'s01c01_lio_0002_decoration_pedestal_4'}})
            }),
            CreateInteractiveObjects(f,
                {
                    'decoration-flowers_in_pots_1_1',
                    'decoration-flowers_in_pots_1_2',
                    'decoration-flowers_in_pots_1_3',
                    'decoration-flowers_in_pots_2_1',
                    'decoration-flowers_in_pots_2_2',
                    'decoration-flowers_in_pots_3_1',
                    'decoration-flowers_in_pots_3_2'
                },
                CreateSameActions(f, {
                    'decoration-flowers_in_pots_1_1_point',
                    'decoration-flowers_in_pots_1_2_point',
                    'decoration-flowers_in_pots_1_3_point',
                    'decoration-flowers_in_pots_2_1_point',
                    'decoration-flowers_in_pots_2_2_point',
                    'decoration-flowers_in_pots_3_1_point',
                    'decoration-flowers_in_pots_3_2_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c01_lio_0002_decoration_flowers_in_pots_1'},
                     {'s01c01_lio_0002_decoration_flowers_in_pots_2'},
                     {'s01c01_lio_0002_decoration_flowers_in_pots_3'},
                     {'s01c01_lio_0002_decoration_flowers_in_pots_4'}})
            ),
            f.InteractiveObject('FlowerGirlIso',
            {
                SherlockWalkAndSpeech(f, 'flower_girl_point',
                    {{'s01c01_lio_0002_FlowerGirl_1'},
                     {'s01c01_lio_0002_FlowerGirl_2'},
                     {'s01c01_lio_0002_FlowerGirl_3'}}),
                CharacterSpeech(f, 'FlowerGirl',
                    {{ 's01c01_lio_0002_FlowerGirl_girl_phase_1' },
                     { 's01c01_lio_0002_FlowerGirl_girl_phase_2',
                      's01c01_lio_0002_FlowerGirl_girl_phase_2_1'},
                     { 's01c01_lio_0002_FlowerGirl_girl_phase_3' } },
                     {'FlowerGirl'}),
                CharacterSpeech(f, 'Lavanda',
                    {{ 's01c01_lio_0002_FlowerGirl_lavanda_phase_1' },
                     { 's01c01_lio_0002_FlowerGirl_lavanda_phase_2',
                     's01c01_lio_0002_FlowerGirl_lavanda_phase_3' }},
                     {'Lavanda'})
            }),
            f.InteractiveObject('decoration-bench_1',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('decoration-bench_1',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_1_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('decoration-bench_2',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_2_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_2_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_2_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('decoration-bench_3',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_3_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_3_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_3_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('decoration-bench_4',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_4_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_4_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_4_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            f.InteractiveObject('decoration-bench_5',
            {
                SherlockWalkAndSpeech(f, 'decoration-bench_5_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_1'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_2'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_3'},
                     {'s01c01_lio_0002_decoration_bench_in_garden_4'}}),
                SherlockWalkAndSpeech(f, 'decoration-bench_5_point',
                    {{'s01c01_lio_0002_decoration_bench_in_garden_5'}},
                     f.InvestigationRestriction(15, '=')),
                SherlockWalkAndSpeech(f, 'decoration-bench_5_point',
                     {{'s01c01_lio_0002_decoration_bench_in_garden_6'}},
                      f.InvestigationRestriction(15, '>'))
            }),
            CreateInteractiveObjects(f,
                {
                    'decoration-fountain',
                    'decoration-fountain_1'
                },
                CreateSameActions(f, {
                    'decoration-fountain_point',
                    'decoration-fountain_1_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c01_lio_0002_decoration_fountain_1'},
                     {'s01c01_lio_0002_decoration_fountain_2'},
                     {'s01c01_lio_0002_decoration_fountain_3'},
                     {'s01c01_lio_0002_decoration_fountain_4'},
                     {'s01c01_lio_0002_decoration_fountain_5'}})
            ),
            f.InteractiveObject('GentlemanWithNewspaperIso',
            {
                SherlockWalkAndSpeech(f, 'gentleman_with_newspaper_point',
                    {{'s01c01_lio_0002_GentlemanWithNewspaper_1'},
                     {'s01c01_lio_0002_GentlemanWithNewspaper_2'},
                     {'s01c01_lio_0002_GentlemanWithNewspaper_3'},
                     {'s01c01_lio_0002_GentlemanWithNewspaper_4'}}),
                CharacterSpeech(f, 'GentlemanWithNewspaper',
                    {{ 's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_1' },
                     { 's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_2',
                      's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_2_1'},
                     { 's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_3',
                      's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_3_1'},
                     { 's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_4' },
                      { 's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_5',
                       's01c01_lio_0002_GentlemanWithNewspaper_gentlemen_phase_5_1'}},
                       {'GentlemanWithNewspaper'})
            }),
            f.InteractiveObject('LadyWithUmbrellaIso',
            {
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_LadyWithUmbrella_1'},
                     {'s01c01_lio_0002_LadyWithUmbrella_2'},
                     {'s01c01_lio_0002_LadyWithUmbrella_3'},
                     {'s01c01_lio_0002_LadyWithUmbrella_4'},
                     {'s01c01_lio_0002_LadyWithUmbrella_5'}}),
                CharacterSpeech(f, 'LadyWithUmbrella',
                    {{ 's01c01_lio_0002_LadyWithUmbrella_lady_phase_1' },
                     { 's01c01_lio_0002_LadyWithUmbrella_lady_phase_2'},
                     { 's01c01_lio_0002_LadyWithUmbrella_lady_phase_3'},
                     { 's01c01_lio_0002_LadyWithUmbrella_lady_phase_4' }},
                     {'LadyWithUmbrella'})
            }),
            f.InteractiveObject('Dove',
            {
                SherlockWalkAndSpeech(f, 'dove_point',
                    {{'s01c01_lio_0002_dove_1'},
                     {'s01c01_lio_0002_dove_2'},
                     {'s01c01_lio_0002_dove_3'}}),
                CharacterSpeech(f, 'Timmy',
                    {{ 's01c01_lio_0002_dove_timmy_phase_1' },
                     { 's01c01_lio_0002_dove_timmy_phase_2' }})
            }),
            f.InteractiveObject('decoration-tree',
            {
                SherlockWalkAndSpeech(f, 'io_decoration-tree_point',
                    {{'s01c01_lio_0002_decoration_tree_0'},
                     {'s01c01_lio_0002_decoration_tree_1'},
                     {'s01c01_lio_0002_decoration_tree_2'},
                     {'s01c01_lio_0002_decoration_tree_3'}})
            }),
            f.InteractiveObject('decoration-bench',
            {
                SherlockWalkAndSpeech(f, 'io_decoration-bench_point',
                    {{'s01c01_lio_0002_decoration_bench_0'},
                     {'s01c01_lio_0002_decoration_bench_1'},
                     {'s01c01_lio_0002_decoration_bench_2'},
                     {'s01c01_lio_0002_decoration_bench_3'}}),
                SherlockWalkAndSpeech(f, 'io_decoration-bench_point',
                    {{'s01c01_lio_0002_decoration_bench_4'},
                     {'s01c01_lio_0002_decoration_bench_5'},
                     {'s01c01_lio_0002_decoration_bench_6'},
                     {'s01c01_lio_0002_decoration_bench_7'}},
                     f.InvestigationRestriction(15, '='))
            }),
            f.InteractiveObject('decoration-door',
            {
                SherlockWalkAndSpeech(f, 'io_door_point',
                    {{'s01c01_lio_0002_decoration_door_0'},
                     {'s01c01_lio_0002_decoration_door_1'},
                     {'s01c01_lio_0002_decoration_door_2'}})
            }),
            f.InteractiveObject('decoration-door_1',
            {
                SherlockWalkAndSpeech(f, 'io_door_1_point',
                    {{'s01c01_lio_0002_decoration_door_1_0'},
                     {'s01c01_lio_0002_decoration_door_1_1'},
                     {'s01c01_lio_0002_decoration_door_1_2'}})
            }),
            f.InteractiveObject('decoration-door_2',
            {
                SherlockWalkAndSpeech(f, 'io_door_2_point',
                    {{'s01c01_lio_0002_decoration_door_2_0'},
                     {'s01c01_lio_0002_decoration_door_2_1'},
                     {'s01c01_lio_0002_decoration_door_2_2'}})
            }),
            f.InteractiveObject('decoration-door_3',
            {
                SherlockWalkAndSpeech(f, 'io_door_3_point',
                    {{'s01c01_lio_0002_decoration_door_3_0'},
                     {'s01c01_lio_0002_decoration_door_3_1'},
                     {'s01c01_lio_0002_decoration_door_3_2'}})
            }),
            f.InteractiveObject('decoration-door_4',
            {
                SherlockWalkAndSpeech(f, 'io_door_4_point',
                    {{'s01c01_lio_0002_decoration_door_4_0'},
                     {'s01c01_lio_0002_decoration_door_4_1'},
                     {'s01c01_lio_0002_decoration_door_4_2'},
                     {'s01c01_lio_0002_decoration_door_4_3'},
                     {'s01c01_lio_0002_decoration_door_4_4'},
                     {'s01c01_lio_0002_decoration_door_4_5'}})
            }),
            f.InteractiveObject('SherlockIso',
            {
                SherlockSpeech(f,
                    {{'s01c01_lio_sherlock_common_phrase_7'},
                    {'s01c01_lio_sherlock_common_phrase_8'},
                    {'s01c01_lio_0002_sherlock_0'},
                    {'s01c01_lio_0002_sherlock_1'},
                    {'s01c01_lio_sherlock_common_phrase_9', 's01c01_lio_sherlock_common_phrase_10'}}, true),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_2'}},
                    true,
                    f.InvestigationRestriction(6, '=')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_3'},
                    {'s01c01_lio_0002_sherlock_4'}},
                    true,
                    f.InvestigationRestriction(6, '>')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_5'}},
                    true,
                    f.InvestigationRestriction(9, '=')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_6'}},
                    true,
                    f.InvestigationRestriction(7, '>')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_7'},
                    {'s01c01_lio_0002_sherlock_8'}},
                    true,
                    f.InvestigationRestriction(14, '=')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_12'},
                    {'s01c01_lio_0002_sherlock_13'}},
                    true,
                    f.InvestigationRestriction(15, '<=')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0002_sherlock_9'},
                    {'s01c01_lio_0002_sherlock_10'},
                    {'s01c01_lio_0002_sherlock_11'}},
                    true,
                    f.InvestigationRestriction(15, '>')),
            }),
            CreateSameInteractiveObject(f,
                {
                    'decoration-thuja_1',
                    'decoration-thuja_1_1',
                    'decoration-thuja_1_2',
                    'decoration-thuja_1_3',
                    'decoration-bush_1',
                    'decoration-bush_1_1',
                    'decoration-bush_1_2',
                    'decoration-bush_1_3',
                },
                {}
            )
        }),
        CreateInteractiveLocation(f, '0001_MinistryHall',
        {
            CreateInteractiveObjects(f,
                {
                    'clerk-back_1',
                    'clerk-back_4',
                    'clerk-back_3',
                    'clerk_4',
                    'clerk_2',
                    'clerk_1'
                },
                CreateSameActions(f, {
                    'io_clerk_back_1_point',
                    'io_clerk_back_4_point',
                    'io_clerk_back_3_point',
                    'io_clerk_4_point',
                    'io_clerk_2_point',
                    'io_clerk_1_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c00_lio_0001_clerk_back_1_0'},
                     {'s01c00_lio_0001_clerk_back_1_1'},
                     {'s01c00_lio_0001_clerk_back_1_2'},
                     {'s01c00_lio_0001_clerk_back_1_3'},
                     {'s01c00_lio_0001_clerk_back_1_4'}})
            ),
            CreateInteractiveObjects(f,
                {
                    'clerk-back_2',
                    'clerk_3'
                },
                CreateSameActions(f, {
                    'io_clerk_back_2_point',
                    'io_clerk_3_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c00_lio_0001_clerk_back_2_0'},
                     {'s01c00_lio_0001_clerk_back_2_1'},
                     {'s01c00_lio_0001_clerk_back_2_2'},
                     {'s01c00_lio_0001_clerk_back_2_3'}})
            ),
            CreateInteractiveObjects(f,
                {
                    'decoration-fence_3',
                    'decoration-fence_2',
                    'decoration-fence_1'
                },
                CreateSameActions(f, {
                    'io_decoration_fence_3_point',
                    'io_decoration_fence_2_point',
                    'io_decoration_fence_1_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c00_lio_0001_decoration_fence_0'},
                     {'s01c00_lio_0001_decoration_fence_1'},
                     {'s01c00_lio_0001_decoration_fence_2'},
                     {'s01c00_lio_0001_decoration_fence_3'},
                     {'s01c00_lio_0001_decoration_fence_4'}})
            ),
            CreateInteractiveObjects(f,
                {
                    'decoration-cabinet_3',
                    'decoration-cabinet_3_2'
                },
                CreateSameActions(f, {
                    'io_decoration_cabinet_3_point',
                    'io_decoration_cabinet_3_2_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c00_lio_0001_decoration_cabinet_0'},
                     {'s01c00_lio_0001_decoration_cabinet_1'},
                     {'s01c00_lio_0001_decoration_cabinet_2'},
                     {'s01c00_lio_0001_decoration_cabinet_3'}})
            ),
            CreateInteractiveObjects(f,
                {
                    'decoration-flag',
                    'decoration-flag_1'
                },
                CreateSameActions(f, {
                    'io_decoration_flag_2_point',
                    'io_decoration_flag_1_point'
                }, SherlockWalkAndSpeech,
                    {{'s01c00_lio_0001_decoration_flag_0'},
                     {'s01c00_lio_0001_decoration_flag_1'}})
            ),
            f.InteractiveObject('decoration-door_2',
            {
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_0'},
                     {'s01c00_lio_0001_decoration_door_1'},
                     {'s01c00_lio_0001_decoration_door_2'}}),
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_3'},
                     {'s01c00_lio_0001_decoration_door_4'}},
                    f.InvestigationRestriction(4, '<')),
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_3'},
                     {'s01c00_lio_0001_decoration_door_4'}},
                    f.InvestigationRestriction(13, '<')),
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_5'},
                     {'s01c00_lio_0001_decoration_door_6'}},
                    f.InvestigationRestriction(4, '=')),
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_7'},
                     {'s01c00_lio_0001_decoration_door_8'},
                     {'s01c00_lio_0001_decoration_door_9'}},
                    UnionAny(f,
                        f.InvestigationRestriction(5, '='),
                        f.InvestigationRestriction(13, '=')
                    )),
                SherlockWalkAndSpeech(f, 'io_decoration_door_2_point',
                    {{'s01c00_lio_0001_decoration_door_10'},
                     {'s01c00_lio_0001_decoration_door_11'}},
                     f.InvestigationRestriction(12, '=')),
            }),
            f.InteractiveObject('LavandaIso',
            {
                SherlockWalkToObjectAndSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0001_Lavanda_0'},
                     {'s01c01_lio_0001_Lavanda_1'},
                     {'s01c01_lio_0001_Lavanda_2'}}),
                CharacterSpeech(f, 'Lavanda',
                    {{'s01c01_lio_0000_Lavanda_phrase_0'},
                     {'s01c01_lio_0000_Lavanda_phrase_1'},
                     {'s01c01_lio_0000_Lavanda_phrase_2'},
                     {'s01c01_lio_0001_Lavanda_phrase_0'},
                     {'s01c01_lio_0001_Lavanda_phrase_1'}},
                     {'Lavanda'})
            }),
            f.InteractiveObject('MrBoothIso',
            {
                SherlockWalkToObjectAndSpeech(f, 'MrBooth',
                    {{'s01c01_lio_0001_MrBooth_0'},
                     {'s01c01_lio_0001_MrBooth_1'},
                     {'s01c01_lio_0001_MrBooth_2'}}),
                SherlockWalkToObjectAndSpeech(f, 'MrBooth',
                    {{'s01c01_lio_sherlock_common_phrase_0'},
                     {'s01c01_lio_sherlock_common_phrase_5'},
                     {'s01c01_lio_sherlock_common_phrase_6'}},
                    UnionAny(f,
                        f.InvestigationRestriction(3, '='),
                        f.InvestigationRestriction(11, '=')
                    )
                ),
                CharacterSpeech(f, 'MrBooth',
                    {{'s01c01_lio_0001_MrBooth_phrase_0'},
                     {'s01c01_lio_0001_MrBooth_phrase_1'},
                     {'s01c01_lio_0001_MrBooth_phrase_2'},
                     {'s01c01_lio_0001_MrBooth_phrase_3'},
                     {'s01c01_lio_0001_MrBooth_phrase_4'}},
                     {'MrBooth'})
            }),
            f.InteractiveObject('SherlockIso',
            {
                SherlockSpeech(f,
                    {{'s01c01_lio_sherlock_common_phrase_7'},
                    {'s01c01_lio_sherlock_common_phrase_8'},
                    {'s01c01_lio_sherlock_common_phrase_9', 's01c01_lio_sherlock_common_phrase_10'},
                    {'s01c01_lio_0001_sherlock_0'}}),
                SherlockSpeech(f,
                    {{'s01c01_lio_0001_sherlock_1'},
                    {'s01c01_lio_0001_sherlock_2'}},
                    f.InvestigationRestriction(12, '=')),
                SherlockSpeech(f,
                    {{'s01c01_lio_0001_sherlock_5', 's01c01_lio_0001_sherlock_6'},
                    {'s01c01_lio_0001_sherlock_7'}},
                    UnionAny(f,
                        f.InvestigationRestriction(5, '='),
                        f.InvestigationRestriction(13, '=')
                    )),
                SherlockSpeech(f,
                    {{'s01c01_lio_0001_sherlock_3', 's01c01_lio_0001_sherlock_6'},
                    {'s01c01_lio_0001_sherlock_4'}},
                    UnionAny(f,
                        f.InvestigationRestriction(3, '='),
                        f.InvestigationRestriction(11, '=')
                    ))
            }),
        })
    })
end