import Foundation
import UIKit
import Display
import Vision
import CoreImage
import CoreImage.CIFilterBuiltins
import SwiftSignalKit
import VideoToolbox

private let queue = Queue()

public func classifyImage(_ image: UIImage) -> Signal<[(String, Float)], NoError> {
    if #available(iOS 15.0, *) {
        let image = generateImage(image.size, contextGenerator: { size, context in
            context.setFillColor(UIColor.white.cgColor)
            context.fill(CGRect(origin: .zero, size: size))
            if let cgImage = image.cgImage {
                context.draw(cgImage, in: CGRect(origin: .zero, size: size), byTiling: false)
            }
        }, opaque: true, scale: 1.0)
        guard let cgImage = image?.cgImage else {
            return .single([])
        }
        return Signal { subscriber in
            let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
            let request = VNClassifyImageRequest { request, error in
                guard let results = request.results as? [VNClassificationObservation] else {
                    subscriber.putNext([])
                    subscriber.putCompletion()
                    return
                }
                
                let filteredResult = results.sorted(by: { $0.confidence > $1.confidence }).filter { $0.confidence > 0.1 }
                subscriber.putNext(filteredResult.map { ($0.identifier, $0.confidence) })
                subscriber.putCompletion()
            }
            try? handler.perform([request])
            return ActionDisposable {
                request.cancel()
            }
        }
        |> runOn(queue)
    } else {
        return .single([])
    }
}

public func emojiForClasses(_ classes: [String]) -> [String] {
    let map = [
        "abacus": "๐Ÿงฎ",
        "accordion": "๐Ÿช—",
        "acorn": "๐ŸŒฐ",
        "acrobat": "๐Ÿคธ",
        "agriculture": "๐ŸŒพ",
        "aircraft": "โœˆ๏ธ",
        "airplane": "โœˆ๏ธ",
        "airport": "๐Ÿ›ซ",
        "airshow": "โœˆ๏ธ",
        "alley": "๐Ÿ›ฃ๏ธ",
        "alligator_crocodile": "๐ŸŠ",
        "almond": "๐ŸŒฐ",
        "ambulance": "๐Ÿš‘",
        "amusement_park": "๐ŸŽก",
        "anchovy": "๐ŸŸ",
        "angelfish": "๐Ÿ ",
        "ant": "๐Ÿœ",
        "antipasti": "๐Ÿฅ—",
        "anvil": "โš’๏ธ",
        "apartment": "๐Ÿข",
        "apple": "๐ŸŽ",
        "appliance": "๐Ÿ”Œ",
        "apricot": "๐Ÿ‘",
        "apron": "๐Ÿงค",
        "aquarium": "๐Ÿ ",
        "arachnid": "๐Ÿ•ท๏ธ",
        "arch": "๐Ÿ›๏ธ",
        "archery": "๐Ÿน",
        "arena": "๐ŸŸ๏ธ",
        "armchair": "๐Ÿ’บ",
        "art": "๐ŸŽจ",
        "arthropods": "๐Ÿœ",
        "artichoke": "๐Ÿฅฆ",
        "arugula": "๐Ÿฅฌ",
        "asparagus": "๐ŸŒฑ",
        "athletics": "๐Ÿƒ",
        "atm": "๐Ÿง",
        "atv": "๐Ÿšœ",
        "auditorium": "๐ŸŽญ",
        "aurora": "๐ŸŒŒ",
        "australian_shepherd": "๐Ÿถ",
        "automobile": "๐Ÿš—",
        "avocado": "๐Ÿฅ‘",
        "axe": "๐Ÿช“",
        "baby": "๐Ÿ‘ถ",
        "backgammon": "๐ŸŽฒ",
        "backhoe": "๐Ÿšœ",
        "backpack": "๐ŸŽ’",
        "bacon": "๐Ÿฅ“",
        "badminton": "๐Ÿธ",
        "bag": "๐Ÿ‘œ",
        "bagel": "๐Ÿฅฏ",
        "baked_goods": "๐Ÿฅ–",
        "baklava": "๐Ÿฎ",
        "balcony": "๐Ÿข",
        "ball": "โšฝ",
        "ballet": "๐Ÿฉฐ",
        "ballet_dancer": "๐Ÿ’ƒ",
        "ballgames": "๐Ÿ€",
        "balloon": "๐ŸŽˆ",
        "balloon_hotair": "๐ŸŽˆ",
        "banana": "๐ŸŒ",
        "banner": "๐Ÿณ๏ธ",
        "bar": "๐Ÿบ",
        "barbell": "๐Ÿ‹๏ธ",
        "barge": "๐Ÿšข",
        "barn": "๐Ÿš๏ธ",
        "barnacle": "๐Ÿฆช",
        "barracuda": "๐ŸŸ",
        "barrel": "๐Ÿ›ข๏ธ",
        "baseball": "โšพ",
        "baseball_bat": "๐Ÿ",
        "baseball_hat": "๐Ÿงข",
        "basenji": "๐Ÿ•",
        "basket_container": "๐Ÿงบ",
        "basketball": "๐Ÿ€",
        "basset": "๐Ÿ•",
        "bath": "๐Ÿ›",
        "bathrobe": "๐Ÿšฟ",
        "bathroom": "๐Ÿšฝ",
        "bathroom_faucet": "๐Ÿšฟ",
        "bathroom_room": "๐Ÿšฝ",
        "beach": "๐Ÿ–๏ธ",
        "beagle": "๐Ÿ•",
        "bean": "๐ŸŒฑ",
        "beanie": "๐Ÿงข",
        "bear": "๐Ÿป",
        "bed": "๐Ÿ›๏ธ",
        "bedding": "๐Ÿ›๏ธ",
        "bedroom": "๐Ÿ›๏ธ",
        "bee": "๐Ÿ",
        "beef": "๐Ÿ–",
        "beehive": "๐Ÿ",
        "beekeeping": "๐Ÿ",
        "beer": "๐Ÿบ",
        "beet": "๐Ÿ†",
        "begonia": "๐ŸŒบ",
        "bell": "๐Ÿ””",
        "bell_pepper": "๐Ÿซ‘",
        "belltower": "๐Ÿฐ",
        "bellydance": "๐Ÿ’ƒ",
        "bench": "๐Ÿช‘",
        "bernese_mountain": "๐Ÿ•",
        "berry": "๐Ÿ“",
        "bib": "๐Ÿผ",
        "bichon": "๐Ÿ•",
        "bicycle": "๐Ÿšฒ",
        "billboards": "๐Ÿšง",
        "billiards": "๐ŸŽฑ",
        "binoculars": "๐Ÿ”ญ",
        "bird": "๐Ÿฆ",
        "birdhouse": "๐Ÿ ",
        "birthday_cake": "๐ŸŽ‚",
        "biryani": "๐Ÿ›",
        "biscotti": "๐Ÿช",
        "biscuit": "๐Ÿช",
        "bison": "๐Ÿฆฌ",
        "blackberry": "๐Ÿ‡",
        "bleachers": "๐ŸŸ๏ธ",
        "blender": "๐Ÿง‰",
        "blizzard": "โ„๏ธ",
        "blocks": "๐Ÿงฑ",
        "blossom": "๐ŸŒธ",
        "blueberry": "๐Ÿซ",
        "boar": "๐Ÿ—",
        "board_game": "๐ŸŽฒ",
        "boat": "๐Ÿšค",
        "boathouse": "๐Ÿ ",
        "bobcat": "๐Ÿ†",
        "bodyboard": "๐Ÿ„โ€โ™‚๏ธ",
        "bongo_drum": "๐Ÿฅ",
        "bonsai": "๐ŸŒณ",
        "book": "๐Ÿ“–",
        "bookshelf": "๐Ÿ“š",
        "boot": "๐Ÿ‘ข",
        "bottle": "๐Ÿผ",
        "bouquet": "๐Ÿ’",
        "bowl": "๐Ÿฒ",
        "bowling": "๐ŸŽณ",
        "bowtie": "๐ŸŽ€",
        "boxing": "๐ŸฅŠ",
        "branch": "๐ŸŒฟ",
        "brass_music": "๐ŸŽบ",
        "bread": "๐Ÿž",
        "breakdancing": "๐Ÿ’ƒ",
        "brick": "๐Ÿงฑ",
        "brick_oven": "๐Ÿ•",
        "bride": "๐Ÿ‘ฐ",
        "bridesmaid": "๐Ÿ‘ฐโ€โ™€๏ธ",
        "bridge": "๐ŸŒ‰",
        "briefcase": "๐Ÿ’ผ",
        "broccoli": "๐Ÿฅฆ",
        "broom": "๐Ÿงน",
        "brownie": "๐Ÿซ",
        "bruschetta": "๐Ÿฅ–",
        "bubble_tea": "๐Ÿง‹",
        "bucket": "๐Ÿชฃ",
        "building": "๐Ÿข",
        "bulldog": "๐Ÿถ",
        "bulldozer": "๐Ÿšœ",
        "bullfighting": "๐Ÿ‚",
        "bungee": "๐Ÿชข",
        "burrito": "๐ŸŒฏ",
        "bus": "๐ŸšŒ",
        "butter": "๐Ÿงˆ",
        "butterfly": "๐Ÿฆ‹",
        "cabinet": "๐Ÿ—„๏ธ",
        "cableway": "๐Ÿš ",
        "cactus": "๐ŸŒต",
        "cage": "๐Ÿšช",
        "cake": "๐Ÿฐ",
        "cake_regular": "๐Ÿฐ",
        "cakestand": "๐ŸŽ‚",
        "calendar": "๐Ÿ“†",
        "caliper": "๐Ÿ“",
        "camel": "๐Ÿซ",
        "camera": "๐Ÿ“ท",
        "camping": "๐Ÿ•๏ธ",
        "candle": "๐Ÿ•ฏ๏ธ",
        "candlestick": "๐Ÿ•ฏ๏ธ",
        "candy": "๐Ÿฌ",
        "candy_cane": "๐Ÿฌ",
        "candy_other": "๐Ÿญ",
        "canoe": "๐Ÿ›ถ",
        "cantaloupe": "๐Ÿˆ",
        "canyon": "๐Ÿž๏ธ",
        "caprese": "๐Ÿฅ—",
        "car": "๐Ÿš—",
        "caramel": "๐Ÿฌ",
        "cardboard_box": "๐Ÿ“ฆ",
        "carnation": "๐ŸŒบ",
        "carnival": "๐ŸŽก",
        "carousel": "๐ŸŽ ",
        "carrot": "๐Ÿฅ•",
        "cart": "๐Ÿ›’",
        "carton": "๐Ÿ“ฆ",
        "cashew": "๐Ÿฅœ",
        "casino": "๐ŸŽฐ",
        "casserole": "๐Ÿฒ",
        "cassette": "๐Ÿ“ผ",
        "castle": "๐Ÿฐ",
        "cat": "๐Ÿฑ",
        "caterpillar": "๐Ÿ›",
        "cauliflower": "๐Ÿฅฆ",
        "cave": "๐Ÿ•ณ๏ธ",
        "cd": "๐Ÿ’ฟ",
        "celebration": "๐ŸŽ‰",
        "celery": "๐ŸŒฟ",
        "celestial_body": "๐ŸŒŒ",
        "celestial_body_other": "๐Ÿช",
        "cellar": "๐Ÿ ",
        "cello": "๐ŸŽป",
        "centipede": "๐Ÿ›",
        "cephalopod": "๐Ÿฆ‘",
        "cereal": "๐Ÿฅฃ",
        "ceremony": "๐ŸŽŠ",
        "cetacean": "๐Ÿณ",
        "chainsaw": "๐Ÿชš",
        "chair": "๐Ÿ’บ",
        "chair_other": "๐Ÿ’บ",
        "chairlift": "๐Ÿš ",
        "chaise": "๐Ÿ’บ",
        "chalkboard": "๐Ÿ–ผ๏ธ",
        "chameleon": "๐ŸฆŽ",
        "chandelier": "๐Ÿ’ก",
        "chart": "๐Ÿ“Š",
        "checkbook": "๐Ÿ“”",
        "cheerleading": "๐Ÿ“ฃ",
        "cheese": "๐Ÿง€",
        "cheesecake": "๐Ÿฐ",
        "cheetah": "๐Ÿ†",
        "cherry": "๐Ÿ’",
        "chess": "โ™Ÿ๏ธ",
        "chestnut": "๐ŸŒฐ",
        "chewing_gum": "๐Ÿฌ",
        "chihuahua": "๐Ÿ•",
        "child": "๐Ÿ‘ถ",
        "chimney": "๐Ÿ ",
        "chinchilla": "๐Ÿญ",
        "chives": "๐ŸŒฟ",
        "chocolate": "๐Ÿซ",
        "chocolate_chip": "๐Ÿช",
        "chopsticks": "๐Ÿฅข",
        "christmas_decoration": "๐ŸŽ„",
        "christmas_tree": "๐ŸŽ„",
        "chrysanthemum": "๐ŸŒผ",
        "cigar": "๐Ÿšฌ",
        "cigarette": "๐Ÿšฌ",
        "cilantro": "๐ŸŒฟ",
        "circuit_board": "๐Ÿ”Œ",
        "circus": "๐ŸŽช",
        "citrus_fruit": "๐ŸŠ",
        "cityscape": "๐Ÿ™๏ธ",
        "clam": "๐Ÿš",
        "clarinet": "๐ŸŽผ",
        "classroom": "๐Ÿซ",
        "cliff": "๐Ÿง—โ€โ™‚๏ธ",
        "cloak": "๐Ÿงฅ",
        "clock": "โฐ",
        "clock_tower": "๐Ÿ•ฐ๏ธ",
        "closet": "๐Ÿšช",
        "clothespin": "๐Ÿ“Œ",
        "cloudy": "โ˜๏ธ",
        "clover": "๐Ÿ€",
        "clown": "๐Ÿคก",
        "clownfish": "๐Ÿ ",
        "cockatoo": "๐Ÿฆœ",
        "cocktail": "๐Ÿน",
        "coconut": "๐Ÿฅฅ",
        "coffee": "โ˜•",
        "coffee_bean": "โ˜•",
        "coin": "๐Ÿ’ฐ",
        "coleslaw": "๐Ÿฅ—",
        "collie": "๐Ÿ•",
        "compass": "๐Ÿงญ",
        "computer": "๐Ÿ’ป",
        "computer_keyboard": "โŒจ๏ธ",
        "computer_monitor": "๐Ÿ–ฅ๏ธ",
        "computer_mouse": "๐Ÿ–ฑ๏ธ",
        "computer_tower": "๐Ÿ–ฅ๏ธ",
        "concert": "๐ŸŽซ",
        "conch": "๐Ÿš",
        "condiment": "๐Ÿง‚",
        "conference": "๐Ÿข",
        "container": "๐Ÿ“ฆ",
        "cookie": "๐Ÿช",
        "cookware": "๐Ÿณ",
        "coral_reef": "๐Ÿ ",
        "corgi": "๐Ÿ•",
        "corkscrew": "๐Ÿพ",
        "corn": "๐ŸŒฝ",
        "cornflower": "๐ŸŒผ",
        "cosmetic_tool": "๐Ÿ’„",
        "costume": "๐ŸŽญ",
        "cougar": "๐Ÿ†",
        "coupon": "๐ŸŽŸ๏ธ",
        "cow": "๐Ÿ„",
        "cowboy_hat": "๐Ÿค ",
        "coyote_wolf": "๐Ÿบ",
        "crab": "๐Ÿฆ€",
        "cranberry": "๐Ÿ’",
        "crane_construction": "๐Ÿ—๏ธ",
        "crate": "๐Ÿ“ฆ",
        "credit_card": "๐Ÿ’ณ",
        "creek": "๐Ÿž๏ธ",
        "crepe": "๐Ÿฅž",
        "crib": "๐Ÿ›๏ธ",
        "cricket_sport": "๐Ÿ",
        "croissant": "๐Ÿฅ",
        "crosswalk": "๐Ÿšถโ€โ™‚๏ธ",
        "crowd": "๐Ÿ‘ฅ",
        "cruise_ship": "๐Ÿ›ณ๏ธ",
        "crutch": "๐Ÿฉผ",
        "cubicle": "๐Ÿข",
        "cucumber": "๐Ÿฅ’",
        "cup": "๐Ÿฅค",
        "cupcake": "๐Ÿง",
        "currency": "๐Ÿ’ต",
        "curry": "๐Ÿ›",
        "curtain": "๐ŸชŸ",
        "cutting_board": "๐Ÿ”ช",
        "cycling": "๐Ÿšด",
        "dachshund": "๐Ÿ•",
        "daffodil": "๐ŸŒผ",
        "dahlia": "๐ŸŒธ",
        "daikon": "๐Ÿฅ•",
        "daisy": "๐ŸŒผ",
        "dalmatian": "๐Ÿ•",
        "dam": "๐Ÿšง",
        "dancing": "๐Ÿ’ƒ",
        "dandelion": "๐ŸŒผ",
        "dartboard": "๐ŸŽฏ",
        "dashboard": "๐Ÿš—",
        "daytime": "โ˜€๏ธ",
        "decanter": "๐Ÿพ",
        "deck": "๐Ÿ›ณ๏ธ",
        "decoration": "๐ŸŽ€",
        "decorative_plant": "๐ŸŒฟ",
        "deejay": "๐ŸŽง",
        "deer": "๐ŸฆŒ",
        "desert": "๐Ÿœ๏ธ",
        "desk": "๐Ÿ–ฅ๏ธ",
        "dessert": "๐Ÿฐ",
        "diagram": "๐Ÿ“ˆ",
        "dial": "โŒš",
        "diaper": "๐Ÿ‘ถ",
        "dice": "๐ŸŽฒ",
        "dill": "๐ŸŒฟ",
        "dining_room": "๐Ÿด",
        "dinosaur": "๐Ÿฆ•",
        "diorama": "๐Ÿ–ผ๏ธ",
        "dirt_road": "๐Ÿ›ฃ๏ธ",
        "disco_ball": "๐Ÿชฉ",
        "dishwasher": "๐Ÿงผ",
        "diskette": "๐Ÿ’พ",
        "diving": "๐Ÿคฟ",
        "doberman": "๐Ÿ•",
        "dock": "๐Ÿšข",
        "document": "๐Ÿ“„",
        "dog": "๐Ÿถ",
        "doll": "๐Ÿช†",
        "dolphin": "๐Ÿฌ",
        "dome": "๐Ÿ•Œ",
        "domicile": "๐Ÿ ",
        "domino": "๐Ÿข",
        "donkey": "๐Ÿด",
        "donut": "๐Ÿฉ",
        "door": "๐Ÿšช",
        "dove": "๐Ÿ•Š๏ธ",
        "dragon_parade": "๐Ÿ‰",
        "dragonfly": "๐Ÿ‰",
        "dressage": "๐Ÿ‡",
        "drink": "๐Ÿน",
        "drinking_glass": "๐Ÿฅƒ",
        "driveway": "๐Ÿš—",
        "drone_machine": "๐Ÿš",
        "drum": "๐Ÿฅ",
        "dumbbell": "๐Ÿ‹๏ธ",
        "dumpling": "๐ŸฅŸ",
        "durian": "๐Ÿคข",
        "eagle": "๐Ÿฆ…",
        "earmuffs": "๐Ÿงฃ",
        "easel": "๐ŸŽจ",
        "easter_egg": "๐Ÿฅš",
        "edamame": "๐ŸŒฑ",
        "egg": "๐Ÿฅš",
        "eggplant": "๐Ÿ†",
        "electric_fan": "๐Ÿ’จ",
        "elephant": "๐Ÿ˜",
        "elevator": "๐Ÿ›—",
        "elk": "๐ŸฆŒ",
        "embers": "๐Ÿ”ฅ",
        "engine_vehicle": "๐Ÿš—",
        "entertainer": "๐ŸŽค",
        "envelope": "โœ‰๏ธ",
        "equestrian": "๐ŸŽ",
        "escalator": "๐Ÿšถโ€โ™‚๏ธ",
        "eucalyptus_tree": "๐ŸŒฟ",
        "evergreen": "๐ŸŒฒ",
        "extinguisher": "๐Ÿงฏ",
        "eyeglasses": "๐Ÿ‘“",
        "fairground": "๐ŸŽ ",
        "falafel": "๐Ÿง†",
        "farm": "๐Ÿšœ",
        "fedora": "๐ŸŽฉ",
        "fencing_sport": "๐Ÿคบ",
        "ferns": "๐ŸŒฟ",
        "ferret": "๐Ÿพ",
        "ferris_wheel": "๐ŸŽก",
        "fig": "๐Ÿ‡",
        "figurine": "๐Ÿ—ฟ",
        "fire": "๐Ÿ”ฅ",
        "firecracker": "๐Ÿงจ",
        "fireplace": "๐Ÿ”ฅ",
        "firetruck": "๐Ÿš’",
        "fireworks": "๐ŸŽ†",
        "fish": "๐ŸŸ",
        "fishbowl": "๐Ÿ ",
        "fishing": "๐ŸŽฃ",
        "fishtank": "๐Ÿ ",
        "flag": "๐Ÿšฉ",
        "flagpole": "๐Ÿšฉ",
        "flame": "๐Ÿ”ฅ",
        "flamingo": "๐Ÿฆฉ",
        "flan": "๐Ÿฎ",
        "flashlight": "๐Ÿ”ฆ",
        "flipchart": "๐Ÿ“Š",
        "flipper": "๐Ÿฆถ",
        "flower": "๐ŸŒธ",
        "flower_arrangement": "๐Ÿ’",
        "flute": "๐ŸŽถ",
        "folding_chair": "๐Ÿช‘",
        "foliage": "๐ŸŒฟ",
        "fondue": "๐Ÿซ•",
        "food": "๐Ÿฒ",
        "foosball": "โšฝ",
        "football": "๐Ÿˆ",
        "footwear": "๐Ÿ‘ž",
        "forest": "๐ŸŒฒ",
        "fork": "๐Ÿด",
        "forklift": "๐Ÿšœ",
        "formula_one_car": "๐ŸŽ๏ธ",
        "fountain": "โ›ฒ",
        "fox": "๐ŸฆŠ",
        "frame": "๐Ÿ–ผ๏ธ",
        "fried_chicken": "๐Ÿ—",
        "fried_egg": "๐Ÿณ",
        "fries": "๐ŸŸ",
        "frisbee": "๐Ÿฅ",
        "frog": "๐Ÿธ",
        "frozen": "โ„๏ธ",
        "frozen_dessert": "๐Ÿจ",
        "fruitcake": "๐Ÿฐ",
        "gamepad": "๐ŸŽฎ",
        "games": "๐Ÿ•น๏ธ",
        "garage": "๐Ÿš—",
        "garden": "๐ŸŒท",
        "gargoyle": "๐Ÿ—ฟ",
        "garlic": "๐Ÿง„",
        "gas_mask": "๐Ÿ˜ท",
        "gastropod": "๐ŸŒ",
        "gazebo": "๐Ÿก",
        "gears": "โš™๏ธ",
        "gecko": "๐ŸฆŽ",
        "gerbil": "๐Ÿญ",
        "german_shepherd": "๐Ÿ•",
        "geyser": "๐Ÿ’ฆ",
        "gift": "๐ŸŽ",
        "gift_card": "๐Ÿ’ณ",
        "gingerbread": "๐Ÿช",
        "giraffe": "๐Ÿฆ’",
        "glacier": "๐Ÿ”๏ธ",
        "glove": "๐Ÿงค",
        "glove_other": "๐ŸฅŠ",
        "go_kart": "๐ŸŽ๏ธ",
        "goat": "๐Ÿ",
        "goggles": "๐Ÿฅฝ",
        "goldfish": "๐Ÿ ",
        "golf": "๐ŸŒ๏ธโ€โ™‚๏ธ",
        "golf_ball": "โ›ณ",
        "golf_club": "๐ŸŒ๏ธ",
        "golf_course": "โ›ณ๏ธ",
        "gown": "๐Ÿ‘—",
        "graduation": "๐ŸŽ“",
        "graffiti": "๐ŸŽจ",
        "grain": "๐ŸŒพ",
        "grand_prix": "๐Ÿ",
        "grape": "๐Ÿ‡",
        "grapefruit": "๐ŸŠ",
        "grass": "๐ŸŒฑ",
        "grater": "๐Ÿง€",
        "grave": "โšฐ๏ธ",
        "green_beans": "๐ŸŒฑ",
        "greenhouse": "๐ŸŒฟ",
        "greyhound": "๐Ÿ•",
        "grill": "๐Ÿ–",
        "grilled_chicken": "๐Ÿ—",
        "groom": "๐Ÿคต",
        "guacamole": "๐Ÿฅ‘",
        "guava": "๐Ÿˆ",
        "guitar": "๐ŸŽธ",
        "gull": "๐Ÿฆ",
        "guppy": "๐ŸŸ",
        "gymnastics": "๐Ÿคธโ€โ™€๏ธ",
        "gyoza": "๐ŸฅŸ",
        "habanero": "๐ŸŒถ๏ธ",
        "ham": "๐Ÿ–",
        "hamburger": "๐Ÿ”",
        "hammer": "๐Ÿ”จ",
        "hammock": "๐Ÿ๏ธ",
        "hamster": "๐Ÿน",
        "handwriting": "โœ๏ธ",
        "hangar": "โœˆ๏ธ",
        "hangglider": "๐Ÿช‚",
        "harbour": "โš“",
        "hardhat": "๐Ÿ‘ท",
        "harp": "๐ŸŽต",
        "hat": "๐ŸŽฉ",
        "haze": "๐ŸŒซ๏ธ",
        "headgear": "๐Ÿ‘’",
        "headphones": "๐ŸŽง",
        "health_club": "๐Ÿ‹๏ธ",
        "hedgehog": "๐Ÿฆ”",
        "helicopter": "๐Ÿš",
        "helmet": "โ›‘๏ธ",
        "henna": "๐ŸŒฟ",
        "herb": "๐ŸŒฟ",
        "heron": "๐Ÿฆ",
        "high_chair": "๐Ÿช‘",
        "high_heel": "๐Ÿ‘ ",
        "hiking": "๐Ÿฅพ",
        "hill": "โ›ฐ๏ธ",
        "hippopotamus": "๐Ÿฆ›",
        "hockey": "๐Ÿ’",
        "holly": "๐ŸŒฟ",
        "honey": "๐Ÿฏ",
        "honeydew": "๐Ÿˆ",
        "hoodie": "๐Ÿ‘•",
        "hookah": "๐Ÿ’จ",
        "horse": "๐Ÿด",
        "horseshoe": "๐Ÿด",
        "hospital": "๐Ÿฅ",
        "hotdog": "๐ŸŒญ",
        "hound": "๐Ÿ•",
        "hourglass": "โณ",
        "house_single": "๐Ÿ ",
        "houseboat": "๐Ÿ›ณ๏ธ",
        "housewares": "๐Ÿ ",
        "hula": "๐Ÿ’ƒ",
        "hummingbird": "๐Ÿฆ",
        "hummus": "๐Ÿฒ",
        "hunting": "๐Ÿน",
        "hurdle": "๐Ÿšง",
        "husky": "๐Ÿ•โ€๐Ÿฆบ",
        "hydrant": "๐Ÿš’",
        "hyena": "๐Ÿฆ›",
        "ice": "โ„๏ธ",
        "ice_cream": "๐Ÿจ",
        "ice_skates": "โ›ธ๏ธ",
        "ice_skating": "โ›ธ๏ธ",
        "iceberg": "๐ŸงŠ",
        "igloo": "๐Ÿ ",
        "iguana": "๐ŸฆŽ",
        "illustrations": "๐Ÿ–ผ๏ธ",
        "insect": "๐Ÿž",
        "interior_room": "๐Ÿ›‹๏ธ",
        "interior_shop": "๐Ÿฌ",
        "irish_wolfhound": "๐Ÿ•",
        "iron_clothing": "๐Ÿงด",
        "island": "๐Ÿ๏ธ",
        "ivy": "๐ŸŒฟ",
        "jack_o_lantern": "๐ŸŽƒ",
        "jack_russell_terrier": "๐Ÿ•",
        "jacket": "๐Ÿงฅ",
        "jacuzzi": "๐Ÿ›",
        "jalapeno": "๐ŸŒถ๏ธ",
        "jar": "๐Ÿบ",
        "jeans": "๐Ÿ‘–",
        "jeep": "๐Ÿš™",
        "jello": "๐Ÿฎ",
        "jelly": "๐Ÿฎ",
        "jellyfish": "๐ŸŽ",
        "jetski": "๐Ÿšค",
        "jewelry": "๐Ÿ’",
        "jigsaw": "๐Ÿงฉ",
        "jockey_horse": "๐Ÿ‡",
        "joystick": "๐Ÿ•น๏ธ",
        "jug": "๐Ÿบ",
        "juggling": "๐Ÿคนโ€โ™‚๏ธ",
        "juice": "๐Ÿงƒ",
        "juicer": "๐Ÿน",
        "jungle": "๐ŸŒด",
        "kangaroo": "๐Ÿฆ˜",
        "karaoke": "๐ŸŽค",
        "kayak": "๐Ÿšฃ",
        "kebab": "๐Ÿข",
        "keg": "๐Ÿ›ข๏ธ",
        "kettle": "๐Ÿต",
        "keypad": "โŒจ๏ธ",
        "kickboxing": "๐ŸฅŠ",
        "kilt": "๐Ÿ‘—",
        "kimono": "๐Ÿ‘˜",
        "kitchen": "๐Ÿณ",
        "kitchen_countertop": "๐Ÿ ",
        "kitchen_faucet": "๐Ÿšฐ",
        "kitchen_oven": "๐Ÿณ",
        "kitchen_room": "๐Ÿณ",
        "kitchen_sink": "๐Ÿšฐ",
        "kite": "๐Ÿช",
        "kiteboarding": "๐Ÿ„โ€โ™‚๏ธ",
        "kitten": "๐Ÿฑ",
        "kiwi": "๐Ÿฅ",
        "knife": "๐Ÿ”ช",
        "koala": "๐Ÿจ",
        "kohlrabi": "๐Ÿฅฆ",
        "koi": "๐ŸŸ",
        "lab_coat": "๐Ÿฅผ",
        "ladle": "๐Ÿฅ„",
        "ladybug": "๐Ÿž",
        "lake": "๐Ÿž๏ธ",
        "lamp": "๐Ÿ’ก",
        "lamppost": "๐Ÿšฆ",
        "land": "๐Ÿž๏ธ",
        "lantern": "๐Ÿฎ",
        "laptop": "๐Ÿ’ป",
        "laundry_machine": "๐Ÿงบ",
        "lava": "๐ŸŒ‹",
        "leash": "๐Ÿ•โ€๐Ÿฆบ",
        "leek": "๐ŸŒฑ",
        "lemon": "๐Ÿ‹",
        "lemongrass": "๐ŸŒฑ",
        "lemur": "๐Ÿ’",
        "leopard": "๐Ÿ†",
        "lettuce": "๐Ÿฅฌ",
        "library": "๐Ÿ“š",
        "license_plate": "๐Ÿš—",
        "lifejacket": "๐Ÿฆบ",
        "lifesaver": "โš“",
        "light": "๐Ÿ’ก",
        "light_bulb": "๐Ÿ’ก",
        "lighter": "๐Ÿ”ฅ",
        "lighthouse": "๐Ÿฐ",
        "lightning": "โšก",
        "lily": "๐ŸŒธ",
        "lime": "๐Ÿ‹",
        "limousine": "๐Ÿš—",
        "lion": "๐Ÿฆ",
        "lionfish": "๐Ÿ ",
        "liquid": "๐Ÿ’ง",
        "liquor": "๐Ÿพ",
        "living_room": "๐Ÿ›‹๏ธ",
        "lizard": "๐ŸฆŽ",
        "llama": "๐Ÿฆ™",
        "loafer": "๐Ÿ‘ž",
        "lobster": "๐Ÿฆž",
        "lollipop": "๐Ÿญ",
        "luggage": "๐Ÿงณ",
        "lychee": "๐Ÿˆ",
        "lynx": "๐Ÿˆ",
        "macadamia": "๐ŸŒฐ",
        "mackerel": "๐ŸŸ",
        "magazine": "๐Ÿ“ฐ",
        "mailbox": "๐Ÿ“ซ",
        "malamute": "๐Ÿ•โ€๐Ÿฆบ",
        "malinois": "๐Ÿ•",
        "mallet": "๐Ÿ”จ",
        "mammal": "๐Ÿ˜",
        "mandarine": "๐ŸŠ",
        "mango": "๐Ÿฅญ",
        "mangosteen": "๐Ÿˆ",
        "mangrove": "๐ŸŒณ",
        "manhole": "โ›๏ธ",
        "map": "๐Ÿ—บ๏ธ",
        "maple_tree": "๐Ÿ",
        "margarita": "๐Ÿน",
        "marigold": "๐ŸŒผ",
        "marshmallow": "๐Ÿฌ",
        "marsupial": "๐Ÿฆ˜",
        "martial_arts": "๐Ÿฅ‹",
        "martini": "๐Ÿธ",
        "mask": "๐Ÿ˜ท",
        "mast": "โ›ต",
        "mastiff": "๐Ÿ•",
        "matches": "๐Ÿ”ฅ",
        "matzo": "๐Ÿช",
        "measuring_tape": "๐Ÿ“",
        "meat": "๐Ÿ–",
        "meatball": "๐Ÿ",
        "medal": "๐Ÿ…",
        "medicine": "๐Ÿ’Š",
        "megalith": "๐Ÿชจ",
        "megaphone": "๐Ÿ“ฃ",
        "melon": "๐Ÿˆ",
        "microphone": "๐ŸŽค",
        "microscope": "๐Ÿ”ฌ",
        "microwave": "๐Ÿ”ฅ",
        "military_uniform": "๐Ÿช–",
        "milkshake": "๐Ÿฅค",
        "millipede": "๐Ÿ›",
        "mistletoe": "๐ŸŒฟ",
        "mitten": "๐Ÿงค",
        "moccasin": "๐Ÿ‘ž",
        "mojito": "๐Ÿน",
        "mollusk": "๐Ÿš",
        "money": "๐Ÿ’ต",
        "monitor_lizard": "๐ŸฆŽ",
        "monorail": "๐Ÿš",
        "moon": "๐ŸŒ•",
        "moose": "๐ŸฆŒ",
        "mop": "๐Ÿงน",
        "moss": "๐ŸŒฟ",
        "moth": "๐Ÿฆ‹",
        "motocross": "๐Ÿ๏ธ",
        "motorcycle": "๐Ÿ๏ธ",
        "motorhome": "๐Ÿš",
        "motorsport": "๐ŸŽ๏ธ",
        "mountain": "โ›ฐ๏ธ",
        "mousetrap": "๐Ÿชค",
        "mower": "๐Ÿšœ",
        "muffin": "๐Ÿง",
        "mug": "โ˜•",
        "museum": "๐Ÿ›๏ธ",
        "mushroom": "๐Ÿ„",
        "musical_instrument": "๐ŸŽธ",
        "mussel": "๐Ÿš",
        "mustard": "๐ŸŒญ",
        "naan": "๐Ÿž",
        "nachos": "๐ŸŒฎ",
        "nascar": "๐ŸŽ๏ธ",
        "necktie": "๐Ÿ‘”",
        "nectarine": "๐Ÿ‘",
        "nest": "๐Ÿฆ",
        "newspaper": "๐Ÿ“ฐ",
        "night_sky": "๐ŸŒŒ",
        "nightclub": "๐ŸŽค",
        "nut": "๐Ÿฅœ",
        "oak_tree": "๐ŸŒณ",
        "oar": "๐Ÿ›ถ",
        "oatmeal": "๐Ÿฅฃ",
        "obelisk": "๐Ÿ—ฟ",
        "ocean": "๐ŸŒŠ",
        "omelet": "๐Ÿณ",
        "onion": "๐Ÿง…",
        "optical_equipment": "๐Ÿ”ญ",
        "oranges": "๐ŸŠ",
        "orchard": "๐ŸŒณ",
        "orchestra": "๐ŸŽป",
        "orchid": "๐ŸŒบ",
        "organ_instrument": "๐ŸŽน",
        "origami": "๐Ÿ”–",
        "ostrich": "๐Ÿฆข",
        "otter": "๐Ÿฆฆ",
        "oven": "๐Ÿณ",
        "owl": "๐Ÿฆ‰",
        "oyster": "๐Ÿฆช",
        "pacifier": "๐Ÿ‘ถ",
        "paella": "๐Ÿฅ˜",
        "paintball": "๐Ÿ”ซ",
        "paintbrush": "๐Ÿ–Œ๏ธ",
        "painting": "๐Ÿ–ผ๏ธ",
        "palm_tree": "๐ŸŒด",
        "pan": "๐Ÿณ",
        "pancake": "๐Ÿฅž",
        "panda": "๐Ÿผ",
        "papaya": "๐Ÿˆ",
        "paper_bag": "๐Ÿ›๏ธ",
        "parachute": "๐Ÿช‚",
        "parade": "๐ŸŽ‰",
        "parakeet": "๐Ÿฆœ",
        "parasailing": "๐Ÿช‚",
        "park": "๐ŸŒฒ",
        "parking_lot": "๐Ÿš—",
        "parrot": "๐Ÿฆœ",
        "passionfruit": "๐Ÿˆ",
        "passport": "๐Ÿ›‚",
        "pasta": "๐Ÿ",
        "pastry": "๐Ÿฅ",
        "path": "๐Ÿ›ค๏ธ",
        "patio": "๐Ÿช‘",
        "payphone": "๐Ÿ“ž",
        "pea": "๐ŸŸข",
        "peach": "๐Ÿ‘",
        "peacock": "๐Ÿฆš",
        "peanut": "๐Ÿฅœ",
        "pear": "๐Ÿ",
        "pecan": "๐ŸŒฐ",
        "pelican": "๐Ÿฆ",
        "pen": "๐Ÿ–Š๏ธ",
        "penguin": "๐Ÿง",
        "people": "๐Ÿงโ€โ™‚๏ธ",
        "pepper_veggie": "๐ŸŒถ๏ธ",
        "pepperoni": "๐Ÿ•",
        "peregrine": "๐Ÿฆ…",
        "performance": "๐ŸŽญ",
        "pergola": "๐ŸŒฟ",
        "persimmon": "๐Ÿ…",
        "petunia": "๐ŸŒบ",
        "phone": "๐Ÿ“ฑ",
        "piano": "๐ŸŽน",
        "pickle": "๐Ÿฅ’",
        "pie": "๐Ÿฅง",
        "pier": "๐Ÿ›ณ๏ธ",
        "pierogi": "๐ŸฅŸ",
        "pig": "๐Ÿ–",
        "pigeon": "๐Ÿฆ",
        "piggybank": "๐Ÿท",
        "pillow": "๐Ÿ›Œ",
        "pineapple": "๐Ÿ",
        "ping_pong": "๐Ÿ“",
        "pistachio": "๐Ÿฅœ",
        "pita": "๐Ÿฅ™",
        "pitbull": "๐Ÿ•",
        "pizza": "๐Ÿ•",
        "plant": "๐ŸŒฑ",
        "plate": "๐Ÿฝ๏ธ",
        "play_card": "๐Ÿƒ",
        "playground": "๐ŸŽ ",
        "plum": "๐Ÿ‘",
        "podium": "๐Ÿ†",
        "poinsettia": "๐ŸŒบ",
        "poker": "๐Ÿƒ",
        "pole": "๐Ÿšฉ",
        "police_car": "๐Ÿš“",
        "poncho": "๐Ÿงฅ",
        "pool": "๐ŸŠ",
        "popcorn": "๐Ÿฟ",
        "porch": "๐Ÿก",
        "porcupine": "๐Ÿฆ”",
        "potato": "๐Ÿฅ”",
        "poultry": "๐Ÿ—",
        "pretzel": "๐Ÿฅจ",
        "printer": "๐Ÿ–จ๏ธ",
        "propeller": "๐Ÿš",
        "puffer_fish": "๐Ÿก",
        "puffin": "๐Ÿฆ",
        "pug": "๐Ÿถ",
        "pumpkin": "๐ŸŽƒ",
        "puppet": "๐ŸŽญ",
        "purse": "๐Ÿ‘›",
        "pyramid": "๐Ÿ”บ",
        "rabbit": "๐Ÿฐ",
        "raccoon": "๐Ÿฆ",
        "rainbow": "๐ŸŒˆ",
        "rake": "๐Ÿ‚",
        "raspberry": "๐Ÿ‡",
        "rat": "๐Ÿ€",
        "raven": "๐Ÿฆ…",
        "record": "๐Ÿ’ฟ",
        "rhinoceros": "๐Ÿฆ",
        "rice": "๐Ÿš",
        "river": "๐ŸŒŠ",
        "road": "๐Ÿ›ฃ๏ธ",
        "rocket": "๐Ÿš€",
        "rodent": "๐Ÿญ",
        "roof": "๐Ÿ ",
        "rope": "๐Ÿชข",
        "rose": "๐ŸŒน",
        "rotisserie": "๐Ÿ—",
        "roulette": "๐ŸŽฐ",
        "rowboat": "๐Ÿšฃ",
        "ruins": "๐Ÿš๏ธ",
        "sack": "๐Ÿ›๏ธ",
        "saddle": "๐ŸŽ",
        "sailboat": "โ›ต",
        "salad": "๐Ÿฅ—",
        "salami": "๐Ÿ•",
        "salmon": "๐ŸŸ",
        "sand": "๐Ÿ–๏ธ",
        "sandwich": "๐Ÿฅช",
        "sausage": "๐ŸŒญ",
        "saxophone": "๐ŸŽท",
        "scallop": "๐Ÿš",
        "scarf": "๐Ÿงฃ",
        "scissors": "โœ‚๏ธ",
        "scooter": "๐Ÿ›ด",
        "scoreboard": "๐Ÿ“Š",
        "scorpion": "๐Ÿฆ‚",
        "screwdriver": "๐Ÿช›",
        "seahorse": "๐ŸŒŠ",
        "seal": "๐Ÿฆญ",
        "seashell": "๐Ÿš",
        "seat": "๐Ÿ’บ",
        "seaweed": "๐ŸŒฟ",
        "seed": "๐ŸŒฑ",
        "sequoia": "๐ŸŒฒ",
        "sesame": "๐ŸŒฑ",
        "shark": "๐Ÿฆˆ",
        "sheep": "๐Ÿ‘",
        "shower": "๐Ÿšฟ",
        "shrub": "๐ŸŒฟ",
        "sidewalk": "๐Ÿšถโ€โ™‚๏ธ",
        "sign": "๐Ÿชง",
        "silo": "๐Ÿญ",
        "skateboard": "๐Ÿ›น",
        "skeleton": "๐Ÿ’€",
        "skull": "๐Ÿ’€",
        "skunk": "๐Ÿฆจ",
        "sky": "โ˜๏ธ",
        "skyscraper": "๐Ÿ™๏ธ",
        "sled": "๐Ÿ›ท",
        "snail": "๐ŸŒ",
        "snake": "๐Ÿ",
        "sneaker": "๐Ÿ‘Ÿ",
        "snow": "โ„๏ธ",
        "snowboard": "๐Ÿ‚",
        "snowman": "โ˜ƒ๏ธ",
        "soccer": "โšฝ",
        "sock": "๐Ÿงฆ",
        "soda": "๐Ÿฅค",
        "sofa": "๐Ÿ›‹๏ธ",
        "softball": "๐ŸฅŽ",
        "solar_panel": "โšก",
        "sombrero": "๐Ÿ‘’",
        "souffle": "๐Ÿฎ",
        "soup": "๐Ÿฒ",
        "spaghetti": "๐Ÿ",
        "spider": "๐Ÿ•ท๏ธ",
        "spinach": "๐Ÿฅฌ",
        "spoon": "๐Ÿฅ„",
        "sport": "๐Ÿ€",
        "spotlight": "๐Ÿ’ก",
        "sprinkler": "๐Ÿ’ฆ",
        "squirrel": "๐Ÿฟ๏ธ",
        "stadium": "๐ŸŸ๏ธ",
        "starfish": "๐ŸŒŸ",
        "statue": "๐Ÿ—ฟ",
        "steak": "๐Ÿฅฉ",
        "stethoscope": "๐Ÿฉบ",
        "stove": "๐Ÿ”ฅ",
        "straw_drinking": "๐Ÿฅค",
        "street": "๐Ÿ›ฃ๏ธ",
        "streetcar": "๐Ÿš‹",
        "string_instrument": "๐ŸŽป",
        "stroller": "๐Ÿ‘ถ",
        "suit": "๐Ÿ‘”",
        "suitcase": "๐Ÿงณ",
        "sun": "โ˜€๏ธ",
        "sunflower": "๐ŸŒป",
        "sunglasses": "๐Ÿ•ถ๏ธ",
        "surfboard": "๐Ÿ„โ€โ™‚๏ธ",
        "sushi": "๐Ÿฃ",
        "swan": "๐Ÿฆข",
        "sword": "โš”๏ธ",
        "syringe": "๐Ÿ’‰",
        "table": "๐Ÿช‘",
        "taco": "๐ŸŒฎ",
        "tambourine": "๐Ÿฅ",
        "tattoo": "๐Ÿ’‰",
        "teapot": "๐Ÿซ–",
        "telescope": "๐Ÿ”ญ",
        "television": "๐Ÿ“บ",
        "tennis": "๐ŸŽพ",
        "tent": "โ›บ",
        "theater": "๐ŸŽญ",
        "thermometer": "๐ŸŒก๏ธ",
        "tiara": "๐Ÿ‘‘",
        "ticket": "๐ŸŽซ",
        "tiger": "๐Ÿฏ",
        "tire": "๐Ÿš—",
        "toad": "๐Ÿธ",
        "toaster": "๐Ÿž",
        "tomato": "๐Ÿ…",
        "toolbox": "๐Ÿงฐ",
        "tornado": "๐ŸŒช๏ธ",
        "tortilla": "๐ŸŒฎ",
        "toucan": "๐Ÿฆ",
        "tower": "๐Ÿ—ผ",
        "toy": "๐Ÿงธ",
        "tractor": "๐Ÿšœ",
        "traffic_light": "๐Ÿšฆ",
        "train": "๐Ÿš‚",
        "trampoline": "๐Ÿคธโ€โ™€๏ธ",
        "trash_can": "๐Ÿ—‘๏ธ",
        "tree": "๐ŸŒณ",
        "tricycle": "๐Ÿšฒ",
        "tripod": "๐Ÿ“ท",
        "trombone": "๐ŸŽบ",
        "trophy": "๐Ÿ†",
        "truck": "๐Ÿšš",
        "trumpet": "๐ŸŽบ",
        "tulip": "๐ŸŒท",
        "tuna": "๐ŸŸ",
        "turtle": "๐Ÿข",
        "typewriter": "๐Ÿ“‡",
        "ukulele": "๐ŸŽธ",
        "umbrella": "โ˜”",
        "vacuum": "๐Ÿงน",
        "vase": "๐Ÿบ",
        "vegetable": "๐Ÿฅฆ",
        "vehicle": "๐Ÿš—",
        "violin": "๐ŸŽป",
        "volcano": "๐ŸŒ‹",
        "volleyball": "๐Ÿ",
        "vulture": "๐Ÿฆ…",
        "waffle": "๐Ÿง‡",
        "wagon": "๐Ÿšš",
        "wallet": "๐Ÿ‘›",
        "walrus": "๐Ÿฆญ",
        "watch": "โŒš",
        "water": "๐Ÿ’ง",
        "waterfall": "๐ŸŒŠ",
        "wedding": "๐Ÿ’’",
        "whale": "๐Ÿ‹",
        "wheat": "๐ŸŒพ",
        "wheel": "๐ŸŽก",
        "wheelbarrow": "๐Ÿ›’",
        "willow": "๐ŸŒณ",
        "windmill": "๐ŸŒฌ๏ธ",
        "window": "๐ŸชŸ",
        "wine": "๐Ÿท",
        "woodpecker": "๐Ÿฆ",
        "worm": "๐Ÿชฑ",
        "wreath": "๐ŸŒฒ",
        "wrench": "๐Ÿ”ง",
        "xylophone": "๐ŸŽต",
        "yacht": "โ›ต",
        "yarn": "๐Ÿงถ",
        "yoga": "๐Ÿง˜โ€โ™€๏ธ",
        "yogurt": "๐Ÿฅ›",
        "zebra": "๐Ÿฆ“",
        "zoo": "๐Ÿฆ“",
        "zucchini": "๐Ÿฅ’",
    ]
    
    var result: [String] = []
    for word in classes {
        if let emoji = map[word] {
            result.append(emoji)
        }
    }
    return result
}