├── .gitignore ├── img ├── logo.png ├── logo.xcf └── stego.png ├── tests ├── img │ ├── raven.png │ ├── test.png │ ├── apple-test.png │ ├── beemovie.png │ └── beemoviescript └── common.rs ├── .github └── FUNDING.yml ├── Cargo.toml ├── LICENSE ├── .travis.yml ├── README.md ├── src ├── main.rs └── lib.rs └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/img/logo.png -------------------------------------------------------------------------------- /img/logo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/img/logo.xcf -------------------------------------------------------------------------------- /img/stego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/img/stego.png -------------------------------------------------------------------------------- /tests/img/raven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/tests/img/raven.png -------------------------------------------------------------------------------- /tests/img/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/tests/img/test.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ajmwagar] 4 | -------------------------------------------------------------------------------- /tests/img/apple-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/tests/img/apple-test.png -------------------------------------------------------------------------------- /tests/img/beemovie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/stego/HEAD/tests/img/beemovie.png -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "stego" 3 | description = "A steganographic swiss army knife" 4 | repository = "https://github.com/ajmwagar/stego" 5 | readme = "README.md" 6 | version = "0.1.4" 7 | authors = ["Avery Wagar "] 8 | edition = "2018" 9 | license = "MIT" 10 | 11 | [dependencies] 12 | image = "0.21" 13 | structopt = "0.2" 14 | log = "0.4" 15 | pretty_env_logger = "0.3" 16 | atty = "0.2" 17 | -------------------------------------------------------------------------------- /tests/common.rs: -------------------------------------------------------------------------------- 1 | use std::fs::File; 2 | use std::io::prelude::*; 3 | use std::path::{Path}; 4 | use stego::*; 5 | use image::DynamicImage; 6 | 7 | fn setup() -> LSBStego { 8 | let im: DynamicImage = image::open(&Path::new(&"./tests/img/test.png")).unwrap(); 9 | let stego = LSBStego::new(im.clone()); 10 | stego 11 | } 12 | 13 | #[test] 14 | fn encode_decode_text(){ 15 | let mut stego = setup(); 16 | 17 | let msg = String::from("Hello, Stego!"); 18 | 19 | let im2 = stego.encode_text(msg.clone()); 20 | 21 | let mut stego = LSBStego::from_rgba(im2); 22 | 23 | let decoded = stego.decode_text(); 24 | 25 | assert_eq!(msg, decoded); 26 | } 27 | 28 | #[test] 29 | fn encode_decode_binary(){ 30 | let mut stego = setup(); 31 | 32 | let mut bytes = Vec::new(); 33 | let mut file = File::open(&Path::new(&"./tests/img/beemoviescript")).unwrap(); 34 | assert!(file.read_to_end(&mut bytes).is_ok()); 35 | 36 | let im2 = stego.encode_binary(bytes.clone()); 37 | 38 | let mut stego = LSBStego::from_rgba(im2); 39 | 40 | let decoded = stego.decode_binary(); 41 | 42 | assert_eq!(bytes, decoded); 43 | } 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Avery Wagar and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: rust 2 | sudo: required 3 | dist: trusty 4 | addons: 5 | apt: 6 | packages: 7 | - libssl-dev 8 | cache: 9 | cargo: true 10 | rust: 11 | # - nightly 12 | - beta 13 | - stable 14 | # matrix: 15 | # allow_failures: 16 | # - rust: nightly 17 | 18 | before_cache: | 19 | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then 20 | RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin -f 21 | fi 22 | 23 | script: 24 | - cargo clean 25 | - cargo build 26 | - cargo test 27 | 28 | 29 | after_success: | 30 | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then 31 | # Uncomment the following line for coveralls.io 32 | # cargo tarpaulin --ciserver travis-ci --coveralls $TRAVIS_JOB_ID 33 | 34 | # Uncomment the following two lines create and upload a report for codecov.io 35 | cargo tarpaulin --out Xml 36 | bash <(curl -s https://codecov.io/bash) 37 | fi 38 | 39 | before_deploy: 40 | - tar -czf $PACKAGE -C target/$TARGET/release/ $NAME 41 | # Set up git user name and tag this commit 42 | - git config --local user.name "ajmwagar" 43 | - git config --local user.email "ajmw.subs@gmail.com" 44 | - export TRAVIS_TAG=${TRAVIS_TAG:-$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)} 45 | - git tag $TRAVIS_TAG 46 | 47 | deploy: 48 | provider: releases 49 | api_key: $DEPLOYKEY 50 | file: ${PACKAGE} 51 | skip_cleanup: true 52 | on: 53 | tags: true 54 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Stego](./img/logo.png) 2 | 3 | [![Crates.io](https://img.shields.io/crates/v/stego.svg)](https://crates.io/crates/stego) 4 | [![stego](https://docs.rs/stego/badge.svg)](https://docs.rs/stego) 5 | [![Build Status](https://travis-ci.org/ajmwagar/stego.svg?branch=master)](https://travis-ci.org/ajmwagar/stego) 6 | [![dependency status](https://deps.rs/repo/github/ajmwagar/stego/status.svg)](https://deps.rs/repo/github/ajmwagar/stego) 7 | [![License](https://img.shields.io/crates/l/pbr.svg)](https://github.com/ajmwagar/stego/blob/master/LICENSE.md) 8 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fajmwagar%2Fstego.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fajmwagar%2Fstego?ref=badge_shield) 9 | 10 | 11 | 12 | *stego* is a steganographic swiss army knife. 13 | 14 | ## Features 15 | 16 | 17 | 18 | - Cross platform (MacOS, Windows, Linux) 19 | - Encoding and decoding of images/text/binary files into photos (audio/video coming soon) 20 | - Fast and nearly undetectable encoding (to the human eye). 21 | - Smart `stdin`/`stdout` detection (try piping to `stego` instead of using `--payload`) 22 | - lossless decoding of data 23 | - Simple, stateless CLI 24 | - Zero system-dependencies (standalone binary) 25 | 26 | ## ⚒ Usage 27 | 28 | ```bash 29 | 30 | # Text encoding/decoding 31 | 32 | # Encodes the message "Hello, Stego!" into the provided image 33 | stego encode text --input image.png --output encoded-image.png --payload "Hello, Stego\!" 34 | 35 | # Decodes and prints out the encoded message ("Hello, Stego!") hidden in the provided image 36 | stego decode text --input encoded-image.png 37 | 38 | # File encoding/decoding 39 | 40 | # Encodes the file hidden.docx into the provided image 41 | stego encode file --input image.png --output encoded-image.png --payload hidden.docx 42 | 43 | # Decodes and saves the content to decoded.docx from the provided image 44 | stego decode file --input encoded-image.png --output decoded.docx 45 | 46 | # Stdin detection (for text-encoding) 47 | echo "Hello, Stego\!" | stego encode text --input image.png --output encoded-image.png 48 | 49 | # Help 50 | stego --help 51 | stego encode --help 52 | stego decode --help 53 | ``` 54 | 55 | 56 | ## 📦 Installation 57 | 58 | ```bash 59 | cargo install stego 60 | ``` 61 | 62 | OR 63 | 64 | ```bash 65 | git clone https://github.com/ajmwagar/stego 66 | cd stego 67 | cargo install --path ./ --force 68 | ``` 69 | 70 | ## 🚥 Roadmap 71 | 72 | - [x] CLI 73 | - [x] Encoding / Decoding of text 74 | - [x] Encoding / Decoding of images **(currently broken see [#5](https://github.com/ajmwagar/stego/issues/5))** 75 | - [x] Encoding / Decoding of binary files 76 | - [x] Add logging 77 | - [ ] Better error handling/messages 78 | - [ ] Add file encryption 79 | - [ ] Add file compression 80 | - [ ] CI/Test suite 81 | - [ ] Trait based API for custom datatypes 82 | - [ ] [bincode](https://github.com/servo/bincode) support 83 | - [ ] Encoding / Decoding of audio files 84 | - [ ] Encoding / Decoding of video files 85 | - [ ] Jurassic Park 86 | - [ ] Another mass extinction 87 | - [ ] ??? 88 | 89 | ## 🤝 Acknowledgments & Contributors 90 | 91 | `stego` wouldn't be possible without: 92 | 93 | - Nathan Laha ([@TheDekuTree](https://github.com/TheDekuTree)) 94 | - Avery Wagar ([@ajmwagar](https://github.com/ajmwagar)) 95 | 96 | `stego` was inspired by: 97 | - [`xsv`](https://github.com/BurntSushi/xsv) 98 | - [`LSBPython`](https://github.com/RobinDavid/LSB-Steganography) 99 | 100 | 101 | ## License 102 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fajmwagar%2Fstego.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fajmwagar%2Fstego?ref=badge_large) 103 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] extern crate log; 2 | 3 | use log::{LevelFilter}; 4 | use atty::Stream; 5 | 6 | use structopt::clap::arg_enum; 7 | use structopt::StructOpt; 8 | 9 | use stego::*; 10 | 11 | use std::fs::File; 12 | use std::path::{Path, PathBuf}; 13 | use std::io::prelude::*; 14 | use std::error::Error; 15 | 16 | use image::{DynamicImage}; 17 | 18 | arg_enum! { 19 | #[derive(Debug)] 20 | enum DataType { 21 | // Image, 22 | Text, 23 | File 24 | } 25 | } 26 | 27 | #[derive(StructOpt, Debug)] 28 | #[structopt(name = "stego")] 29 | /// a steganographic swiss army knife 30 | struct Opt { 31 | // The number of occurrences of the `v/verbose` flag 32 | /// Verbose mode (-v, -vv, -vvv, etc.) 33 | #[structopt(short = "v", long = "verbose", parse(from_occurrences))] 34 | verbose: u8, 35 | 36 | #[structopt(flatten)] 37 | command: StegoCLI, 38 | } 39 | 40 | #[derive(StructOpt, Debug)] 41 | #[structopt(name = "stego", about = "Steganography at it's finest")] 42 | enum StegoCLI { 43 | #[structopt(name = "encode")] 44 | /// Encoding command 45 | Encode { 46 | 47 | 48 | #[structopt(short = "i", long = "input", parse(from_os_str))] 49 | /// Input image 50 | input: PathBuf, 51 | #[structopt(short = "o", long = "output", parse(from_os_str))] 52 | /// File to save modified image as 53 | output: PathBuf, 54 | 55 | #[structopt(raw(possible_values = "&DataType::variants()", case_insensitive = "true"))] 56 | /// Type of data to embed in image 57 | dtype: DataType, 58 | 59 | #[structopt(short = "p", long = "payload")] 60 | /// Data to embed in image (either text message or path) 61 | payload: Option, 62 | 63 | }, 64 | #[structopt(name = "decode")] 65 | Decode { 66 | #[structopt(short = "i", long = "input", parse(from_os_str))] 67 | /// Input image to decode 68 | input: PathBuf, 69 | 70 | #[structopt(short = "o", long = "output", parse(from_os_str))] 71 | /// Path to save hidden image/file to 72 | output: Option, 73 | 74 | #[structopt(raw(possible_values = "&DataType::variants()", case_insensitive = "true"))] 75 | /// Type of data to embed in image 76 | dtype: DataType, 77 | }, 78 | } 79 | 80 | fn main() -> Result<(), Box> { 81 | let opt = Opt::from_args(); 82 | 83 | if atty::is(Stream::Stdout) { 84 | 85 | if opt.verbose >= 3 { 86 | print_header(); 87 | } 88 | 89 | let mut builder = pretty_env_logger::formatted_timed_builder(); 90 | 91 | let filter = match opt.verbose { 92 | 0 => LevelFilter::Error, 93 | 1 => LevelFilter::Warn, 94 | 2 => LevelFilter::Info, 95 | 3 => LevelFilter::Debug, 96 | 4 => LevelFilter::Trace, 97 | 5 => LevelFilter::Off, 98 | _ => LevelFilter::Off 99 | }; 100 | 101 | builder.filter(None, filter).init(); 102 | } 103 | 104 | 105 | match opt.command { 106 | StegoCLI::Encode{ input, output, dtype, payload } => { 107 | // Use the open function to load an image from a Path. 108 | // ```open``` returns a dynamic image. 109 | let im: DynamicImage = image::open(&Path::new(&input))?; 110 | let mut stego = LSBStego::new(im.clone()); 111 | 112 | let mut im2; 113 | 114 | info!("Loading host image: {}", &input.into_os_string().into_string().unwrap()); 115 | 116 | match dtype { 117 | DataType::File => { 118 | let path = payload.unwrap(); 119 | let mut bytes = Vec::new(); 120 | 121 | info!("Loading binary file {}", &path); 122 | 123 | let mut file = File::open(&Path::new(&path))?; 124 | 125 | file.read_to_end(&mut bytes)?; 126 | 127 | info!("Encoding to host image..."); 128 | 129 | 130 | im2 = stego.encode_binary(bytes); 131 | 132 | }, 133 | // DataType::Image => { 134 | // let path = payload.unwrap(); 135 | // info!("Loading hidden image {}", &path); 136 | 137 | // let pim: DynamicImage = image::open(&Path::new(&path))?; 138 | 139 | 140 | // info!("Encoding to host image..."); 141 | 142 | // im2 = stego.encode_image(pim); 143 | 144 | // }, 145 | DataType::Text => { 146 | if payload != None { 147 | info!("Encoding text paylod to host image..."); 148 | im2 = stego.encode_text(payload.unwrap()); 149 | } 150 | else { 151 | warn!("No payload specified... Reading from stdin"); 152 | 153 | let mut msg = String::new(); 154 | std::io::stdin().read_to_string(&mut msg)?; 155 | 156 | info!("Encoding to host image..."); 157 | im2 = stego.encode_text(msg); 158 | } 159 | } 160 | } 161 | 162 | info!("Saving file to {:?}", output); 163 | 164 | im2.save(&Path::new(&output))?; 165 | 166 | info!("Done!"); 167 | 168 | Ok(()) 169 | }, 170 | StegoCLI::Decode { input, output, dtype} => { 171 | // Use the open function to load an image from a Path. 172 | // ```open``` returns a dynamic image. 173 | let im: DynamicImage = image::open(&Path::new(&input))?; 174 | let mut stego = LSBStego::new(im.clone()); 175 | 176 | match dtype { 177 | DataType::File => { 178 | let path = output.unwrap(); 179 | info!("Saving file to {:?}", path); 180 | 181 | let mut file = File::create(&Path::new(&path))?; 182 | 183 | 184 | file.write_all(&stego.decode_binary())?; 185 | 186 | Ok(()) 187 | 188 | }, 189 | // DataType::Image => { 190 | // // TODO: Fix this 191 | // warn!("Image decoding is currently broken (see https://github.com/ajmwagar/stego/issues/5)"); 192 | 193 | // let im2 = stego.decode_image(); 194 | 195 | // info!("Saving file to {:?}", output); 196 | 197 | // im2.save(&Path::new(&output.unwrap()))?; 198 | 199 | // Ok(()) 200 | 201 | // }, 202 | DataType::Text => { 203 | // TODO Support hidden image / hiddenfile 204 | print!("{}",stego.decode_text()); 205 | 206 | Ok(()) 207 | } 208 | } 209 | 210 | 211 | } 212 | 213 | } 214 | } 215 | 216 | fn print_header() { 217 | println!(r" 218 | _ 219 | ___| |_ ___ __ _ ___ 220 | / __| __/ _ \/ _` |/ _ \ 221 | \__ \ || __/ (_| | (_) | 222 | |___/\__\___|\__, |\___/ 223 | |___/ 224 | a steganographic swiss army knife 225 | ========================= 226 | Created by: Avery Wagar 227 | ") 228 | } 229 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | //! Stego library 2 | //! A steganography swiss army knife 3 | 4 | use image::{GenericImageView, RgbaImage, DynamicImage, Rgba, Pixel}; 5 | 6 | const MASK_ONE_VALUES: &[u8] = &[1,2,4,8,16,32,64,128]; 7 | const MASK_ZERO_VALUES: &[u8] = &[254,253,251,247,239,223,191,127]; 8 | 9 | pub struct LSBStego { 10 | /// Image loaded into Stego 11 | image: RgbaImage, 12 | /// Hieght of loaded image 13 | height: u32, 14 | /// Width of loaded image 15 | width: u32, 16 | 17 | /// Number of channels in loaded image 18 | channels: usize, 19 | 20 | /// Current width position 21 | current_width: u32, 22 | /// Current height position 23 | current_height: u32, 24 | /// Current channel position 25 | current_channel: usize, 26 | 27 | /// Current index in the MASK_ONE_VALUES 28 | mask_one: usize, 29 | /// Current index in the MASK_ZERO_VALUES 30 | mask_zero: usize, 31 | 32 | } 33 | 34 | impl LSBStego { 35 | 36 | /// Create a new LSBStego instance by taking in a DynamicImage 37 | pub fn new(im: DynamicImage) -> Self { 38 | let (width, height) = im.dimensions(); 39 | 40 | 41 | LSBStego { 42 | image: im.to_rgba(), 43 | width, 44 | height, 45 | channels: as Pixel>::channel_count() as usize, 46 | current_height: 0, 47 | current_width: 0, 48 | current_channel: 0, 49 | mask_one: 0, 50 | mask_zero: 0 51 | } 52 | } 53 | 54 | /// Create a new LSBStego instance by taking in a DynamicImage 55 | pub fn from_rgba(im: RgbaImage) -> Self { 56 | let (width, height) = im.dimensions(); 57 | 58 | 59 | LSBStego { 60 | image: im, 61 | width, 62 | height, 63 | channels: as Pixel>::channel_count() as usize, 64 | current_height: 0, 65 | current_width: 0, 66 | current_channel: 0, 67 | mask_one: 0, 68 | mask_zero: 0 69 | } 70 | } 71 | 72 | // /// Returns the size of the loaded image 73 | // fn get_size(&self) -> u32 { 74 | // self.height * self.width 75 | // } 76 | 77 | /// Returns the mask value of the current maskONE index 78 | pub fn get_mask_one(&self) -> usize { 79 | MASK_ONE_VALUES[self.mask_one as usize] as usize 80 | } 81 | 82 | /// Returns the mask value of the current maskZERO index 83 | pub fn get_mask_zero(&self) -> usize { 84 | MASK_ZERO_VALUES[self.mask_zero as usize] as usize 85 | } 86 | 87 | /// Put a string of binary_values into `self.image` 88 | pub fn put_binary_value(&mut self, bits: String) { 89 | for c in bits.chars() { 90 | // Get pixel value 91 | let val = self.image.get_pixel_mut(self.current_width, self.current_height); 92 | 93 | if c == '1' { 94 | val[self.current_channel] = val[self.current_channel] | MASK_ONE_VALUES[self.mask_one as usize]; // Or with maskONE 95 | } 96 | else { 97 | val[self.current_channel] = val[self.current_channel] & MASK_ZERO_VALUES[self.mask_zero as usize]; // And with maskZERO 98 | } 99 | 100 | *val = *val; 101 | 102 | self.next_slot(); 103 | } 104 | 105 | 106 | } 107 | 108 | /// move to the next slot where information can me mutated 109 | pub fn next_slot(&mut self) { 110 | if self.current_channel == self.channels - 1 { 111 | self.current_channel = 0; 112 | 113 | if self.current_width == self.width - 1 { 114 | self.current_width = 0; 115 | 116 | if self.current_height == self.height - 1 { 117 | self.current_height = 0; 118 | 119 | if MASK_ONE_VALUES[self.mask_one as usize] == 128 { 120 | panic!("No available slots remaining (image filled)"); 121 | } 122 | else { 123 | self.mask_one += 1; 124 | self.mask_zero += 1; 125 | } 126 | } 127 | else { 128 | self.current_height += 1; 129 | } 130 | } 131 | else { 132 | self.current_width += 1; 133 | } 134 | } 135 | else { 136 | self.current_channel += 1; 137 | } 138 | } 139 | 140 | /// Read a single bit from the image 141 | fn read_bit(&mut self) -> char { 142 | let val = self.image.get_pixel(self.current_width, self.current_height)[self.current_channel]; 143 | let val = val & MASK_ONE_VALUES[self.mask_one]; 144 | self.next_slot(); 145 | 146 | if val > 0 { '1' } else { '0' } 147 | 148 | } 149 | 150 | /// Read a byte of the image 151 | fn read_byte(&mut self) -> String { 152 | self.read_bits(8) 153 | } 154 | 155 | /// Read n bits from an image 156 | fn read_bits(&mut self, n: u32) -> String { 157 | let mut bits = String::with_capacity(n as usize); 158 | 159 | for _ in 0..n { 160 | bits.push(self.read_bit()) 161 | } 162 | 163 | bits 164 | } 165 | 166 | /// Returns a binary string in byte size of a given integer 167 | fn byte_value(&self, val: usize) -> String { 168 | self.binary_value(val, 8) 169 | } 170 | 171 | /// Returns the binary of a given integer in the length of `bitsize` 172 | fn binary_value(&self, val: usize, bitsize: usize) -> String { 173 | let mut binval = String::with_capacity(bitsize); 174 | binval.push_str(&format!("{:b}", val)); 175 | 176 | if binval.len() > bitsize { 177 | panic!("binary value larger than the expected size"); 178 | } 179 | 180 | while binval.len() < bitsize { 181 | binval.insert(0, '0'); 182 | } 183 | binval 184 | 185 | } 186 | 187 | /// Encodes a text message into an image 188 | pub fn encode_text(&mut self, txt: String) -> RgbaImage { 189 | // Length coded on 2 bytes 190 | let binl = self.binary_value(txt.len(), 16); 191 | self.put_binary_value(binl); 192 | for c in txt.chars() { 193 | let byte_value = self.byte_value(c as usize); 194 | self.put_binary_value(byte_value) 195 | } 196 | 197 | // Return the new image 198 | self.image.clone() 199 | } 200 | 201 | /// Decodes a hidden message from an image 202 | pub fn decode_text(&mut self) -> String { 203 | let size = self.read_bits(16); 204 | let l = u32::from_str_radix(&size, 2).unwrap(); 205 | 206 | let mut txt = String::new(); 207 | 208 | for _ in 0..l { 209 | let tmp = self.read_byte(); 210 | txt.push(u32::from_str_radix(&tmp,2).unwrap() as u8 as char); 211 | } 212 | 213 | txt 214 | } 215 | 216 | /// Encodes an image into another image 217 | pub fn encode_image(&mut self, im: DynamicImage) -> RgbaImage { 218 | let im = im.to_bgra(); 219 | let (width, height) = im.dimensions(); 220 | 221 | let channels = as Pixel>::channel_count() as u32; 222 | 223 | if self.width * self.height * (self.channels as u32) < width * height * channels { 224 | panic!("Carrier image not big enough to hold hidden image"); 225 | } 226 | 227 | let binw = self.binary_value(width as usize, 16); 228 | let binh = self.binary_value(height as usize, 16); 229 | 230 | self.put_binary_value(binw); 231 | self.put_binary_value(binh); 232 | 233 | for h in 0..height{ 234 | for w in 0..width { 235 | for chan in 0..channels { 236 | let val = im.get_pixel(w, h); 237 | self.put_binary_value(self.byte_value(val[chan as usize] as usize)); 238 | println!("Chan: {}/{}, Val: {}", chan, channels, val[chan as usize]); 239 | } 240 | 241 | } 242 | } 243 | 244 | self.image.clone() 245 | } 246 | 247 | /// Decodes a hidden image from another image 248 | pub fn decode_image(&mut self) -> RgbaImage { 249 | let channels = as Pixel>::channel_count() as u32; 250 | 251 | let width = u32::from_str_radix(&self.read_bits(16), 2).unwrap(); 252 | let height = u32::from_str_radix(&self.read_bits(16), 2).unwrap(); 253 | 254 | let mut unhideimg = image::RgbaImage::new(width, height); 255 | 256 | for h in 0..height { 257 | for w in 0..width { 258 | for chan in 0..channels { 259 | let val = unhideimg.get_pixel_mut(w,h); 260 | // let color = match chan { 261 | // 0 => 0, // Red 262 | // 1 => 1, // Green 263 | // 2 => 2, // Blue 264 | // 3 => 3, // Alpha 265 | // _ => continue 266 | 267 | // }; 268 | 269 | val[chan as usize] = u8::from_str_radix(&self.read_byte(), 2).unwrap(); 270 | println!("Chan: {}/{}, Val: {}", chan, channels, val[chan as usize]); 271 | } 272 | } 273 | } 274 | 275 | unhideimg 276 | } 277 | 278 | /// Encodes a binary file into the image 279 | pub fn encode_binary(&mut self, data: Vec) -> RgbaImage { 280 | let length = data.len(); 281 | 282 | if self.width*self.height*(self.channels as u32) < length as u32 + 64 { 283 | panic!("Carrier image not big enough to hold hidden file"); 284 | } 285 | 286 | self.put_binary_value(self.binary_value(length, 64)); 287 | 288 | for byte in data { 289 | self.put_binary_value(self.byte_value(byte as usize)); 290 | } 291 | 292 | self.image.clone() 293 | } 294 | 295 | /// Encodes a binary file into the image 296 | pub fn decode_binary(&mut self) -> Vec { 297 | let length = usize::from_str_radix(&self.read_bits(64), 2).unwrap(); 298 | let mut output: Vec = Vec::with_capacity(length); 299 | 300 | if self.width*self.height*(self.channels as u32) < length as u32 + 64 { 301 | panic!("Carrier image not big enough to hold hidden file"); 302 | } 303 | 304 | for _ in 0..length{ 305 | output.push(u8::from_str_radix(&self.read_byte(),2).unwrap()); 306 | } 307 | 308 | output 309 | 310 | } 311 | } 312 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "adler32" 5 | version = "1.0.3" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | 8 | [[package]] 9 | name = "aho-corasick" 10 | version = "0.7.3" 11 | source = "registry+https://github.com/rust-lang/crates.io-index" 12 | dependencies = [ 13 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 14 | ] 15 | 16 | [[package]] 17 | name = "ansi_term" 18 | version = "0.11.0" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | dependencies = [ 21 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 22 | ] 23 | 24 | [[package]] 25 | name = "arrayvec" 26 | version = "0.4.10" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | dependencies = [ 29 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 30 | ] 31 | 32 | [[package]] 33 | name = "atty" 34 | version = "0.2.11" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | dependencies = [ 37 | "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 38 | "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 39 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 40 | ] 41 | 42 | [[package]] 43 | name = "autocfg" 44 | version = "0.1.4" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | 47 | [[package]] 48 | name = "bitflags" 49 | version = "1.0.4" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | 52 | [[package]] 53 | name = "byteorder" 54 | version = "1.3.1" 55 | source = "registry+https://github.com/rust-lang/crates.io-index" 56 | 57 | [[package]] 58 | name = "cfg-if" 59 | version = "0.1.9" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | 62 | [[package]] 63 | name = "chrono" 64 | version = "0.4.6" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | dependencies = [ 67 | "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", 68 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 69 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 70 | ] 71 | 72 | [[package]] 73 | name = "clap" 74 | version = "2.33.0" 75 | source = "registry+https://github.com/rust-lang/crates.io-index" 76 | dependencies = [ 77 | "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 78 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 79 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 80 | "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 81 | "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 82 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 83 | "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 84 | ] 85 | 86 | [[package]] 87 | name = "color_quant" 88 | version = "1.0.1" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | 91 | [[package]] 92 | name = "crossbeam-deque" 93 | version = "0.2.0" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | dependencies = [ 96 | "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 97 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 98 | ] 99 | 100 | [[package]] 101 | name = "crossbeam-epoch" 102 | version = "0.3.1" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | dependencies = [ 105 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 106 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 107 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 108 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 109 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 110 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 111 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 112 | ] 113 | 114 | [[package]] 115 | name = "crossbeam-utils" 116 | version = "0.2.2" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | dependencies = [ 119 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 120 | ] 121 | 122 | [[package]] 123 | name = "deflate" 124 | version = "0.7.19" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | dependencies = [ 127 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 128 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 129 | ] 130 | 131 | [[package]] 132 | name = "either" 133 | version = "1.5.2" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | 136 | [[package]] 137 | name = "env_logger" 138 | version = "0.6.1" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | dependencies = [ 141 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 142 | "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 143 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 144 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 145 | "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 146 | ] 147 | 148 | [[package]] 149 | name = "gif" 150 | version = "0.10.2" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | dependencies = [ 153 | "color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 154 | "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 155 | ] 156 | 157 | [[package]] 158 | name = "heck" 159 | version = "0.3.1" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | dependencies = [ 162 | "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 163 | ] 164 | 165 | [[package]] 166 | name = "humantime" 167 | version = "1.2.0" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | dependencies = [ 170 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 171 | ] 172 | 173 | [[package]] 174 | name = "image" 175 | version = "0.21.1" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | dependencies = [ 178 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 179 | "gif 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", 180 | "jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 181 | "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 182 | "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", 183 | "num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 184 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 185 | "png 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", 186 | "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 187 | "tiff 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 188 | ] 189 | 190 | [[package]] 191 | name = "inflate" 192 | version = "0.4.5" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | dependencies = [ 195 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 196 | ] 197 | 198 | [[package]] 199 | name = "jpeg-decoder" 200 | version = "0.1.15" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | dependencies = [ 203 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 204 | "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 205 | ] 206 | 207 | [[package]] 208 | name = "lazy_static" 209 | version = "1.3.0" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | 212 | [[package]] 213 | name = "libc" 214 | version = "0.2.58" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | 217 | [[package]] 218 | name = "log" 219 | version = "0.4.6" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | dependencies = [ 222 | "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 223 | ] 224 | 225 | [[package]] 226 | name = "lzw" 227 | version = "0.10.0" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | 230 | [[package]] 231 | name = "memchr" 232 | version = "2.2.0" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | 235 | [[package]] 236 | name = "memoffset" 237 | version = "0.2.1" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | 240 | [[package]] 241 | name = "nodrop" 242 | version = "0.1.13" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | 245 | [[package]] 246 | name = "num-derive" 247 | version = "0.2.5" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | dependencies = [ 250 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 251 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 252 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 253 | ] 254 | 255 | [[package]] 256 | name = "num-integer" 257 | version = "0.1.41" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | dependencies = [ 260 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 261 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 262 | ] 263 | 264 | [[package]] 265 | name = "num-iter" 266 | version = "0.1.39" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | dependencies = [ 269 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 270 | "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", 271 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 272 | ] 273 | 274 | [[package]] 275 | name = "num-rational" 276 | version = "0.2.1" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | dependencies = [ 279 | "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", 280 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 281 | ] 282 | 283 | [[package]] 284 | name = "num-traits" 285 | version = "0.2.8" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | dependencies = [ 288 | "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 289 | ] 290 | 291 | [[package]] 292 | name = "num_cpus" 293 | version = "1.10.0" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | dependencies = [ 296 | "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 297 | ] 298 | 299 | [[package]] 300 | name = "numtoa" 301 | version = "0.1.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | 304 | [[package]] 305 | name = "png" 306 | version = "0.14.1" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | dependencies = [ 309 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 310 | "deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)", 311 | "inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", 312 | "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", 313 | ] 314 | 315 | [[package]] 316 | name = "pretty_env_logger" 317 | version = "0.3.0" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | dependencies = [ 320 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 321 | "env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 322 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 323 | ] 324 | 325 | [[package]] 326 | name = "proc-macro2" 327 | version = "0.4.30" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | dependencies = [ 330 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 331 | ] 332 | 333 | [[package]] 334 | name = "quick-error" 335 | version = "1.2.2" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | 338 | [[package]] 339 | name = "quote" 340 | version = "0.6.12" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | dependencies = [ 343 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 344 | ] 345 | 346 | [[package]] 347 | name = "rayon" 348 | version = "1.0.3" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | dependencies = [ 351 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 352 | "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 353 | "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 354 | ] 355 | 356 | [[package]] 357 | name = "rayon-core" 358 | version = "1.4.1" 359 | source = "registry+https://github.com/rust-lang/crates.io-index" 360 | dependencies = [ 361 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 362 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 363 | "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 364 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 365 | ] 366 | 367 | [[package]] 368 | name = "redox_syscall" 369 | version = "0.1.54" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | 372 | [[package]] 373 | name = "redox_termios" 374 | version = "0.1.1" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | dependencies = [ 377 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 378 | ] 379 | 380 | [[package]] 381 | name = "regex" 382 | version = "1.1.6" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | dependencies = [ 385 | "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 386 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 387 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 388 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 389 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 390 | ] 391 | 392 | [[package]] 393 | name = "regex-syntax" 394 | version = "0.6.6" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | dependencies = [ 397 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 398 | ] 399 | 400 | [[package]] 401 | name = "scoped_threadpool" 402 | version = "0.1.9" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | 405 | [[package]] 406 | name = "scopeguard" 407 | version = "0.3.3" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | 410 | [[package]] 411 | name = "stego" 412 | version = "0.1.4" 413 | dependencies = [ 414 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 415 | "image 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", 416 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 417 | "pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 418 | "structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", 419 | ] 420 | 421 | [[package]] 422 | name = "strsim" 423 | version = "0.8.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | 426 | [[package]] 427 | name = "structopt" 428 | version = "0.2.17" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | dependencies = [ 431 | "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", 432 | "structopt-derive 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)", 433 | ] 434 | 435 | [[package]] 436 | name = "structopt-derive" 437 | version = "0.2.17" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | dependencies = [ 440 | "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 441 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 442 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 443 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 444 | ] 445 | 446 | [[package]] 447 | name = "syn" 448 | version = "0.15.34" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | dependencies = [ 451 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 452 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 453 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 454 | ] 455 | 456 | [[package]] 457 | name = "termcolor" 458 | version = "1.0.5" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | dependencies = [ 461 | "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 462 | ] 463 | 464 | [[package]] 465 | name = "termion" 466 | version = "1.5.2" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | dependencies = [ 469 | "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 470 | "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 471 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 472 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 473 | ] 474 | 475 | [[package]] 476 | name = "textwrap" 477 | version = "0.11.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | dependencies = [ 480 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 481 | ] 482 | 483 | [[package]] 484 | name = "thread_local" 485 | version = "0.3.6" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | dependencies = [ 488 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 489 | ] 490 | 491 | [[package]] 492 | name = "tiff" 493 | version = "0.2.2" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | dependencies = [ 496 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 497 | "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 498 | "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", 499 | "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 500 | ] 501 | 502 | [[package]] 503 | name = "time" 504 | version = "0.1.42" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | dependencies = [ 507 | "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", 508 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 509 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 510 | ] 511 | 512 | [[package]] 513 | name = "ucd-util" 514 | version = "0.1.3" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | 517 | [[package]] 518 | name = "unicode-segmentation" 519 | version = "1.3.0" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | 522 | [[package]] 523 | name = "unicode-width" 524 | version = "0.1.5" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | 527 | [[package]] 528 | name = "unicode-xid" 529 | version = "0.1.0" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | 532 | [[package]] 533 | name = "utf8-ranges" 534 | version = "1.0.2" 535 | source = "registry+https://github.com/rust-lang/crates.io-index" 536 | 537 | [[package]] 538 | name = "vec_map" 539 | version = "0.8.1" 540 | source = "registry+https://github.com/rust-lang/crates.io-index" 541 | 542 | [[package]] 543 | name = "winapi" 544 | version = "0.3.7" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | dependencies = [ 547 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 548 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 549 | ] 550 | 551 | [[package]] 552 | name = "winapi-i686-pc-windows-gnu" 553 | version = "0.4.0" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | 556 | [[package]] 557 | name = "winapi-util" 558 | version = "0.1.2" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | dependencies = [ 561 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 562 | ] 563 | 564 | [[package]] 565 | name = "winapi-x86_64-pc-windows-gnu" 566 | version = "0.4.0" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | 569 | [[package]] 570 | name = "wincolor" 571 | version = "1.0.1" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | dependencies = [ 574 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 575 | "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 576 | ] 577 | 578 | [metadata] 579 | "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" 580 | "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" 581 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 582 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 583 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 584 | "checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" 585 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 586 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 587 | "checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" 588 | "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" 589 | "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 590 | "checksum color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" 591 | "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" 592 | "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" 593 | "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" 594 | "checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" 595 | "checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" 596 | "checksum env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b61fa891024a945da30a9581546e8cfaf5602c7b3f4c137a2805cf388f92075a" 597 | "checksum gif 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "86c2f2b597d6e05c86ee5947b2223bda468fe8dad3e88e2a6520869322aaf568" 598 | "checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 599 | "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" 600 | "checksum image 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "293e54ce142a936a39da748ba8178ae6aa1914b82d846a4278f11590c89bf116" 601 | "checksum inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" 602 | "checksum jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c8b7d43206b34b3f94ea9445174bda196e772049b9bddbc620c9d29b2d20110d" 603 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 604 | "checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" 605 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 606 | "checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" 607 | "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" 608 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" 609 | "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" 610 | "checksum num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" 611 | "checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" 612 | "checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e" 613 | "checksum num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e96f040177bb3da242b5b1ecf3f54b5d5af3efbbfb18608977a5d2767b22f10" 614 | "checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" 615 | "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" 616 | "checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" 617 | "checksum png 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "63daf481fdd0defa2d1d2be15c674fbfa1b0fd71882c303a91f9a79b3252c359" 618 | "checksum pretty_env_logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df8b3f4e0475def7d9c2e5de8e5a1306949849761e107b360d03e98eafaffd61" 619 | "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 620 | "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 621 | "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" 622 | "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" 623 | "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" 624 | "checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" 625 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 626 | "checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58" 627 | "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" 628 | "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" 629 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 630 | "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 631 | "checksum structopt 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c767a8971f53d7324583085deee2e230903be09e52fb27df9af94c5cb2b43c31" 632 | "checksum structopt-derive 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c57a30c87454ced2186f62f940e981746e8cbbe026d52090c8c4352b636f8235" 633 | "checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe" 634 | "checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" 635 | "checksum termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dde0593aeb8d47accea5392b39350015b5eccb12c0d98044d856983d89548dea" 636 | "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 637 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" 638 | "checksum tiff 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4834f28a0330cb9f3f2c87d2649dca723cb33802e2bdcf18da32759fbec7ce" 639 | "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 640 | "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" 641 | "checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" 642 | "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" 643 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 644 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 645 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 646 | "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" 647 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 648 | "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" 649 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 650 | "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" 651 | -------------------------------------------------------------------------------- /tests/img/beemoviescript: -------------------------------------------------------------------------------- 1 | According to all known laws 2 | of aviation, 3 | 4 | 5 | there is no way a bee 6 | should be able to fly. 7 | 8 | 9 | Its wings are too small to get 10 | its fat little body off the ground. 11 | 12 | 13 | The bee, of course, flies anyway 14 | 15 | 16 | because bees don't care 17 | what humans think is impossible. 18 | 19 | 20 | Yellow, black. Yellow, black. 21 | Yellow, black. Yellow, black. 22 | 23 | 24 | Ooh, black and yellow! 25 | Let's shake it up a little. 26 | 27 | 28 | Barry! Breakfast is ready! 29 | 30 | 31 | Ooming! 32 | 33 | 34 | Hang on a second. 35 | 36 | 37 | Hello? 38 | 39 | 40 | - Barry? 41 | - Adam? 42 | 43 | 44 | - Oan you believe this is happening? 45 | - I can't. I'll pick you up. 46 | 47 | 48 | Looking sharp. 49 | 50 | 51 | Use the stairs. Your father 52 | paid good money for those. 53 | 54 | 55 | Sorry. I'm excited. 56 | 57 | 58 | Here's the graduate. 59 | We're very proud of you, son. 60 | 61 | 62 | A perfect report card, all B's. 63 | 64 | 65 | Very proud. 66 | 67 | 68 | Ma! I got a thing going here. 69 | 70 | 71 | - You got lint on your fuzz. 72 | - Ow! That's me! 73 | 74 | 75 | - Wave to us! We'll be in row 118,000. 76 | - Bye! 77 | 78 | 79 | Barry, I told you, 80 | stop flying in the house! 81 | 82 | 83 | - Hey, Adam. 84 | - Hey, Barry. 85 | 86 | 87 | - Is that fuzz gel? 88 | - A little. Special day, graduation. 89 | 90 | 91 | Never thought I'd make it. 92 | 93 | 94 | Three days grade school, 95 | three days high school. 96 | 97 | 98 | Those were awkward. 99 | 100 | 101 | Three days college. I'm glad I took 102 | a day and hitchhiked around the hive. 103 | 104 | 105 | You did come back different. 106 | 107 | 108 | - Hi, Barry. 109 | - Artie, growing a mustache? Looks good. 110 | 111 | 112 | - Hear about Frankie? 113 | - Yeah. 114 | 115 | 116 | - You going to the funeral? 117 | - No, I'm not going. 118 | 119 | 120 | Everybody knows, 121 | sting someone, you die. 122 | 123 | 124 | Don't waste it on a squirrel. 125 | Such a hothead. 126 | 127 | 128 | I guess he could have 129 | just gotten out of the way. 130 | 131 | 132 | I love this incorporating 133 | an amusement park into our day. 134 | 135 | 136 | That's why we don't need vacations. 137 | 138 | 139 | Boy, quite a bit of pomp... 140 | under the circumstances. 141 | 142 | 143 | - Well, Adam, today we are men. 144 | - We are! 145 | 146 | 147 | - Bee-men. 148 | - Amen! 149 | 150 | 151 | Hallelujah! 152 | 153 | 154 | Students, faculty, distinguished bees, 155 | 156 | 157 | please welcome Dean Buzzwell. 158 | 159 | 160 | Welcome, New Hive Oity 161 | graduating class of... 162 | 163 | 164 | ...9:15. 165 | 166 | 167 | That concludes our ceremonies. 168 | 169 | 170 | And begins your career 171 | at Honex Industries! 172 | 173 | 174 | Will we pick ourjob today? 175 | 176 | 177 | I heard it's just orientation. 178 | 179 | 180 | Heads up! Here we go. 181 | 182 | 183 | Keep your hands and antennas 184 | inside the tram at all times. 185 | 186 | 187 | - Wonder what it'll be like? 188 | - A little scary. 189 | 190 | 191 | Welcome to Honex, 192 | a division of Honesco 193 | 194 | 195 | and a part of the Hexagon Group. 196 | 197 | 198 | This is it! 199 | 200 | 201 | Wow. 202 | 203 | 204 | Wow. 205 | 206 | 207 | We know that you, as a bee, 208 | have worked your whole life 209 | 210 | 211 | to get to the point where you 212 | can work for your whole life. 213 | 214 | 215 | Honey begins when our valiant Pollen 216 | Jocks bring the nectar to the hive. 217 | 218 | 219 | Our top-secret formula 220 | 221 | 222 | is automatically color-corrected, 223 | scent-adjusted and bubble-contoured 224 | 225 | 226 | into this soothing sweet syrup 227 | 228 | 229 | with its distinctive 230 | golden glow you know as... 231 | 232 | 233 | Honey! 234 | 235 | 236 | - That girl was hot. 237 | - She's my cousin! 238 | 239 | 240 | - She is? 241 | - Yes, we're all cousins. 242 | 243 | 244 | - Right. You're right. 245 | - At Honex, we constantly strive 246 | 247 | 248 | to improve every aspect 249 | of bee existence. 250 | 251 | 252 | These bees are stress-testing 253 | a new helmet technology. 254 | 255 | 256 | - What do you think he makes? 257 | - Not enough. 258 | 259 | 260 | Here we have our latest advancement, 261 | the Krelman. 262 | 263 | 264 | - What does that do? 265 | - Oatches that little strand of honey 266 | 267 | 268 | that hangs after you pour it. 269 | Saves us millions. 270 | 271 | 272 | Oan anyone work on the Krelman? 273 | 274 | 275 | Of course. Most bee jobs are 276 | small ones. But bees know 277 | 278 | 279 | that every small job, 280 | if it's done well, means a lot. 281 | 282 | 283 | But choose carefully 284 | 285 | 286 | because you'll stay in the job 287 | you pick for the rest of your life. 288 | 289 | 290 | The same job the rest of your life? 291 | I didn't know that. 292 | 293 | 294 | What's the difference? 295 | 296 | 297 | You'll be happy to know that bees, 298 | as a species, haven't had one day off 299 | 300 | 301 | in 27 million years. 302 | 303 | 304 | So you'll just work us to death? 305 | 306 | 307 | We'll sure try. 308 | 309 | 310 | Wow! That blew my mind! 311 | 312 | 313 | "What's the difference?" 314 | How can you say that? 315 | 316 | 317 | One job forever? 318 | That's an insane choice to have to make. 319 | 320 | 321 | I'm relieved. Now we only have 322 | to make one decision in life. 323 | 324 | 325 | But, Adam, how could they 326 | never have told us that? 327 | 328 | 329 | Why would you question anything? 330 | We're bees. 331 | 332 | 333 | We're the most perfectly 334 | functioning society on Earth. 335 | 336 | 337 | You ever think maybe things 338 | work a little too well here? 339 | 340 | 341 | Like what? Give me one example. 342 | 343 | 344 | I don't know. But you know 345 | what I'm talking about. 346 | 347 | 348 | Please clear the gate. 349 | Royal Nectar Force on approach. 350 | 351 | 352 | Wait a second. Oheck it out. 353 | 354 | 355 | - Hey, those are Pollen Jocks! 356 | - Wow. 357 | 358 | 359 | I've never seen them this close. 360 | 361 | 362 | They know what it's like 363 | outside the hive. 364 | 365 | 366 | Yeah, but some don't come back. 367 | 368 | 369 | - Hey, Jocks! 370 | - Hi, Jocks! 371 | 372 | 373 | You guys did great! 374 | 375 | 376 | You're monsters! 377 | You're sky freaks! I love it! I love it! 378 | 379 | 380 | - I wonder where they were. 381 | - I don't know. 382 | 383 | 384 | Their day's not planned. 385 | 386 | 387 | Outside the hive, flying who knows 388 | where, doing who knows what. 389 | 390 | 391 | You can'tjust decide to be a Pollen 392 | Jock. You have to be bred for that. 393 | 394 | 395 | Right. 396 | 397 | 398 | Look. That's more pollen 399 | than you and I will see in a lifetime. 400 | 401 | 402 | It's just a status symbol. 403 | Bees make too much of it. 404 | 405 | 406 | Perhaps. Unless you're wearing it 407 | and the ladies see you wearing it. 408 | 409 | 410 | Those ladies? 411 | Aren't they our cousins too? 412 | 413 | 414 | Distant. Distant. 415 | 416 | 417 | Look at these two. 418 | 419 | 420 | - Oouple of Hive Harrys. 421 | - Let's have fun with them. 422 | 423 | 424 | It must be dangerous 425 | being a Pollen Jock. 426 | 427 | 428 | Yeah. Once a bear pinned me 429 | against a mushroom! 430 | 431 | 432 | He had a paw on my throat, 433 | and with the other, he was slapping me! 434 | 435 | 436 | - Oh, my! 437 | - I never thought I'd knock him out. 438 | 439 | 440 | What were you doing during this? 441 | 442 | 443 | Trying to alert the authorities. 444 | 445 | 446 | I can autograph that. 447 | 448 | 449 | A little gusty out there today, 450 | wasn't it, comrades? 451 | 452 | 453 | Yeah. Gusty. 454 | 455 | 456 | We're hitting a sunflower patch 457 | six miles from here tomorrow. 458 | 459 | 460 | - Six miles, huh? 461 | - Barry! 462 | 463 | 464 | A puddle jump for us, 465 | but maybe you're not up for it. 466 | 467 | 468 | - Maybe I am. 469 | - You are not! 470 | 471 | 472 | We're going 0900 at J-Gate. 473 | 474 | 475 | What do you think, buzzy-boy? 476 | Are you bee enough? 477 | 478 | 479 | I might be. It all depends 480 | on what 0900 means. 481 | 482 | 483 | Hey, Honex! 484 | 485 | 486 | Dad, you surprised me. 487 | 488 | 489 | You decide what you're interested in? 490 | 491 | 492 | - Well, there's a lot of choices. 493 | - But you only get one. 494 | 495 | 496 | Do you ever get bored 497 | doing the same job every day? 498 | 499 | 500 | Son, let me tell you about stirring. 501 | 502 | 503 | You grab that stick, and you just 504 | move it around, and you stir it around. 505 | 506 | 507 | You get yourself into a rhythm. 508 | It's a beautiful thing. 509 | 510 | 511 | You know, Dad, 512 | the more I think about it, 513 | 514 | 515 | maybe the honey field 516 | just isn't right for me. 517 | 518 | 519 | You were thinking of what, 520 | making balloon animals? 521 | 522 | 523 | That's a bad job 524 | for a guy with a stinger. 525 | 526 | 527 | Janet, your son's not sure 528 | he wants to go into honey! 529 | 530 | 531 | - Barry, you are so funny sometimes. 532 | - I'm not trying to be funny. 533 | 534 | 535 | You're not funny! You're going 536 | into honey. Our son, the stirrer! 537 | 538 | 539 | - You're gonna be a stirrer? 540 | - No one's listening to me! 541 | 542 | 543 | Wait till you see the sticks I have. 544 | 545 | 546 | I could say anything right now. 547 | I'm gonna get an ant tattoo! 548 | 549 | 550 | Let's open some honey and celebrate! 551 | 552 | 553 | Maybe I'll pierce my thorax. 554 | Shave my antennae. 555 | 556 | 557 | Shack up with a grasshopper. Get 558 | a gold tooth and call everybody "dawg"! 559 | 560 | 561 | I'm so proud. 562 | 563 | 564 | - We're starting work today! 565 | - Today's the day. 566 | 567 | 568 | Oome on! All the good jobs 569 | will be gone. 570 | 571 | 572 | Yeah, right. 573 | 574 | 575 | Pollen counting, stunt bee, pouring, 576 | stirrer, front desk, hair removal... 577 | 578 | 579 | - Is it still available? 580 | - Hang on. Two left! 581 | 582 | 583 | One of them's yours! Oongratulations! 584 | Step to the side. 585 | 586 | 587 | - What'd you get? 588 | - Picking crud out. Stellar! 589 | 590 | 591 | Wow! 592 | 593 | 594 | Oouple of newbies? 595 | 596 | 597 | Yes, sir! Our first day! We are ready! 598 | 599 | 600 | Make your choice. 601 | 602 | 603 | - You want to go first? 604 | - No, you go. 605 | 606 | 607 | Oh, my. What's available? 608 | 609 | 610 | Restroom attendant's open, 611 | not for the reason you think. 612 | 613 | 614 | - Any chance of getting the Krelman? 615 | - Sure, you're on. 616 | 617 | 618 | I'm sorry, the Krelman just closed out. 619 | 620 | 621 | Wax monkey's always open. 622 | 623 | 624 | The Krelman opened up again. 625 | 626 | 627 | What happened? 628 | 629 | 630 | A bee died. Makes an opening. See? 631 | He's dead. Another dead one. 632 | 633 | 634 | Deady. Deadified. Two more dead. 635 | 636 | 637 | Dead from the neck up. 638 | Dead from the neck down. That's life! 639 | 640 | 641 | Oh, this is so hard! 642 | 643 | 644 | Heating, cooling, 645 | stunt bee, pourer, stirrer, 646 | 647 | 648 | humming, inspector number seven, 649 | lint coordinator, stripe supervisor, 650 | 651 | 652 | mite wrangler. Barry, what 653 | do you think I should... Barry? 654 | 655 | 656 | Barry! 657 | 658 | 659 | All right, we've got the sunflower patch 660 | in quadrant nine... 661 | 662 | 663 | What happened to you? 664 | Where are you? 665 | 666 | 667 | - I'm going out. 668 | - Out? Out where? 669 | 670 | 671 | - Out there. 672 | - Oh, no! 673 | 674 | 675 | I have to, before I go 676 | to work for the rest of my life. 677 | 678 | 679 | You're gonna die! You're crazy! Hello? 680 | 681 | 682 | Another call coming in. 683 | 684 | 685 | If anyone's feeling brave, 686 | there's a Korean deli on 83rd 687 | 688 | 689 | that gets their roses today. 690 | 691 | 692 | Hey, guys. 693 | 694 | 695 | - Look at that. 696 | - Isn't that the kid we saw yesterday? 697 | 698 | 699 | Hold it, son, flight deck's restricted. 700 | 701 | 702 | It's OK, Lou. We're gonna take him up. 703 | 704 | 705 | Really? Feeling lucky, are you? 706 | 707 | 708 | Sign here, here. Just initial that. 709 | 710 | 711 | - Thank you. 712 | - OK. 713 | 714 | 715 | You got a rain advisory today, 716 | 717 | 718 | and as you all know, 719 | bees cannot fly in rain. 720 | 721 | 722 | So be careful. As always, 723 | watch your brooms, 724 | 725 | 726 | hockey sticks, dogs, 727 | birds, bears and bats. 728 | 729 | 730 | Also, I got a couple of reports 731 | of root beer being poured on us. 732 | 733 | 734 | Murphy's in a home because of it, 735 | babbling like a cicada! 736 | 737 | 738 | - That's awful. 739 | - And a reminder for you rookies, 740 | 741 | 742 | bee law number one, 743 | absolutely no talking to humans! 744 | 745 | 746 | All right, launch positions! 747 | 748 | 749 | Buzz, buzz, buzz, buzz! Buzz, buzz, 750 | buzz, buzz! Buzz, buzz, buzz, buzz! 751 | 752 | 753 | Black and yellow! 754 | 755 | 756 | Hello! 757 | 758 | 759 | You ready for this, hot shot? 760 | 761 | 762 | Yeah. Yeah, bring it on. 763 | 764 | 765 | Wind, check. 766 | 767 | 768 | - Antennae, check. 769 | - Nectar pack, check. 770 | 771 | 772 | - Wings, check. 773 | - Stinger, check. 774 | 775 | 776 | Scared out of my shorts, check. 777 | 778 | 779 | OK, ladies, 780 | 781 | 782 | let's move it out! 783 | 784 | 785 | Pound those petunias, 786 | you striped stem-suckers! 787 | 788 | 789 | All of you, drain those flowers! 790 | 791 | 792 | Wow! I'm out! 793 | 794 | 795 | I can't believe I'm out! 796 | 797 | 798 | So blue. 799 | 800 | 801 | I feel so fast and free! 802 | 803 | 804 | Box kite! 805 | 806 | 807 | Wow! 808 | 809 | 810 | Flowers! 811 | 812 | 813 | This is Blue Leader. 814 | We have roses visual. 815 | 816 | 817 | Bring it around 30 degrees and hold. 818 | 819 | 820 | Roses! 821 | 822 | 823 | 30 degrees, roger. Bringing it around. 824 | 825 | 826 | Stand to the side, kid. 827 | It's got a bit of a kick. 828 | 829 | 830 | That is one nectar collector! 831 | 832 | 833 | - Ever see pollination up close? 834 | - No, sir. 835 | 836 | 837 | I pick up some pollen here, sprinkle it 838 | over here. Maybe a dash over there, 839 | 840 | 841 | a pinch on that one. 842 | See that? It's a little bit of magic. 843 | 844 | 845 | That's amazing. Why do we do that? 846 | 847 | 848 | That's pollen power. More pollen, more 849 | flowers, more nectar, more honey for us. 850 | 851 | 852 | Oool. 853 | 854 | 855 | I'm picking up a lot of bright yellow. 856 | Oould be daisies. Don't we need those? 857 | 858 | 859 | Oopy that visual. 860 | 861 | 862 | Wait. One of these flowers 863 | seems to be on the move. 864 | 865 | 866 | Say again? You're reporting 867 | a moving flower? 868 | 869 | 870 | Affirmative. 871 | 872 | 873 | That was on the line! 874 | 875 | 876 | This is the coolest. What is it? 877 | 878 | 879 | I don't know, but I'm loving this color. 880 | 881 | 882 | It smells good. 883 | Not like a flower, but I like it. 884 | 885 | 886 | Yeah, fuzzy. 887 | 888 | 889 | Ohemical-y. 890 | 891 | 892 | Oareful, guys. It's a little grabby. 893 | 894 | 895 | My sweet lord of bees! 896 | 897 | 898 | Oandy-brain, get off there! 899 | 900 | 901 | Problem! 902 | 903 | 904 | - Guys! 905 | - This could be bad. 906 | 907 | 908 | Affirmative. 909 | 910 | 911 | Very close. 912 | 913 | 914 | Gonna hurt. 915 | 916 | 917 | Mama's little boy. 918 | 919 | 920 | You are way out of position, rookie! 921 | 922 | 923 | Ooming in at you like a missile! 924 | 925 | 926 | Help me! 927 | 928 | 929 | I don't think these are flowers. 930 | 931 | 932 | - Should we tell him? 933 | - I think he knows. 934 | 935 | 936 | What is this?! 937 | 938 | 939 | Match point! 940 | 941 | 942 | You can start packing up, honey, 943 | because you're about to eat it! 944 | 945 | 946 | Yowser! 947 | 948 | 949 | Gross. 950 | 951 | 952 | There's a bee in the car! 953 | 954 | 955 | - Do something! 956 | - I'm driving! 957 | 958 | 959 | - Hi, bee. 960 | - He's back here! 961 | 962 | 963 | He's going to sting me! 964 | 965 | 966 | Nobody move. If you don't move, 967 | he won't sting you. Freeze! 968 | 969 | 970 | He blinked! 971 | 972 | 973 | Spray him, Granny! 974 | 975 | 976 | What are you doing?! 977 | 978 | 979 | Wow... the tension level 980 | out here is unbelievable. 981 | 982 | 983 | I gotta get home. 984 | 985 | 986 | Oan't fly in rain. 987 | 988 | 989 | Oan't fly in rain. 990 | 991 | 992 | Oan't fly in rain. 993 | 994 | 995 | Mayday! Mayday! Bee going down! 996 | 997 | 998 | Ken, could you close 999 | the window please? 1000 | 1001 | 1002 | Ken, could you close 1003 | the window please? 1004 | 1005 | 1006 | Oheck out my new resume. 1007 | I made it into a fold-out brochure. 1008 | 1009 | 1010 | You see? Folds out. 1011 | 1012 | 1013 | Oh, no. More humans. I don't need this. 1014 | 1015 | 1016 | What was that? 1017 | 1018 | 1019 | Maybe this time. This time. This time. 1020 | This time! This time! This... 1021 | 1022 | 1023 | Drapes! 1024 | 1025 | 1026 | That is diabolical. 1027 | 1028 | 1029 | It's fantastic. It's got all my special 1030 | skills, even my top-ten favorite movies. 1031 | 1032 | 1033 | What's number one? Star Wars? 1034 | 1035 | 1036 | Nah, I don't go for that... 1037 | 1038 | 1039 | ...kind of stuff. 1040 | 1041 | 1042 | No wonder we shouldn't talk to them. 1043 | They're out of their minds. 1044 | 1045 | 1046 | When I leave a job interview, they're 1047 | flabbergasted, can't believe what I say. 1048 | 1049 | 1050 | There's the sun. Maybe that's a way out. 1051 | 1052 | 1053 | I don't remember the sun 1054 | having a big 75 on it. 1055 | 1056 | 1057 | I predicted global warming. 1058 | 1059 | 1060 | I could feel it getting hotter. 1061 | At first I thought it was just me. 1062 | 1063 | 1064 | Wait! Stop! Bee! 1065 | 1066 | 1067 | Stand back. These are winter boots. 1068 | 1069 | 1070 | Wait! 1071 | 1072 | 1073 | Don't kill him! 1074 | 1075 | 1076 | You know I'm allergic to them! 1077 | This thing could kill me! 1078 | 1079 | 1080 | Why does his life have 1081 | less value than yours? 1082 | 1083 | 1084 | Why does his life have any less value 1085 | than mine? Is that your statement? 1086 | 1087 | 1088 | I'm just saying all life has value. You 1089 | don't know what he's capable of feeling. 1090 | 1091 | 1092 | My brochure! 1093 | 1094 | 1095 | There you go, little guy. 1096 | 1097 | 1098 | I'm not scared of him. 1099 | It's an allergic thing. 1100 | 1101 | 1102 | Put that on your resume brochure. 1103 | 1104 | 1105 | My whole face could puff up. 1106 | 1107 | 1108 | Make it one of your special skills. 1109 | 1110 | 1111 | Knocking someone out 1112 | is also a special skill. 1113 | 1114 | 1115 | Right. Bye, Vanessa. Thanks. 1116 | 1117 | 1118 | - Vanessa, next week? Yogurt night? 1119 | - Sure, Ken. You know, whatever. 1120 | 1121 | 1122 | - You could put carob chips on there. 1123 | - Bye. 1124 | 1125 | 1126 | - Supposed to be less calories. 1127 | - Bye. 1128 | 1129 | 1130 | I gotta say something. 1131 | 1132 | 1133 | She saved my life. 1134 | I gotta say something. 1135 | 1136 | 1137 | All right, here it goes. 1138 | 1139 | 1140 | Nah. 1141 | 1142 | 1143 | What would I say? 1144 | 1145 | 1146 | I could really get in trouble. 1147 | 1148 | 1149 | It's a bee law. 1150 | You're not supposed to talk to a human. 1151 | 1152 | 1153 | I can't believe I'm doing this. 1154 | 1155 | 1156 | I've got to. 1157 | 1158 | 1159 | Oh, I can't do it. Oome on! 1160 | 1161 | 1162 | No. Yes. No. 1163 | 1164 | 1165 | Do it. I can't. 1166 | 1167 | 1168 | How should I start it? 1169 | "You like jazz?" No, that's no good. 1170 | 1171 | 1172 | Here she comes! Speak, you fool! 1173 | 1174 | 1175 | Hi! 1176 | 1177 | 1178 | I'm sorry. 1179 | 1180 | 1181 | - You're talking. 1182 | - Yes, I know. 1183 | 1184 | 1185 | You're talking! 1186 | 1187 | 1188 | I'm so sorry. 1189 | 1190 | 1191 | No, it's OK. It's fine. 1192 | I know I'm dreaming. 1193 | 1194 | 1195 | But I don't recall going to bed. 1196 | 1197 | 1198 | Well, I'm sure this 1199 | is very disconcerting. 1200 | 1201 | 1202 | This is a bit of a surprise to me. 1203 | I mean, you're a bee! 1204 | 1205 | 1206 | I am. And I'm not supposed 1207 | to be doing this, 1208 | 1209 | 1210 | but they were all trying to kill me. 1211 | 1212 | 1213 | And if it wasn't for you... 1214 | 1215 | 1216 | I had to thank you. 1217 | It's just how I was raised. 1218 | 1219 | 1220 | That was a little weird. 1221 | 1222 | 1223 | - I'm talking with a bee. 1224 | - Yeah. 1225 | 1226 | 1227 | I'm talking to a bee. 1228 | And the bee is talking to me! 1229 | 1230 | 1231 | I just want to say I'm grateful. 1232 | I'll leave now. 1233 | 1234 | 1235 | - Wait! How did you learn to do that? 1236 | - What? 1237 | 1238 | 1239 | The talking thing. 1240 | 1241 | 1242 | Same way you did, I guess. 1243 | "Mama, Dada, honey." You pick it up. 1244 | 1245 | 1246 | - That's very funny. 1247 | - Yeah. 1248 | 1249 | 1250 | Bees are funny. If we didn't laugh, 1251 | we'd cry with what we have to deal with. 1252 | 1253 | 1254 | Anyway... 1255 | 1256 | 1257 | Oan I... 1258 | 1259 | 1260 | ...get you something? 1261 | - Like what? 1262 | 1263 | 1264 | I don't know. I mean... 1265 | I don't know. Ooffee? 1266 | 1267 | 1268 | I don't want to put you out. 1269 | 1270 | 1271 | It's no trouble. It takes two minutes. 1272 | 1273 | 1274 | - It's just coffee. 1275 | - I hate to impose. 1276 | 1277 | 1278 | - Don't be ridiculous! 1279 | - Actually, I would love a cup. 1280 | 1281 | 1282 | Hey, you want rum cake? 1283 | 1284 | 1285 | - I shouldn't. 1286 | - Have some. 1287 | 1288 | 1289 | - No, I can't. 1290 | - Oome on! 1291 | 1292 | 1293 | I'm trying to lose a couple micrograms. 1294 | 1295 | 1296 | - Where? 1297 | - These stripes don't help. 1298 | 1299 | 1300 | You look great! 1301 | 1302 | 1303 | I don't know if you know 1304 | anything about fashion. 1305 | 1306 | 1307 | Are you all right? 1308 | 1309 | 1310 | No. 1311 | 1312 | 1313 | He's making the tie in the cab 1314 | as they're flying up Madison. 1315 | 1316 | 1317 | He finally gets there. 1318 | 1319 | 1320 | He runs up the steps into the church. 1321 | The wedding is on. 1322 | 1323 | 1324 | And he says, "Watermelon? 1325 | I thought you said Guatemalan. 1326 | 1327 | 1328 | Why would I marry a watermelon?" 1329 | 1330 | 1331 | Is that a bee joke? 1332 | 1333 | 1334 | That's the kind of stuff we do. 1335 | 1336 | 1337 | Yeah, different. 1338 | 1339 | 1340 | So, what are you gonna do, Barry? 1341 | 1342 | 1343 | About work? I don't know. 1344 | 1345 | 1346 | I want to do my part for the hive, 1347 | but I can't do it the way they want. 1348 | 1349 | 1350 | I know how you feel. 1351 | 1352 | 1353 | - You do? 1354 | - Sure. 1355 | 1356 | 1357 | My parents wanted me to be a lawyer or 1358 | a doctor, but I wanted to be a florist. 1359 | 1360 | 1361 | - Really? 1362 | - My only interest is flowers. 1363 | 1364 | 1365 | Our new queen was just elected 1366 | with that same campaign slogan. 1367 | 1368 | 1369 | Anyway, if you look... 1370 | 1371 | 1372 | There's my hive right there. See it? 1373 | 1374 | 1375 | You're in Sheep Meadow! 1376 | 1377 | 1378 | Yes! I'm right off the Turtle Pond! 1379 | 1380 | 1381 | No way! I know that area. 1382 | I lost a toe ring there once. 1383 | 1384 | 1385 | - Why do girls put rings on their toes? 1386 | - Why not? 1387 | 1388 | 1389 | - It's like putting a hat on your knee. 1390 | - Maybe I'll try that. 1391 | 1392 | 1393 | - You all right, ma'am? 1394 | - Oh, yeah. Fine. 1395 | 1396 | 1397 | Just having two cups of coffee! 1398 | 1399 | 1400 | Anyway, this has been great. 1401 | Thanks for the coffee. 1402 | 1403 | 1404 | Yeah, it's no trouble. 1405 | 1406 | 1407 | Sorry I couldn't finish it. If I did, 1408 | I'd be up the rest of my life. 1409 | 1410 | 1411 | Are you...? 1412 | 1413 | 1414 | Oan I take a piece of this with me? 1415 | 1416 | 1417 | Sure! Here, have a crumb. 1418 | 1419 | 1420 | - Thanks! 1421 | - Yeah. 1422 | 1423 | 1424 | All right. Well, then... 1425 | I guess I'll see you around. 1426 | 1427 | 1428 | Or not. 1429 | 1430 | 1431 | OK, Barry. 1432 | 1433 | 1434 | And thank you 1435 | so much again... for before. 1436 | 1437 | 1438 | Oh, that? That was nothing. 1439 | 1440 | 1441 | Well, not nothing, but... Anyway... 1442 | 1443 | 1444 | This can't possibly work. 1445 | 1446 | 1447 | He's all set to go. 1448 | We may as well try it. 1449 | 1450 | 1451 | OK, Dave, pull the chute. 1452 | 1453 | 1454 | - Sounds amazing. 1455 | - It was amazing! 1456 | 1457 | 1458 | It was the scariest, 1459 | happiest moment of my life. 1460 | 1461 | 1462 | Humans! I can't believe 1463 | you were with humans! 1464 | 1465 | 1466 | Giant, scary humans! 1467 | What were they like? 1468 | 1469 | 1470 | Huge and crazy. They talk crazy. 1471 | 1472 | 1473 | They eat crazy giant things. 1474 | They drive crazy. 1475 | 1476 | 1477 | - Do they try and kill you, like on TV? 1478 | - Some of them. But some of them don't. 1479 | 1480 | 1481 | - How'd you get back? 1482 | - Poodle. 1483 | 1484 | 1485 | You did it, and I'm glad. You saw 1486 | whatever you wanted to see. 1487 | 1488 | 1489 | You had your "experience." Now you 1490 | can pick out yourjob and be normal. 1491 | 1492 | 1493 | - Well... 1494 | - Well? 1495 | 1496 | 1497 | Well, I met someone. 1498 | 1499 | 1500 | You did? Was she Bee-ish? 1501 | 1502 | 1503 | - A wasp?! Your parents will kill you! 1504 | - No, no, no, not a wasp. 1505 | 1506 | 1507 | - Spider? 1508 | - I'm not attracted to spiders. 1509 | 1510 | 1511 | I know it's the hottest thing, 1512 | with the eight legs and all. 1513 | 1514 | 1515 | I can't get by that face. 1516 | 1517 | 1518 | So who is she? 1519 | 1520 | 1521 | She's... human. 1522 | 1523 | 1524 | No, no. That's a bee law. 1525 | You wouldn't break a bee law. 1526 | 1527 | 1528 | - Her name's Vanessa. 1529 | - Oh, boy. 1530 | 1531 | 1532 | She's so nice. And she's a florist! 1533 | 1534 | 1535 | Oh, no! You're dating a human florist! 1536 | 1537 | 1538 | We're not dating. 1539 | 1540 | 1541 | You're flying outside the hive, talking 1542 | to humans that attack our homes 1543 | 1544 | 1545 | with power washers and M-80s! 1546 | One-eighth a stick of dynamite! 1547 | 1548 | 1549 | She saved my life! 1550 | And she understands me. 1551 | 1552 | 1553 | This is over! 1554 | 1555 | 1556 | Eat this. 1557 | 1558 | 1559 | This is not over! What was that? 1560 | 1561 | 1562 | - They call it a crumb. 1563 | - It was so stingin' stripey! 1564 | 1565 | 1566 | And that's not what they eat. 1567 | That's what falls off what they eat! 1568 | 1569 | 1570 | - You know what a Oinnabon is? 1571 | - No. 1572 | 1573 | 1574 | It's bread and cinnamon and frosting. 1575 | They heat it up... 1576 | 1577 | 1578 | Sit down! 1579 | 1580 | 1581 | ...really hot! 1582 | - Listen to me! 1583 | 1584 | 1585 | We are not them! We're us. 1586 | There's us and there's them! 1587 | 1588 | 1589 | Yes, but who can deny 1590 | the heart that is yearning? 1591 | 1592 | 1593 | There's no yearning. 1594 | Stop yearning. Listen to me! 1595 | 1596 | 1597 | You have got to start thinking bee, 1598 | my friend. Thinking bee! 1599 | 1600 | 1601 | - Thinking bee. 1602 | - Thinking bee. 1603 | 1604 | 1605 | Thinking bee! Thinking bee! 1606 | Thinking bee! Thinking bee! 1607 | 1608 | 1609 | There he is. He's in the pool. 1610 | 1611 | 1612 | You know what your problem is, Barry? 1613 | 1614 | 1615 | I gotta start thinking bee? 1616 | 1617 | 1618 | How much longer will this go on? 1619 | 1620 | 1621 | It's been three days! 1622 | Why aren't you working? 1623 | 1624 | 1625 | I've got a lot of big life decisions 1626 | to think about. 1627 | 1628 | 1629 | What life? You have no life! 1630 | You have no job. You're barely a bee! 1631 | 1632 | 1633 | Would it kill you 1634 | to make a little honey? 1635 | 1636 | 1637 | Barry, come out. 1638 | Your father's talking to you. 1639 | 1640 | 1641 | Martin, would you talk to him? 1642 | 1643 | 1644 | Barry, I'm talking to you! 1645 | 1646 | 1647 | You coming? 1648 | 1649 | 1650 | Got everything? 1651 | 1652 | 1653 | All set! 1654 | 1655 | 1656 | Go ahead. I'll catch up. 1657 | 1658 | 1659 | Don't be too long. 1660 | 1661 | 1662 | Watch this! 1663 | 1664 | 1665 | Vanessa! 1666 | 1667 | 1668 | - We're still here. 1669 | - I told you not to yell at him. 1670 | 1671 | 1672 | He doesn't respond to yelling! 1673 | 1674 | 1675 | - Then why yell at me? 1676 | - Because you don't listen! 1677 | 1678 | 1679 | I'm not listening to this. 1680 | 1681 | 1682 | Sorry, I've gotta go. 1683 | 1684 | 1685 | - Where are you going? 1686 | - I'm meeting a friend. 1687 | 1688 | 1689 | A girl? Is this why you can't decide? 1690 | 1691 | 1692 | Bye. 1693 | 1694 | 1695 | I just hope she's Bee-ish. 1696 | 1697 | 1698 | They have a huge parade 1699 | of flowers every year in Pasadena? 1700 | 1701 | 1702 | To be in the Tournament of Roses, 1703 | that's every florist's dream! 1704 | 1705 | 1706 | Up on a float, surrounded 1707 | by flowers, crowds cheering. 1708 | 1709 | 1710 | A tournament. Do the roses 1711 | compete in athletic events? 1712 | 1713 | 1714 | No. All right, I've got one. 1715 | How come you don't fly everywhere? 1716 | 1717 | 1718 | It's exhausting. Why don't you 1719 | run everywhere? It's faster. 1720 | 1721 | 1722 | Yeah, OK, I see, I see. 1723 | All right, your turn. 1724 | 1725 | 1726 | TiVo. You can just freeze live TV? 1727 | That's insane! 1728 | 1729 | 1730 | You don't have that? 1731 | 1732 | 1733 | We have Hivo, but it's a disease. 1734 | It's a horrible, horrible disease. 1735 | 1736 | 1737 | Oh, my. 1738 | 1739 | 1740 | Dumb bees! 1741 | 1742 | 1743 | You must want to sting all those jerks. 1744 | 1745 | 1746 | We try not to sting. 1747 | It's usually fatal for us. 1748 | 1749 | 1750 | So you have to watch your temper. 1751 | 1752 | 1753 | Very carefully. 1754 | You kick a wall, take a walk, 1755 | 1756 | 1757 | write an angry letter and throw it out. 1758 | Work through it like any emotion: 1759 | 1760 | 1761 | Anger, jealousy, lust. 1762 | 1763 | 1764 | Oh, my goodness! Are you OK? 1765 | 1766 | 1767 | Yeah. 1768 | 1769 | 1770 | - What is wrong with you?! 1771 | - It's a bug. 1772 | 1773 | 1774 | He's not bothering anybody. 1775 | Get out of here, you creep! 1776 | 1777 | 1778 | What was that? A Pic 'N' Save circular? 1779 | 1780 | 1781 | Yeah, it was. How did you know? 1782 | 1783 | 1784 | It felt like about 10 pages. 1785 | Seventy-five is pretty much our limit. 1786 | 1787 | 1788 | You've really got that 1789 | down to a science. 1790 | 1791 | 1792 | - I lost a cousin to Italian Vogue. 1793 | - I'll bet. 1794 | 1795 | 1796 | What in the name 1797 | of Mighty Hercules is this? 1798 | 1799 | 1800 | How did this get here? 1801 | Oute Bee, Golden Blossom, 1802 | 1803 | 1804 | Ray Liotta Private Select? 1805 | 1806 | 1807 | - Is he that actor? 1808 | - I never heard of him. 1809 | 1810 | 1811 | - Why is this here? 1812 | - For people. We eat it. 1813 | 1814 | 1815 | You don't have 1816 | enough food of your own? 1817 | 1818 | 1819 | - Well, yes. 1820 | - How do you get it? 1821 | 1822 | 1823 | - Bees make it. 1824 | - I know who makes it! 1825 | 1826 | 1827 | And it's hard to make it! 1828 | 1829 | 1830 | There's heating, cooling, stirring. 1831 | You need a whole Krelman thing! 1832 | 1833 | 1834 | - It's organic. 1835 | - It's our-ganic! 1836 | 1837 | 1838 | It's just honey, Barry. 1839 | 1840 | 1841 | Just what?! 1842 | 1843 | 1844 | Bees don't know about this! 1845 | This is stealing! A lot of stealing! 1846 | 1847 | 1848 | You've taken our homes, schools, 1849 | hospitals! This is all we have! 1850 | 1851 | 1852 | And it's on sale?! 1853 | I'm getting to the bottom of this. 1854 | 1855 | 1856 | I'm getting to the bottom 1857 | of all of this! 1858 | 1859 | 1860 | Hey, Hector. 1861 | 1862 | 1863 | - You almost done? 1864 | - Almost. 1865 | 1866 | 1867 | He is here. I sense it. 1868 | 1869 | 1870 | Well, I guess I'll go home now 1871 | 1872 | 1873 | and just leave this nice honey out, 1874 | with no one around. 1875 | 1876 | 1877 | You're busted, box boy! 1878 | 1879 | 1880 | I knew I heard something. 1881 | So you can talk! 1882 | 1883 | 1884 | I can talk. 1885 | And now you'll start talking! 1886 | 1887 | 1888 | Where you getting the sweet stuff? 1889 | Who's your supplier? 1890 | 1891 | 1892 | I don't understand. 1893 | I thought we were friends. 1894 | 1895 | 1896 | The last thing we want 1897 | to do is upset bees! 1898 | 1899 | 1900 | You're too late! It's ours now! 1901 | 1902 | 1903 | You, sir, have crossed 1904 | the wrong sword! 1905 | 1906 | 1907 | You, sir, will be lunch 1908 | for my iguana, Ignacio! 1909 | 1910 | 1911 | Where is the honey coming from? 1912 | 1913 | 1914 | Tell me where! 1915 | 1916 | 1917 | Honey Farms! It comes from Honey Farms! 1918 | 1919 | 1920 | Orazy person! 1921 | 1922 | 1923 | What horrible thing has happened here? 1924 | 1925 | 1926 | These faces, they never knew 1927 | what hit them. And now 1928 | 1929 | 1930 | they're on the road to nowhere! 1931 | 1932 | 1933 | Just keep still. 1934 | 1935 | 1936 | What? You're not dead? 1937 | 1938 | 1939 | Do I look dead? They will wipe anything 1940 | that moves. Where you headed? 1941 | 1942 | 1943 | To Honey Farms. 1944 | I am onto something huge here. 1945 | 1946 | 1947 | I'm going to Alaska. Moose blood, 1948 | crazy stuff. Blows your head off! 1949 | 1950 | 1951 | I'm going to Tacoma. 1952 | 1953 | 1954 | - And you? 1955 | - He really is dead. 1956 | 1957 | 1958 | All right. 1959 | 1960 | 1961 | Uh-oh! 1962 | 1963 | 1964 | - What is that?! 1965 | - Oh, no! 1966 | 1967 | 1968 | - A wiper! Triple blade! 1969 | - Triple blade? 1970 | 1971 | 1972 | Jump on! It's your only chance, bee! 1973 | 1974 | 1975 | Why does everything have 1976 | to be so doggone clean?! 1977 | 1978 | 1979 | How much do you people need to see?! 1980 | 1981 | 1982 | Open your eyes! 1983 | Stick your head out the window! 1984 | 1985 | 1986 | From NPR News in Washington, 1987 | I'm Oarl Kasell. 1988 | 1989 | 1990 | But don't kill no more bugs! 1991 | 1992 | 1993 | - Bee! 1994 | - Moose blood guy!! 1995 | 1996 | 1997 | - You hear something? 1998 | - Like what? 1999 | 2000 | 2001 | Like tiny screaming. 2002 | 2003 | 2004 | Turn off the radio. 2005 | 2006 | 2007 | Whassup, bee boy? 2008 | 2009 | 2010 | Hey, Blood. 2011 | 2012 | 2013 | Just a row of honey jars, 2014 | as far as the eye could see. 2015 | 2016 | 2017 | Wow! 2018 | 2019 | 2020 | I assume wherever this truck goes 2021 | is where they're getting it. 2022 | 2023 | 2024 | I mean, that honey's ours. 2025 | 2026 | 2027 | - Bees hang tight. 2028 | - We're all jammed in. 2029 | 2030 | 2031 | It's a close community. 2032 | 2033 | 2034 | Not us, man. We on our own. 2035 | Every mosquito on his own. 2036 | 2037 | 2038 | - What if you get in trouble? 2039 | - You a mosquito, you in trouble. 2040 | 2041 | 2042 | Nobody likes us. They just smack. 2043 | See a mosquito, smack, smack! 2044 | 2045 | 2046 | At least you're out in the world. 2047 | You must meet girls. 2048 | 2049 | 2050 | Mosquito girls try to trade up, 2051 | get with a moth, dragonfly. 2052 | 2053 | 2054 | Mosquito girl don't want no mosquito. 2055 | 2056 | 2057 | You got to be kidding me! 2058 | 2059 | 2060 | Mooseblood's about to leave 2061 | the building! So long, bee! 2062 | 2063 | 2064 | - Hey, guys! 2065 | - Mooseblood! 2066 | 2067 | 2068 | I knew I'd catch y'all down here. 2069 | Did you bring your crazy straw? 2070 | 2071 | 2072 | We throw it in jars, slap a label on it, 2073 | and it's pretty much pure profit. 2074 | 2075 | 2076 | What is this place? 2077 | 2078 | 2079 | A bee's got a brain 2080 | the size of a pinhead. 2081 | 2082 | 2083 | They are pinheads! 2084 | 2085 | 2086 | Pinhead. 2087 | 2088 | 2089 | - Oheck out the new smoker. 2090 | - Oh, sweet. That's the one you want. 2091 | 2092 | 2093 | The Thomas 3000! 2094 | 2095 | 2096 | Smoker? 2097 | 2098 | 2099 | Ninety puffs a minute, semi-automatic. 2100 | Twice the nicotine, all the tar. 2101 | 2102 | 2103 | A couple breaths of this 2104 | knocks them right out. 2105 | 2106 | 2107 | They make the honey, 2108 | and we make the money. 2109 | 2110 | 2111 | "They make the honey, 2112 | and we make the money"? 2113 | 2114 | 2115 | Oh, my! 2116 | 2117 | 2118 | What's going on? Are you OK? 2119 | 2120 | 2121 | Yeah. It doesn't last too long. 2122 | 2123 | 2124 | Do you know you're 2125 | in a fake hive with fake walls? 2126 | 2127 | 2128 | Our queen was moved here. 2129 | We had no choice. 2130 | 2131 | 2132 | This is your queen? 2133 | That's a man in women's clothes! 2134 | 2135 | 2136 | That's a drag queen! 2137 | 2138 | 2139 | What is this? 2140 | 2141 | 2142 | Oh, no! 2143 | 2144 | 2145 | There's hundreds of them! 2146 | 2147 | 2148 | Bee honey. 2149 | 2150 | 2151 | Our honey is being brazenly stolen 2152 | on a massive scale! 2153 | 2154 | 2155 | This is worse than anything bears 2156 | have done! I intend to do something. 2157 | 2158 | 2159 | Oh, Barry, stop. 2160 | 2161 | 2162 | Who told you humans are taking 2163 | our honey? That's a rumor. 2164 | 2165 | 2166 | Do these look like rumors? 2167 | 2168 | 2169 | That's a conspiracy theory. 2170 | These are obviously doctored photos. 2171 | 2172 | 2173 | How did you get mixed up in this? 2174 | 2175 | 2176 | He's been talking to humans. 2177 | 2178 | 2179 | - What? 2180 | - Talking to humans?! 2181 | 2182 | 2183 | He has a human girlfriend. 2184 | And they make out! 2185 | 2186 | 2187 | Make out? Barry! 2188 | 2189 | 2190 | We do not. 2191 | 2192 | 2193 | - You wish you could. 2194 | - Whose side are you on? 2195 | 2196 | 2197 | The bees! 2198 | 2199 | 2200 | I dated a cricket once in San Antonio. 2201 | Those crazy legs kept me up all night. 2202 | 2203 | 2204 | Barry, this is what you want 2205 | to do with your life? 2206 | 2207 | 2208 | I want to do it for all our lives. 2209 | Nobody works harder than bees! 2210 | 2211 | 2212 | Dad, I remember you 2213 | coming home so overworked 2214 | 2215 | 2216 | your hands were still stirring. 2217 | You couldn't stop. 2218 | 2219 | 2220 | I remember that. 2221 | 2222 | 2223 | What right do they have to our honey? 2224 | 2225 | 2226 | We live on two cups a year. They put it 2227 | in lip balm for no reason whatsoever! 2228 | 2229 | 2230 | Even if it's true, what can one bee do? 2231 | 2232 | 2233 | Sting them where it really hurts. 2234 | 2235 | 2236 | In the face! The eye! 2237 | 2238 | 2239 | - That would hurt. 2240 | - No. 2241 | 2242 | 2243 | Up the nose? That's a killer. 2244 | 2245 | 2246 | There's only one place you can sting 2247 | the humans, one place where it matters. 2248 | 2249 | 2250 | Hive at Five, the hive's only 2251 | full-hour action news source. 2252 | 2253 | 2254 | No more bee beards! 2255 | 2256 | 2257 | With Bob Bumble at the anchor desk. 2258 | 2259 | 2260 | Weather with Storm Stinger. 2261 | 2262 | 2263 | Sports with Buzz Larvi. 2264 | 2265 | 2266 | And Jeanette Ohung. 2267 | 2268 | 2269 | - Good evening. I'm Bob Bumble. 2270 | - And I'm Jeanette Ohung. 2271 | 2272 | 2273 | A tri-county bee, Barry Benson, 2274 | 2275 | 2276 | intends to sue the human race 2277 | for stealing our honey, 2278 | 2279 | 2280 | packaging it and profiting 2281 | from it illegally! 2282 | 2283 | 2284 | Tomorrow night on Bee Larry King, 2285 | 2286 | 2287 | we'll have three former queens here in 2288 | our studio, discussing their new book, 2289 | 2290 | 2291 | Olassy Ladies, 2292 | out this week on Hexagon. 2293 | 2294 | 2295 | Tonight we're talking to Barry Benson. 2296 | 2297 | 2298 | Did you ever think, "I'm a kid 2299 | from the hive. I can't do this"? 2300 | 2301 | 2302 | Bees have never been afraid 2303 | to change the world. 2304 | 2305 | 2306 | What about Bee Oolumbus? 2307 | Bee Gandhi? Bejesus? 2308 | 2309 | 2310 | Where I'm from, we'd never sue humans. 2311 | 2312 | 2313 | We were thinking 2314 | of stickball or candy stores. 2315 | 2316 | 2317 | How old are you? 2318 | 2319 | 2320 | The bee community 2321 | is supporting you in this case, 2322 | 2323 | 2324 | which will be the trial 2325 | of the bee century. 2326 | 2327 | 2328 | You know, they have a Larry King 2329 | in the human world too. 2330 | 2331 | 2332 | It's a common name. Next week... 2333 | 2334 | 2335 | He looks like you and has a show 2336 | and suspenders and colored dots... 2337 | 2338 | 2339 | Next week... 2340 | 2341 | 2342 | Glasses, quotes on the bottom from the 2343 | guest even though you just heard 'em. 2344 | 2345 | 2346 | Bear Week next week! 2347 | They're scary, hairy and here live. 2348 | 2349 | 2350 | Always leans forward, pointy shoulders, 2351 | squinty eyes, very Jewish. 2352 | 2353 | 2354 | In tennis, you attack 2355 | at the point of weakness! 2356 | 2357 | 2358 | It was my grandmother, Ken. She's 81. 2359 | 2360 | 2361 | Honey, her backhand's a joke! 2362 | I'm not gonna take advantage of that? 2363 | 2364 | 2365 | Quiet, please. 2366 | Actual work going on here. 2367 | 2368 | 2369 | - Is that that same bee? 2370 | - Yes, it is! 2371 | 2372 | 2373 | I'm helping him sue the human race. 2374 | 2375 | 2376 | - Hello. 2377 | - Hello, bee. 2378 | 2379 | 2380 | This is Ken. 2381 | 2382 | 2383 | Yeah, I remember you. Timberland, size 2384 | ten and a half. Vibram sole, I believe. 2385 | 2386 | 2387 | Why does he talk again? 2388 | 2389 | 2390 | Listen, you better go 2391 | 'cause we're really busy working. 2392 | 2393 | 2394 | But it's our yogurt night! 2395 | 2396 | 2397 | Bye-bye. 2398 | 2399 | 2400 | Why is yogurt night so difficult?! 2401 | 2402 | 2403 | You poor thing. 2404 | You two have been at this for hours! 2405 | 2406 | 2407 | Yes, and Adam here 2408 | has been a huge help. 2409 | 2410 | 2411 | - Frosting... 2412 | - How many sugars? 2413 | 2414 | 2415 | Just one. I try not 2416 | to use the competition. 2417 | 2418 | 2419 | So why are you helping me? 2420 | 2421 | 2422 | Bees have good qualities. 2423 | 2424 | 2425 | And it takes my mind off the shop. 2426 | 2427 | 2428 | Instead of flowers, people 2429 | are giving balloon bouquets now. 2430 | 2431 | 2432 | Those are great, if you're three. 2433 | 2434 | 2435 | And artificial flowers. 2436 | 2437 | 2438 | - Oh, those just get me psychotic! 2439 | - Yeah, me too. 2440 | 2441 | 2442 | Bent stingers, pointless pollination. 2443 | 2444 | 2445 | Bees must hate those fake things! 2446 | 2447 | 2448 | Nothing worse 2449 | than a daffodil that's had work done. 2450 | 2451 | 2452 | Maybe this could make up 2453 | for it a little bit. 2454 | 2455 | 2456 | - This lawsuit's a pretty big deal. 2457 | - I guess. 2458 | 2459 | 2460 | You sure you want to go through with it? 2461 | 2462 | 2463 | Am I sure? When I'm done with 2464 | the humans, they won't be able 2465 | 2466 | 2467 | to say, "Honey, I'm home," 2468 | without paying a royalty! 2469 | 2470 | 2471 | It's an incredible scene 2472 | here in downtown Manhattan, 2473 | 2474 | 2475 | where the world anxiously waits, 2476 | because for the first time in history, 2477 | 2478 | 2479 | we will hear for ourselves 2480 | if a honeybee can actually speak. 2481 | 2482 | 2483 | What have we gotten into here, Barry? 2484 | 2485 | 2486 | It's pretty big, isn't it? 2487 | 2488 | 2489 | I can't believe how many humans 2490 | don't work during the day. 2491 | 2492 | 2493 | You think billion-dollar multinational 2494 | food companies have good lawyers? 2495 | 2496 | 2497 | Everybody needs to stay 2498 | behind the barricade. 2499 | 2500 | 2501 | - What's the matter? 2502 | - I don't know, I just got a chill. 2503 | 2504 | 2505 | Well, if it isn't the bee team. 2506 | 2507 | 2508 | You boys work on this? 2509 | 2510 | 2511 | All rise! The Honorable 2512 | Judge Bumbleton presiding. 2513 | 2514 | 2515 | All right. Oase number 4475, 2516 | 2517 | 2518 | Superior Oourt of New York, 2519 | Barry Bee Benson v. the Honey Industry 2520 | 2521 | 2522 | is now in session. 2523 | 2524 | 2525 | Mr. Montgomery, you're representing 2526 | the five food companies collectively? 2527 | 2528 | 2529 | A privilege. 2530 | 2531 | 2532 | Mr. Benson... you're representing 2533 | all the bees of the world? 2534 | 2535 | 2536 | I'm kidding. Yes, Your Honor, 2537 | we're ready to proceed. 2538 | 2539 | 2540 | Mr. Montgomery, 2541 | your opening statement, please. 2542 | 2543 | 2544 | Ladies and gentlemen of the jury, 2545 | 2546 | 2547 | my grandmother was a simple woman. 2548 | 2549 | 2550 | Born on a farm, she believed 2551 | it was man's divine right 2552 | 2553 | 2554 | to benefit from the bounty 2555 | of nature God put before us. 2556 | 2557 | 2558 | If we lived in the topsy-turvy world 2559 | Mr. Benson imagines, 2560 | 2561 | 2562 | just think of what would it mean. 2563 | 2564 | 2565 | I would have to negotiate 2566 | with the silkworm 2567 | 2568 | 2569 | for the elastic in my britches! 2570 | 2571 | 2572 | Talking bee! 2573 | 2574 | 2575 | How do we know this isn't some sort of 2576 | 2577 | 2578 | holographic motion-picture-capture 2579 | Hollywood wizardry? 2580 | 2581 | 2582 | They could be using laser beams! 2583 | 2584 | 2585 | Robotics! Ventriloquism! 2586 | Oloning! For all we know, 2587 | 2588 | 2589 | he could be on steroids! 2590 | 2591 | 2592 | Mr. Benson? 2593 | 2594 | 2595 | Ladies and gentlemen, 2596 | there's no trickery here. 2597 | 2598 | 2599 | I'm just an ordinary bee. 2600 | Honey's pretty important to me. 2601 | 2602 | 2603 | It's important to all bees. 2604 | We invented it! 2605 | 2606 | 2607 | We make it. And we protect it 2608 | with our lives. 2609 | 2610 | 2611 | Unfortunately, there are 2612 | some people in this room 2613 | 2614 | 2615 | who think they can take it from us 2616 | 2617 | 2618 | 'cause we're the little guys! 2619 | I'm hoping that, after this is all over, 2620 | 2621 | 2622 | you'll see how, by taking our honey, 2623 | you not only take everything we have 2624 | 2625 | 2626 | but everything we are! 2627 | 2628 | 2629 | I wish he'd dress like that 2630 | all the time. So nice! 2631 | 2632 | 2633 | Oall your first witness. 2634 | 2635 | 2636 | So, Mr. Klauss Vanderhayden 2637 | of Honey Farms, big company you have. 2638 | 2639 | 2640 | I suppose so. 2641 | 2642 | 2643 | I see you also own 2644 | Honeyburton and Honron! 2645 | 2646 | 2647 | Yes, they provide beekeepers 2648 | for our farms. 2649 | 2650 | 2651 | Beekeeper. I find that 2652 | to be a very disturbing term. 2653 | 2654 | 2655 | I don't imagine you employ 2656 | any bee-free-ers, do you? 2657 | 2658 | 2659 | - No. 2660 | - I couldn't hear you. 2661 | 2662 | 2663 | - No. 2664 | - No. 2665 | 2666 | 2667 | Because you don't free bees. 2668 | You keep bees. Not only that, 2669 | 2670 | 2671 | it seems you thought a bear would be 2672 | an appropriate image for a jar of honey. 2673 | 2674 | 2675 | They're very lovable creatures. 2676 | 2677 | 2678 | Yogi Bear, Fozzie Bear, Build-A-Bear. 2679 | 2680 | 2681 | You mean like this? 2682 | 2683 | 2684 | Bears kill bees! 2685 | 2686 | 2687 | How'd you like his head crashing 2688 | through your living room?! 2689 | 2690 | 2691 | Biting into your couch! 2692 | Spitting out your throw pillows! 2693 | 2694 | 2695 | OK, that's enough. Take him away. 2696 | 2697 | 2698 | So, Mr. Sting, thank you for being here. 2699 | Your name intrigues me. 2700 | 2701 | 2702 | - Where have I heard it before? 2703 | - I was with a band called The Police. 2704 | 2705 | 2706 | But you've never been 2707 | a police officer, have you? 2708 | 2709 | 2710 | No, I haven't. 2711 | 2712 | 2713 | No, you haven't. And so here 2714 | we have yet another example 2715 | 2716 | 2717 | of bee culture casually 2718 | stolen by a human 2719 | 2720 | 2721 | for nothing more than 2722 | a prance-about stage name. 2723 | 2724 | 2725 | Oh, please. 2726 | 2727 | 2728 | Have you ever been stung, Mr. Sting? 2729 | 2730 | 2731 | Because I'm feeling 2732 | a little stung, Sting. 2733 | 2734 | 2735 | Or should I say... Mr. Gordon M. Sumner! 2736 | 2737 | 2738 | That's not his real name?! You idiots! 2739 | 2740 | 2741 | Mr. Liotta, first, 2742 | belated congratulations on 2743 | 2744 | 2745 | your Emmy win for a guest spot 2746 | on ER in 2005. 2747 | 2748 | 2749 | Thank you. Thank you. 2750 | 2751 | 2752 | I see from your resume 2753 | that you're devilishly handsome 2754 | 2755 | 2756 | with a churning inner turmoil 2757 | that's ready to blow. 2758 | 2759 | 2760 | I enjoy what I do. Is that a crime? 2761 | 2762 | 2763 | Not yet it isn't. But is this 2764 | what it's come to for you? 2765 | 2766 | 2767 | Exploiting tiny, helpless bees 2768 | so you don't 2769 | 2770 | 2771 | have to rehearse 2772 | your part and learn your lines, sir? 2773 | 2774 | 2775 | Watch it, Benson! 2776 | I could blow right now! 2777 | 2778 | 2779 | This isn't a goodfella. 2780 | This is a badfella! 2781 | 2782 | 2783 | Why doesn't someone just step on 2784 | this creep, and we can all go home?! 2785 | 2786 | 2787 | - Order in this court! 2788 | - You're all thinking it! 2789 | 2790 | 2791 | Order! Order, I say! 2792 | 2793 | 2794 | - Say it! 2795 | - Mr. Liotta, please sit down! 2796 | 2797 | 2798 | I think it was awfully nice 2799 | of that bear to pitch in like that. 2800 | 2801 | 2802 | I think the jury's on our side. 2803 | 2804 | 2805 | Are we doing everything right, legally? 2806 | 2807 | 2808 | I'm a florist. 2809 | 2810 | 2811 | Right. Well, here's to a great team. 2812 | 2813 | 2814 | To a great team! 2815 | 2816 | 2817 | Well, hello. 2818 | 2819 | 2820 | - Ken! 2821 | - Hello. 2822 | 2823 | 2824 | I didn't think you were coming. 2825 | 2826 | 2827 | No, I was just late. 2828 | I tried to call, but... the battery. 2829 | 2830 | 2831 | I didn't want all this to go to waste, 2832 | so I called Barry. Luckily, he was free. 2833 | 2834 | 2835 | Oh, that was lucky. 2836 | 2837 | 2838 | There's a little left. 2839 | I could heat it up. 2840 | 2841 | 2842 | Yeah, heat it up, sure, whatever. 2843 | 2844 | 2845 | So I hear you're quite a tennis player. 2846 | 2847 | 2848 | I'm not much for the game myself. 2849 | The ball's a little grabby. 2850 | 2851 | 2852 | That's where I usually sit. 2853 | Right... there. 2854 | 2855 | 2856 | Ken, Barry was looking at your resume, 2857 | 2858 | 2859 | and he agreed with me that eating with 2860 | chopsticks isn't really a special skill. 2861 | 2862 | 2863 | You think I don't see what you're doing? 2864 | 2865 | 2866 | I know how hard it is to find 2867 | the rightjob. We have that in common. 2868 | 2869 | 2870 | Do we? 2871 | 2872 | 2873 | Bees have 100 percent employment, 2874 | but we do jobs like taking the crud out. 2875 | 2876 | 2877 | That's just what 2878 | I was thinking about doing. 2879 | 2880 | 2881 | Ken, I let Barry borrow your razor 2882 | for his fuzz. I hope that was all right. 2883 | 2884 | 2885 | I'm going to drain the old stinger. 2886 | 2887 | 2888 | Yeah, you do that. 2889 | 2890 | 2891 | Look at that. 2892 | 2893 | 2894 | You know, I've just about had it 2895 | 2896 | 2897 | with your little mind games. 2898 | 2899 | 2900 | - What's that? 2901 | - Italian Vogue. 2902 | 2903 | 2904 | Mamma mia, that's a lot of pages. 2905 | 2906 | 2907 | A lot of ads. 2908 | 2909 | 2910 | Remember what Van said, why is 2911 | your life more valuable than mine? 2912 | 2913 | 2914 | Funny, I just can't seem to recall that! 2915 | 2916 | 2917 | I think something stinks in here! 2918 | 2919 | 2920 | I love the smell of flowers. 2921 | 2922 | 2923 | How do you like the smell of flames?! 2924 | 2925 | 2926 | Not as much. 2927 | 2928 | 2929 | Water bug! Not taking sides! 2930 | 2931 | 2932 | Ken, I'm wearing a Ohapstick hat! 2933 | This is pathetic! 2934 | 2935 | 2936 | I've got issues! 2937 | 2938 | 2939 | Well, well, well, a royal flush! 2940 | 2941 | 2942 | - You're bluffing. 2943 | - Am I? 2944 | 2945 | 2946 | Surf's up, dude! 2947 | 2948 | 2949 | Poo water! 2950 | 2951 | 2952 | That bowl is gnarly. 2953 | 2954 | 2955 | Except for those dirty yellow rings! 2956 | 2957 | 2958 | Kenneth! What are you doing?! 2959 | 2960 | 2961 | You know, I don't even like honey! 2962 | I don't eat it! 2963 | 2964 | 2965 | We need to talk! 2966 | 2967 | 2968 | He's just a little bee! 2969 | 2970 | 2971 | And he happens to be 2972 | the nicest bee I've met in a long time! 2973 | 2974 | 2975 | Long time? What are you talking about?! 2976 | Are there other bugs in your life? 2977 | 2978 | 2979 | No, but there are other things bugging 2980 | me in life. And you're one of them! 2981 | 2982 | 2983 | Fine! Talking bees, no yogurt night... 2984 | 2985 | 2986 | My nerves are fried from riding 2987 | on this emotional roller coaster! 2988 | 2989 | 2990 | Goodbye, Ken. 2991 | 2992 | 2993 | And for your information, 2994 | 2995 | 2996 | I prefer sugar-free, artificial 2997 | sweeteners made by man! 2998 | 2999 | 3000 | I'm sorry about all that. 3001 | 3002 | 3003 | I know it's got 3004 | an aftertaste! I like it! 3005 | 3006 | 3007 | I always felt there was some kind 3008 | of barrier between Ken and me. 3009 | 3010 | 3011 | I couldn't overcome it. 3012 | Oh, well. 3013 | 3014 | 3015 | Are you OK for the trial? 3016 | 3017 | 3018 | I believe Mr. Montgomery 3019 | is about out of ideas. 3020 | 3021 | 3022 | We would like to call 3023 | Mr. Barry Benson Bee to the stand. 3024 | 3025 | 3026 | Good idea! You can really see why he's 3027 | considered one of the best lawyers... 3028 | 3029 | 3030 | Yeah. 3031 | 3032 | 3033 | Layton, you've 3034 | gotta weave some magic 3035 | 3036 | 3037 | with this jury, 3038 | or it's gonna be all over. 3039 | 3040 | 3041 | Don't worry. The only thing I have 3042 | to do to turn this jury around 3043 | 3044 | 3045 | is to remind them 3046 | of what they don't like about bees. 3047 | 3048 | 3049 | - You got the tweezers? 3050 | - Are you allergic? 3051 | 3052 | 3053 | Only to losing, son. Only to losing. 3054 | 3055 | 3056 | Mr. Benson Bee, I'll ask you 3057 | what I think we'd all like to know. 3058 | 3059 | 3060 | What exactly is your relationship 3061 | 3062 | 3063 | to that woman? 3064 | 3065 | 3066 | We're friends. 3067 | 3068 | 3069 | - Good friends? 3070 | - Yes. 3071 | 3072 | 3073 | How good? Do you live together? 3074 | 3075 | 3076 | Wait a minute... 3077 | 3078 | 3079 | Are you her little... 3080 | 3081 | 3082 | ...bedbug? 3083 | 3084 | 3085 | I've seen a bee documentary or two. 3086 | From what I understand, 3087 | 3088 | 3089 | doesn't your queen give birth 3090 | to all the bee children? 3091 | 3092 | 3093 | - Yeah, but... 3094 | - So those aren't your real parents! 3095 | 3096 | 3097 | - Oh, Barry... 3098 | - Yes, they are! 3099 | 3100 | 3101 | Hold me back! 3102 | 3103 | 3104 | You're an illegitimate bee, 3105 | aren't you, Benson? 3106 | 3107 | 3108 | He's denouncing bees! 3109 | 3110 | 3111 | Don't y'all date your cousins? 3112 | 3113 | 3114 | - Objection! 3115 | - I'm going to pincushion this guy! 3116 | 3117 | 3118 | Adam, don't! It's what he wants! 3119 | 3120 | 3121 | Oh, I'm hit!! 3122 | 3123 | 3124 | Oh, lordy, I am hit! 3125 | 3126 | 3127 | Order! Order! 3128 | 3129 | 3130 | The venom! The venom 3131 | is coursing through my veins! 3132 | 3133 | 3134 | I have been felled 3135 | by a winged beast of destruction! 3136 | 3137 | 3138 | You see? You can't treat them 3139 | like equals! They're striped savages! 3140 | 3141 | 3142 | Stinging's the only thing 3143 | they know! It's their way! 3144 | 3145 | 3146 | - Adam, stay with me. 3147 | - I can't feel my legs. 3148 | 3149 | 3150 | What angel of mercy 3151 | will come forward to suck the poison 3152 | 3153 | 3154 | from my heaving buttocks? 3155 | 3156 | 3157 | I will have order in this court. Order! 3158 | 3159 | 3160 | Order, please! 3161 | 3162 | 3163 | The case of the honeybees 3164 | versus the human race 3165 | 3166 | 3167 | took a pointed turn against the bees 3168 | 3169 | 3170 | yesterday when one of their legal 3171 | team stung Layton T. Montgomery. 3172 | 3173 | 3174 | - Hey, buddy. 3175 | - Hey. 3176 | 3177 | 3178 | - Is there much pain? 3179 | - Yeah. 3180 | 3181 | 3182 | I... 3183 | 3184 | 3185 | I blew the whole case, didn't I? 3186 | 3187 | 3188 | It doesn't matter. What matters is 3189 | you're alive. You could have died. 3190 | 3191 | 3192 | I'd be better off dead. Look at me. 3193 | 3194 | 3195 | They got it from the cafeteria 3196 | downstairs, in a tuna sandwich. 3197 | 3198 | 3199 | Look, there's 3200 | a little celery still on it. 3201 | 3202 | 3203 | What was it like to sting someone? 3204 | 3205 | 3206 | I can't explain it. It was all... 3207 | 3208 | 3209 | All adrenaline and then... 3210 | and then ecstasy! 3211 | 3212 | 3213 | All right. 3214 | 3215 | 3216 | You think it was all a trap? 3217 | 3218 | 3219 | Of course. I'm sorry. 3220 | I flew us right into this. 3221 | 3222 | 3223 | What were we thinking? Look at us. We're 3224 | just a couple of bugs in this world. 3225 | 3226 | 3227 | What will the humans do to us 3228 | if they win? 3229 | 3230 | 3231 | I don't know. 3232 | 3233 | 3234 | I hear they put the roaches in motels. 3235 | That doesn't sound so bad. 3236 | 3237 | 3238 | Adam, they check in, 3239 | but they don't check out! 3240 | 3241 | 3242 | Oh, my. 3243 | 3244 | 3245 | Oould you get a nurse 3246 | to close that window? 3247 | 3248 | 3249 | - Why? 3250 | - The smoke. 3251 | 3252 | 3253 | Bees don't smoke. 3254 | 3255 | 3256 | Right. Bees don't smoke. 3257 | 3258 | 3259 | Bees don't smoke! 3260 | But some bees are smoking. 3261 | 3262 | 3263 | That's it! That's our case! 3264 | 3265 | 3266 | It is? It's not over? 3267 | 3268 | 3269 | Get dressed. I've gotta go somewhere. 3270 | 3271 | 3272 | Get back to the court and stall. 3273 | Stall any way you can. 3274 | 3275 | 3276 | And assuming you've done step correctly, you're ready for the tub. 3277 | 3278 | 3279 | Mr. Flayman. 3280 | 3281 | 3282 | Yes? Yes, Your Honor! 3283 | 3284 | 3285 | Where is the rest of your team? 3286 | 3287 | 3288 | Well, Your Honor, it's interesting. 3289 | 3290 | 3291 | Bees are trained to fly haphazardly, 3292 | 3293 | 3294 | and as a result, 3295 | we don't make very good time. 3296 | 3297 | 3298 | I actually heard a funny story about... 3299 | 3300 | 3301 | Your Honor, 3302 | haven't these ridiculous bugs 3303 | 3304 | 3305 | taken up enough 3306 | of this court's valuable time? 3307 | 3308 | 3309 | How much longer will we allow 3310 | these absurd shenanigans to go on? 3311 | 3312 | 3313 | They have presented no compelling 3314 | evidence to support their charges 3315 | 3316 | 3317 | against my clients, 3318 | who run legitimate businesses. 3319 | 3320 | 3321 | I move for a complete dismissal 3322 | of this entire case! 3323 | 3324 | 3325 | Mr. Flayman, I'm afraid I'm going 3326 | 3327 | 3328 | to have to consider 3329 | Mr. Montgomery's motion. 3330 | 3331 | 3332 | But you can't! We have a terrific case. 3333 | 3334 | 3335 | Where is your proof? 3336 | Where is the evidence? 3337 | 3338 | 3339 | Show me the smoking gun! 3340 | 3341 | 3342 | Hold it, Your Honor! 3343 | You want a smoking gun? 3344 | 3345 | 3346 | Here is your smoking gun. 3347 | 3348 | 3349 | What is that? 3350 | 3351 | 3352 | It's a bee smoker! 3353 | 3354 | 3355 | What, this? 3356 | This harmless little contraption? 3357 | 3358 | 3359 | This couldn't hurt a fly, 3360 | let alone a bee. 3361 | 3362 | 3363 | Look at what has happened 3364 | 3365 | 3366 | to bees who have never been asked, 3367 | "Smoking or non?" 3368 | 3369 | 3370 | Is this what nature intended for us? 3371 | 3372 | 3373 | To be forcibly addicted 3374 | to smoke machines 3375 | 3376 | 3377 | and man-made wooden slat work camps? 3378 | 3379 | 3380 | Living out our lives as honey slaves 3381 | to the white man? 3382 | 3383 | 3384 | - What are we gonna do? 3385 | - He's playing the species card. 3386 | 3387 | 3388 | Ladies and gentlemen, please, 3389 | free these bees! 3390 | 3391 | 3392 | Free the bees! Free the bees! 3393 | 3394 | 3395 | Free the bees! 3396 | 3397 | 3398 | Free the bees! Free the bees! 3399 | 3400 | 3401 | The court finds in favor of the bees! 3402 | 3403 | 3404 | Vanessa, we won! 3405 | 3406 | 3407 | I knew you could do it! High-five! 3408 | 3409 | 3410 | Sorry. 3411 | 3412 | 3413 | I'm OK! You know what this means? 3414 | 3415 | 3416 | All the honey 3417 | will finally belong to the bees. 3418 | 3419 | 3420 | Now we won't have 3421 | to work so hard all the time. 3422 | 3423 | 3424 | This is an unholy perversion 3425 | of the balance of nature, Benson. 3426 | 3427 | 3428 | You'll regret this. 3429 | 3430 | 3431 | Barry, how much honey is out there? 3432 | 3433 | 3434 | All right. One at a time. 3435 | 3436 | 3437 | Barry, who are you wearing? 3438 | 3439 | 3440 | My sweater is Ralph Lauren, 3441 | and I have no pants. 3442 | 3443 | 3444 | - What if Montgomery's right? 3445 | - What do you mean? 3446 | 3447 | 3448 | We've been living the bee way 3449 | a long time, 27 million years. 3450 | 3451 | 3452 | Oongratulations on your victory. 3453 | What will you demand as a settlement? 3454 | 3455 | 3456 | First, we'll demand a complete shutdown 3457 | of all bee work camps. 3458 | 3459 | 3460 | Then we want back the honey 3461 | that was ours to begin with, 3462 | 3463 | 3464 | every last drop. 3465 | 3466 | 3467 | We demand an end to the glorification 3468 | of the bear as anything more 3469 | 3470 | 3471 | than a filthy, smelly, 3472 | bad-breath stink machine. 3473 | 3474 | 3475 | We're all aware 3476 | of what they do in the woods. 3477 | 3478 | 3479 | Wait for my signal. 3480 | 3481 | 3482 | Take him out. 3483 | 3484 | 3485 | He'll have nauseous 3486 | for a few hours, then he'll be fine. 3487 | 3488 | 3489 | And we will no longer tolerate 3490 | bee-negative nicknames... 3491 | 3492 | 3493 | But it's just a prance-about stage name! 3494 | 3495 | 3496 | ...unnecessary inclusion of honey 3497 | in bogus health products 3498 | 3499 | 3500 | and la-dee-da human 3501 | tea-time snack garnishments. 3502 | 3503 | 3504 | Oan't breathe. 3505 | 3506 | 3507 | Bring it in, boys! 3508 | 3509 | 3510 | Hold it right there! Good. 3511 | 3512 | 3513 | Tap it. 3514 | 3515 | 3516 | Mr. Buzzwell, we just passed three cups, 3517 | and there's gallons more coming! 3518 | 3519 | 3520 | - I think we need to shut down! 3521 | - Shut down? We've never shut down. 3522 | 3523 | 3524 | Shut down honey production! 3525 | 3526 | 3527 | Stop making honey! 3528 | 3529 | 3530 | Turn your key, sir! 3531 | 3532 | 3533 | What do we do now? 3534 | 3535 | 3536 | Oannonball! 3537 | 3538 | 3539 | We're shutting honey production! 3540 | 3541 | 3542 | Mission abort. 3543 | 3544 | 3545 | Aborting pollination and nectar detail. 3546 | Returning to base. 3547 | 3548 | 3549 | Adam, you wouldn't believe 3550 | how much honey was out there. 3551 | 3552 | 3553 | Oh, yeah? 3554 | 3555 | 3556 | What's going on? Where is everybody? 3557 | 3558 | 3559 | - Are they out celebrating? 3560 | - They're home. 3561 | 3562 | 3563 | They don't know what to do. 3564 | Laying out, sleeping in. 3565 | 3566 | 3567 | I heard your Uncle Oarl was on his way 3568 | to San Antonio with a cricket. 3569 | 3570 | 3571 | At least we got our honey back. 3572 | 3573 | 3574 | Sometimes I think, so what if humans 3575 | liked our honey? Who wouldn't? 3576 | 3577 | 3578 | It's the greatest thing in the world! 3579 | I was excited to be part of making it. 3580 | 3581 | 3582 | This was my new desk. This was my 3583 | new job. I wanted to do it really well. 3584 | 3585 | 3586 | And now... 3587 | 3588 | 3589 | Now I can't. 3590 | 3591 | 3592 | I don't understand 3593 | why they're not happy. 3594 | 3595 | 3596 | I thought their lives would be better! 3597 | 3598 | 3599 | They're doing nothing. It's amazing. 3600 | Honey really changes people. 3601 | 3602 | 3603 | You don't have any idea 3604 | what's going on, do you? 3605 | 3606 | 3607 | - What did you want to show me? 3608 | - This. 3609 | 3610 | 3611 | What happened here? 3612 | 3613 | 3614 | That is not the half of it. 3615 | 3616 | 3617 | Oh, no. Oh, my. 3618 | 3619 | 3620 | They're all wilting. 3621 | 3622 | 3623 | Doesn't look very good, does it? 3624 | 3625 | 3626 | No. 3627 | 3628 | 3629 | And whose fault do you think that is? 3630 | 3631 | 3632 | You know, I'm gonna guess bees. 3633 | 3634 | 3635 | Bees? 3636 | 3637 | 3638 | Specifically, me. 3639 | 3640 | 3641 | I didn't think bees not needing to make 3642 | honey would affect all these things. 3643 | 3644 | 3645 | It's notjust flowers. 3646 | Fruits, vegetables, they all need bees. 3647 | 3648 | 3649 | That's our whole SAT test right there. 3650 | 3651 | 3652 | Take away produce, that affects 3653 | the entire animal kingdom. 3654 | 3655 | 3656 | And then, of course... 3657 | 3658 | 3659 | The human species? 3660 | 3661 | 3662 | So if there's no more pollination, 3663 | 3664 | 3665 | it could all just go south here, 3666 | couldn't it? 3667 | 3668 | 3669 | I know this is also partly my fault. 3670 | 3671 | 3672 | How about a suicide pact? 3673 | 3674 | 3675 | How do we do it? 3676 | 3677 | 3678 | - I'll sting you, you step on me. 3679 | - Thatjust kills you twice. 3680 | 3681 | 3682 | Right, right. 3683 | 3684 | 3685 | Listen, Barry... 3686 | sorry, but I gotta get going. 3687 | 3688 | 3689 | I had to open my mouth and talk. 3690 | 3691 | 3692 | Vanessa? 3693 | 3694 | 3695 | Vanessa? Why are you leaving? 3696 | Where are you going? 3697 | 3698 | 3699 | To the final Tournament of Roses parade 3700 | in Pasadena. 3701 | 3702 | 3703 | They've moved it to this weekend 3704 | because all the flowers are dying. 3705 | 3706 | 3707 | It's the last chance 3708 | I'll ever have to see it. 3709 | 3710 | 3711 | Vanessa, I just wanna say I'm sorry. 3712 | I never meant it to turn out like this. 3713 | 3714 | 3715 | I know. Me neither. 3716 | 3717 | 3718 | Tournament of Roses. 3719 | Roses can't do sports. 3720 | 3721 | 3722 | Wait a minute. Roses. Roses? 3723 | 3724 | 3725 | Roses! 3726 | 3727 | 3728 | Vanessa! 3729 | 3730 | 3731 | Roses?! 3732 | 3733 | 3734 | Barry? 3735 | 3736 | 3737 | - Roses are flowers! 3738 | - Yes, they are. 3739 | 3740 | 3741 | Flowers, bees, pollen! 3742 | 3743 | 3744 | I know. 3745 | That's why this is the last parade. 3746 | 3747 | 3748 | Maybe not. 3749 | Oould you ask him to slow down? 3750 | 3751 | 3752 | Oould you slow down? 3753 | 3754 | 3755 | Barry! 3756 | 3757 | 3758 | OK, I made a huge mistake. 3759 | This is a total disaster, all my fault. 3760 | 3761 | 3762 | Yes, it kind of is. 3763 | 3764 | 3765 | I've ruined the planet. 3766 | I wanted to help you 3767 | 3768 | 3769 | with the flower shop. 3770 | I've made it worse. 3771 | 3772 | 3773 | Actually, it's completely closed down. 3774 | 3775 | 3776 | I thought maybe you were remodeling. 3777 | 3778 | 3779 | But I have another idea, and it's 3780 | greater than my previous ideas combined. 3781 | 3782 | 3783 | I don't want to hear it! 3784 | 3785 | 3786 | All right, they have the roses, 3787 | the roses have the pollen. 3788 | 3789 | 3790 | I know every bee, plant 3791 | and flower bud in this park. 3792 | 3793 | 3794 | All we gotta do is get what they've got 3795 | back here with what we've got. 3796 | 3797 | 3798 | - Bees. 3799 | - Park. 3800 | 3801 | 3802 | - Pollen! 3803 | - Flowers. 3804 | 3805 | 3806 | - Repollination! 3807 | - Across the nation! 3808 | 3809 | 3810 | Tournament of Roses, 3811 | Pasadena, Oalifornia. 3812 | 3813 | 3814 | They've got nothing 3815 | but flowers, floats and cotton candy. 3816 | 3817 | 3818 | Security will be tight. 3819 | 3820 | 3821 | I have an idea. 3822 | 3823 | 3824 | Vanessa Bloome, FTD. 3825 | 3826 | 3827 | Official floral business. It's real. 3828 | 3829 | 3830 | Sorry, ma'am. Nice brooch. 3831 | 3832 | 3833 | Thank you. It was a gift. 3834 | 3835 | 3836 | Once inside, 3837 | we just pick the right float. 3838 | 3839 | 3840 | How about The Princess and the Pea? 3841 | 3842 | 3843 | I could be the princess, 3844 | and you could be the pea! 3845 | 3846 | 3847 | Yes, I got it. 3848 | 3849 | 3850 | - Where should I sit? 3851 | - What are you? 3852 | 3853 | 3854 | - I believe I'm the pea. 3855 | - The pea? 3856 | 3857 | 3858 | It goes under the mattresses. 3859 | 3860 | 3861 | - Not in this fairy tale, sweetheart. 3862 | - I'm getting the marshal. 3863 | 3864 | 3865 | You do that! 3866 | This whole parade is a fiasco! 3867 | 3868 | 3869 | Let's see what this baby'll do. 3870 | 3871 | 3872 | Hey, what are you doing?! 3873 | 3874 | 3875 | Then all we do 3876 | is blend in with traffic... 3877 | 3878 | 3879 | ...without arousing suspicion. 3880 | 3881 | 3882 | Once at the airport, 3883 | there's no stopping us. 3884 | 3885 | 3886 | Stop! Security. 3887 | 3888 | 3889 | - You and your insect pack your float? 3890 | - Yes. 3891 | 3892 | 3893 | Has it been 3894 | in your possession the entire time? 3895 | 3896 | 3897 | Would you remove your shoes? 3898 | 3899 | 3900 | - Remove your stinger. 3901 | - It's part of me. 3902 | 3903 | 3904 | I know. Just having some fun. 3905 | Enjoy your flight. 3906 | 3907 | 3908 | Then if we're lucky, we'll have 3909 | just enough pollen to do the job. 3910 | 3911 | 3912 | Oan you believe how lucky we are? We 3913 | have just enough pollen to do the job! 3914 | 3915 | 3916 | I think this is gonna work. 3917 | 3918 | 3919 | It's got to work. 3920 | 3921 | 3922 | Attention, passengers, 3923 | this is Oaptain Scott. 3924 | 3925 | 3926 | We have a bit of bad weather 3927 | in New York. 3928 | 3929 | 3930 | It looks like we'll experience 3931 | a couple hours delay. 3932 | 3933 | 3934 | Barry, these are cut flowers 3935 | with no water. They'll never make it. 3936 | 3937 | 3938 | I gotta get up there 3939 | and talk to them. 3940 | 3941 | 3942 | Be careful. 3943 | 3944 | 3945 | Oan I get help 3946 | with the Sky Mall magazine? 3947 | 3948 | 3949 | I'd like to order the talking 3950 | inflatable nose and ear hair trimmer. 3951 | 3952 | 3953 | Oaptain, I'm in a real situation. 3954 | 3955 | 3956 | - What'd you say, Hal? 3957 | - Nothing. 3958 | 3959 | 3960 | Bee! 3961 | 3962 | 3963 | Don't freak out! My entire species... 3964 | 3965 | 3966 | What are you doing? 3967 | 3968 | 3969 | - Wait a minute! I'm an attorney! 3970 | - Who's an attorney? 3971 | 3972 | 3973 | Don't move. 3974 | 3975 | 3976 | Oh, Barry. 3977 | 3978 | 3979 | Good afternoon, passengers. 3980 | This is your captain. 3981 | 3982 | 3983 | Would a Miss Vanessa Bloome in 24B 3984 | please report to the cockpit? 3985 | 3986 | 3987 | And please hurry! 3988 | 3989 | 3990 | What happened here? 3991 | 3992 | 3993 | There was a DustBuster, 3994 | a toupee, a life raft exploded. 3995 | 3996 | 3997 | One's bald, one's in a boat, 3998 | they're both unconscious! 3999 | 4000 | 4001 | - Is that another bee joke? 4002 | - No! 4003 | 4004 | 4005 | No one's flying the plane! 4006 | 4007 | 4008 | This is JFK control tower, Flight 356. 4009 | What's your status? 4010 | 4011 | 4012 | This is Vanessa Bloome. 4013 | I'm a florist from New York. 4014 | 4015 | 4016 | Where's the pilot? 4017 | 4018 | 4019 | He's unconscious, 4020 | and so is the copilot. 4021 | 4022 | 4023 | Not good. Does anyone onboard 4024 | have flight experience? 4025 | 4026 | 4027 | As a matter of fact, there is. 4028 | 4029 | 4030 | - Who's that? 4031 | - Barry Benson. 4032 | 4033 | 4034 | From the honey trial?! Oh, great. 4035 | 4036 | 4037 | Vanessa, this is nothing more 4038 | than a big metal bee. 4039 | 4040 | 4041 | It's got giant wings, huge engines. 4042 | 4043 | 4044 | I can't fly a plane. 4045 | 4046 | 4047 | - Why not? Isn't John Travolta a pilot? 4048 | - Yes. 4049 | 4050 | 4051 | How hard could it be? 4052 | 4053 | 4054 | Wait, Barry! 4055 | We're headed into some lightning. 4056 | 4057 | 4058 | This is Bob Bumble. We have some 4059 | late-breaking news from JFK Airport, 4060 | 4061 | 4062 | where a suspenseful scene 4063 | is developing. 4064 | 4065 | 4066 | Barry Benson, 4067 | fresh from his legal victory... 4068 | 4069 | 4070 | That's Barry! 4071 | 4072 | 4073 | ...is attempting to land a plane, 4074 | loaded with people, flowers 4075 | 4076 | 4077 | and an incapacitated flight crew. 4078 | 4079 | 4080 | Flowers?! 4081 | 4082 | 4083 | We have a storm in the area 4084 | and two individuals at the controls 4085 | 4086 | 4087 | with absolutely no flight experience. 4088 | 4089 | 4090 | Just a minute. 4091 | There's a bee on that plane. 4092 | 4093 | 4094 | I'm quite familiar with Mr. Benson 4095 | and his no-account compadres. 4096 | 4097 | 4098 | They've done enough damage. 4099 | 4100 | 4101 | But isn't he your only hope? 4102 | 4103 | 4104 | Technically, a bee 4105 | shouldn't be able to fly at all. 4106 | 4107 | 4108 | Their wings are too small... 4109 | 4110 | 4111 | Haven't we heard this a million times? 4112 | 4113 | 4114 | "The surface area of the wings 4115 | and body mass make no sense." 4116 | 4117 | 4118 | - Get this on the air! 4119 | - Got it. 4120 | 4121 | 4122 | - Stand by. 4123 | - We're going live. 4124 | 4125 | 4126 | The way we work may be a mystery to you. 4127 | 4128 | 4129 | Making honey takes a lot of bees 4130 | doing a lot of small jobs. 4131 | 4132 | 4133 | But let me tell you about a small job. 4134 | 4135 | 4136 | If you do it well, 4137 | it makes a big difference. 4138 | 4139 | 4140 | More than we realized. 4141 | To us, to everyone. 4142 | 4143 | 4144 | That's why I want to get bees 4145 | back to working together. 4146 | 4147 | 4148 | That's the bee way! 4149 | We're not made of Jell-O. 4150 | 4151 | 4152 | We get behind a fellow. 4153 | 4154 | 4155 | - Black and yellow! 4156 | - Hello! 4157 | 4158 | 4159 | Left, right, down, hover. 4160 | 4161 | 4162 | - Hover? 4163 | - Forget hover. 4164 | 4165 | 4166 | This isn't so hard. 4167 | Beep-beep! Beep-beep! 4168 | 4169 | 4170 | Barry, what happened?! 4171 | 4172 | 4173 | Wait, I think we were 4174 | on autopilot the whole time. 4175 | 4176 | 4177 | - That may have been helping me. 4178 | - And now we're not! 4179 | 4180 | 4181 | So it turns out I cannot fly a plane. 4182 | 4183 | 4184 | All of you, let's get 4185 | behind this fellow! Move it out! 4186 | 4187 | 4188 | Move out! 4189 | 4190 | 4191 | Our only chance is if I do what I'd do, 4192 | you copy me with the wings of the plane! 4193 | 4194 | 4195 | Don't have to yell. 4196 | 4197 | 4198 | I'm not yelling! 4199 | We're in a lot of trouble. 4200 | 4201 | 4202 | It's very hard to concentrate 4203 | with that panicky tone in your voice! 4204 | 4205 | 4206 | It's not a tone. I'm panicking! 4207 | 4208 | 4209 | I can't do this! 4210 | 4211 | 4212 | Vanessa, pull yourself together. 4213 | You have to snap out of it! 4214 | 4215 | 4216 | You snap out of it. 4217 | 4218 | 4219 | You snap out of it. 4220 | 4221 | 4222 | - You snap out of it! 4223 | - You snap out of it! 4224 | 4225 | 4226 | - You snap out of it! 4227 | - You snap out of it! 4228 | 4229 | 4230 | - You snap out of it! 4231 | - You snap out of it! 4232 | 4233 | 4234 | - Hold it! 4235 | - Why? Oome on, it's my turn. 4236 | 4237 | 4238 | How is the plane flying? 4239 | 4240 | 4241 | I don't know. 4242 | 4243 | 4244 | Hello? 4245 | 4246 | 4247 | Benson, got any flowers 4248 | for a happy occasion in there? 4249 | 4250 | 4251 | The Pollen Jocks! 4252 | 4253 | 4254 | They do get behind a fellow. 4255 | 4256 | 4257 | - Black and yellow. 4258 | - Hello. 4259 | 4260 | 4261 | All right, let's drop this tin can 4262 | on the blacktop. 4263 | 4264 | 4265 | Where? I can't see anything. Oan you? 4266 | 4267 | 4268 | No, nothing. It's all cloudy. 4269 | 4270 | 4271 | Oome on. You got to think bee, Barry. 4272 | 4273 | 4274 | - Thinking bee. 4275 | - Thinking bee. 4276 | 4277 | 4278 | Thinking bee! 4279 | Thinking bee! Thinking bee! 4280 | 4281 | 4282 | Wait a minute. 4283 | I think I'm feeling something. 4284 | 4285 | 4286 | - What? 4287 | - I don't know. It's strong, pulling me. 4288 | 4289 | 4290 | Like a 27-million-year-old instinct. 4291 | 4292 | 4293 | Bring the nose down. 4294 | 4295 | 4296 | Thinking bee! 4297 | Thinking bee! Thinking bee! 4298 | 4299 | 4300 | - What in the world is on the tarmac? 4301 | - Get some lights on that! 4302 | 4303 | 4304 | Thinking bee! 4305 | Thinking bee! Thinking bee! 4306 | 4307 | 4308 | - Vanessa, aim for the flower. 4309 | - OK. 4310 | 4311 | 4312 | Out the engines. We're going in 4313 | on bee power. Ready, boys? 4314 | 4315 | 4316 | Affirmative! 4317 | 4318 | 4319 | Good. Good. Easy, now. That's it. 4320 | 4321 | 4322 | Land on that flower! 4323 | 4324 | 4325 | Ready? Full reverse! 4326 | 4327 | 4328 | Spin it around! 4329 | 4330 | 4331 | - Not that flower! The other one! 4332 | - Which one? 4333 | 4334 | 4335 | - That flower. 4336 | - I'm aiming at the flower! 4337 | 4338 | 4339 | That's a fat guy in a flowered shirt. 4340 | I mean the giant pulsating flower 4341 | 4342 | 4343 | made of millions of bees! 4344 | 4345 | 4346 | Pull forward. Nose down. Tail up. 4347 | 4348 | 4349 | Rotate around it. 4350 | 4351 | 4352 | - This is insane, Barry! 4353 | - This's the only way I know how to fly. 4354 | 4355 | 4356 | Am I koo-koo-kachoo, or is this plane 4357 | flying in an insect-like pattern? 4358 | 4359 | 4360 | Get your nose in there. Don't be afraid. 4361 | Smell it. Full reverse! 4362 | 4363 | 4364 | Just drop it. Be a part of it. 4365 | 4366 | 4367 | Aim for the center! 4368 | 4369 | 4370 | Now drop it in! Drop it in, woman! 4371 | 4372 | 4373 | Oome on, already. 4374 | 4375 | 4376 | Barry, we did it! 4377 | You taught me how to fly! 4378 | 4379 | 4380 | - Yes. No high-five! 4381 | - Right. 4382 | 4383 | 4384 | Barry, it worked! 4385 | Did you see the giant flower? 4386 | 4387 | 4388 | What giant flower? Where? Of course 4389 | I saw the flower! That was genius! 4390 | 4391 | 4392 | - Thank you. 4393 | - But we're not done yet. 4394 | 4395 | 4396 | Listen, everyone! 4397 | 4398 | 4399 | This runway is covered 4400 | with the last pollen 4401 | 4402 | 4403 | from the last flowers 4404 | available anywhere on Earth. 4405 | 4406 | 4407 | That means this is our last chance. 4408 | 4409 | 4410 | We're the only ones who make honey, 4411 | pollinate flowers and dress like this. 4412 | 4413 | 4414 | If we're gonna survive as a species, 4415 | this is our moment! What do you say? 4416 | 4417 | 4418 | Are we going to be bees, orjust 4419 | Museum of Natural History keychains? 4420 | 4421 | 4422 | We're bees! 4423 | 4424 | 4425 | Keychain! 4426 | 4427 | 4428 | Then follow me! Except Keychain. 4429 | 4430 | 4431 | Hold on, Barry. Here. 4432 | 4433 | 4434 | You've earned this. 4435 | 4436 | 4437 | Yeah! 4438 | 4439 | 4440 | I'm a Pollen Jock! And it's a perfect 4441 | fit. All I gotta do are the sleeves. 4442 | 4443 | 4444 | Oh, yeah. 4445 | 4446 | 4447 | That's our Barry. 4448 | 4449 | 4450 | Mom! The bees are back! 4451 | 4452 | 4453 | If anybody needs 4454 | to make a call, now's the time. 4455 | 4456 | 4457 | I got a feeling we'll be 4458 | working late tonight! 4459 | 4460 | 4461 | Here's your change. Have a great 4462 | afternoon! Oan I help who's next? 4463 | 4464 | 4465 | Would you like some honey with that? 4466 | It is bee-approved. Don't forget these. 4467 | 4468 | 4469 | Milk, cream, cheese, it's all me. 4470 | And I don't see a nickel! 4471 | 4472 | 4473 | Sometimes I just feel 4474 | like a piece of meat! 4475 | 4476 | 4477 | I had no idea. 4478 | 4479 | 4480 | Barry, I'm sorry. 4481 | Have you got a moment? 4482 | 4483 | 4484 | Would you excuse me? 4485 | My mosquito associate will help you. 4486 | 4487 | 4488 | Sorry I'm late. 4489 | 4490 | 4491 | He's a lawyer too? 4492 | 4493 | 4494 | I was already a blood-sucking parasite. 4495 | All I needed was a briefcase. 4496 | 4497 | 4498 | Have a great afternoon! 4499 | 4500 | 4501 | Barry, I just got this huge tulip order, 4502 | and I can't get them anywhere. 4503 | 4504 | 4505 | No problem, Vannie. 4506 | Just leave it to me. 4507 | 4508 | 4509 | You're a lifesaver, Barry. 4510 | Oan I help who's next? 4511 | 4512 | 4513 | All right, scramble, jocks! 4514 | It's time to fly. 4515 | 4516 | 4517 | Thank you, Barry! 4518 | 4519 | 4520 | That bee is living my life! 4521 | 4522 | 4523 | Let it go, Kenny. 4524 | 4525 | 4526 | - When will this nightmare end?! 4527 | - Let it all go. 4528 | 4529 | 4530 | - Beautiful day to fly. 4531 | - Sure is. 4532 | 4533 | 4534 | Between you and me, 4535 | I was dying to get out of that office. 4536 | 4537 | 4538 | You have got 4539 | to start thinking bee, my friend. 4540 | 4541 | 4542 | - Thinking bee! 4543 | - Me? 4544 | 4545 | 4546 | Hold it. Let's just stop 4547 | for a second. Hold it. 4548 | 4549 | 4550 | I'm sorry. I'm sorry, everyone. 4551 | Oan we stop here? 4552 | 4553 | 4554 | I'm not making a major life decision 4555 | during a production number! 4556 | 4557 | 4558 | All right. Take ten, everybody. 4559 | Wrap it up, guys. 4560 | 4561 | 4562 | I had virtually no rehearsal for that. 4563 | 4564 | Special thanks to SergeiK. 4565 | --------------------------------------------------------------------------------