![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEARgBGAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAMDAlQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA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FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfIx+NPxB2Tn/AISDlWAH+h2/HP8AuU1PjV8QjBIx8QcqRj/Q7f8A+N0UV1QirR0+y/8A24uS94RfjX8Qijk+IOQuR/oVv6gf8867fTfiZ4vuNUlhl1fdGt/5IH2aIfJtBx9yiinh4xfNddv0MKjapya/rRlDxx8VPGmj659nsNZ8mL7HHLt+ywt8xPJ5Q1D46+LHjbRvEf2Sw1ryYPIR9v2WFuSOeShNFFec2+e3mxUm21f+X/5D/M9Cs/GWvy67JbPf5hFjLMF8mP74l2g52+nFeeeE/ix421PXLW2vNa8yJ7WWRl+ywjLLvwchPYUUUYZt1pp9n+c/8l9xyUpycnd/Zh+N7kPg34ueOdV8UWtne655tvJu3J9kgXPHqEBrY1f4neMLXTdCmh1fbJdXMscx+zQncqy7QOU4444oor1KcIuF7fZf5s9CHxpGTL8W/HC+Bo9RGt4uzqUsBk+yQ/cCRkDGzHVjzjPNdR4F+InirWfCWoX1/qnnXMLTBH+zxLjasRHAUD+JvzoorycVJxoXT1s/1N6qSirdv/bmct4i+Lfjixv5IrbW9iC0jkA+yQH5iRk8p71lXfxn+IEVtYumv4aWAu5+xwcnzHX+56AUUVrJ+/bzf6mVDWk2/wCVfoek+CPH3ibV/CU19fan5tyqAh/IjX+KUdAoHRF/Ksyb4keLU+KF3o66tiwjhLLF9ni4Pkhuu3PXnrRRWyX79rpy/ojCq2qtRLpyfjHX7znfBvxc8c6r4otbO91zzbeTduT7JAuePUIDW14k+JvjCw0rRZrbV/LkuZZFlP2aE7gHAHVOOD2oor0cLThLluls/wA2dSS+rTl1uv8A0mRjy/FvxwvgaPURreLs6lLAZPskP3AkZAxsx1Y84zzXTeBfiL4r1nwxc3l/qvnTpPIiv9niXACxEcBQP4m/OiivFrtqmmv61HWSULrs/wD0pmV4v+KPjLS77Uo7LWPKSEr5Y+ywtjMsi90PZR+VU/HXxY8baN4j+yWGteTB5CPt+ywtyRzyUJoorDDzk4xu+/5DxaUcZUitkv8A5D/NnoF34z8QRC32X+N7uG/cx84L4/h9hXlmlfGPx7c6zpNvNr26K4mjWVfscA3AybT0Tjj0oorrqaKVux5ilL6pzX11/wDSUR6L8ZfH13run20+vb4ZrmON1+xwDKlgCMhPSu08dfEfxZo2lwzWGq+TI2Mn7PE38MZ7qf7x/OiinT1qyT/lf5o7sPrUqJ9Ir/2452X4t+OF8DR6iNbxdnUpYDJ9kh+4EjIGNmOrHnGea6HwV8SPFmreHTdX2rebP9seLd9niX5QsZAwFA/iP50UV0YVKVamn1/4J08sbx06P/0pmL40+K/jXSfEFza2OteVCiMVX7LC2CJWXqUJ6ACm+Ovix420bxH9ksNa8mDyEfb9lhbkjnkoTRRXmUJScYXfcjGRUcZOMdFb/wCRPVrHxPrE1ncySXmWRSVPlJx8zj09hXn0fxM8Xt8S73SDq/8AoMSyFIvs0XGEyOdmevvRRV4OTliKsZO6S/WR4znL28FfT2cX877+ph+Dfi5451XxRa2d7rnm28m7cn2SBc8eoQGvQPHHjjxFo8tuLDUfJD26O37iNskvACeVPZ2/P6UUV7NCEXa6+xJ/iz1KavKN/wCaP5nAy/FvxwvgaPURreLs6lLAZPskP3AkZAxsx1Y84zzXZ/DLx94m8Q6DeXOqan9omjeYK3kRpgKsRHCqP7zfnRRXnreHr+ppUSSjb+veZleMfiV4t0qx1CSy1bynhu0jQ/ZomwpaYEcqeyL+VY3jr4seNtG8R/ZLDWvJg8hH2/ZYW5I55KE0UVwYacpPV9f/AG1FY6KjjqkIqySWnyh/m/vO2vPHPiOK/WJNRwhs7iXHkR/eVmCn7vbArg5Pi344XxvBpw1v/RHu4o2j+yQcqSARnZnuaKK9Crpz2/lX6njTnLkTv9hv52iZ2i/GXx9d67p9tPr2+Ga5jjdfscAypYAjIT0r1HXfG/iKz0K7ubfUNksaW5VvJjOC0kCtwV7iR/z9hRRUr7f+H9T0KGtez2vD8Z2f3nAS/FvxwvgaPURreLs6lLAZPskP3AkZAxsx1Y84zzXReC/iP4s1bwtcXl9q3m3CTyor/Z4lwFSMgYCgdWP50UVdLWdNPq1+Z0VIpRVuz/8ASmYnjT4r+NdJ8QXNrY615UKIxVfssLYIlZepQnoAKb46+LHjbRvEf2Sw1ryYPIR9v2WFuSOeShNFFcNCUnGF33DGRUcZOMdFb/5E9OtPFmtyzyK97kC3kcfuk6iQgHp6V5Z4O+LfjjVfECWt7rfmwmGVyv2SBeQpI5CA9RRRXTQd8RUT2Uf/AJI8mlOTjG7+zH/0qQ3wb8XPHOq+KLWzvdc823k3bk+yQLnj1CA1ta98TfF9lpGnz2+r7JJpo1dvs0JyCoJ6p6miiu+MY+5pvb/0pnqUEnGpfpF/ocafjT8Qdk5/4SDlWAH+h2/HP+5XUfDv4p+M9d8RG11LWfPg2A7fssK87gOqoD3oorPlXInb7En/AOlHNiXaLt/Wpp+OPiR4s0eynksNW8l1lRQfs8TYBkmB6qeyL+VYfjr4seNtG8R/ZLDWvJg8hH2/ZYW5I55KE0UV5dOUnVkm/tM1raYyrFbL/KH+b+89LtfFuuSXjRvfZUWssmPKT7yybQenpXmnhP4seNtT1y1t7zWvMiktZZGX7LCMsu/B4T2FFFdUNcTOPTlX/tx5GEqTlzXbekfzZB4N+LnjnVfFFrZ3uuebbybtyfZIFzx6hAa2vE3xN8X6fpejTWur+XJcySLKfs0J3AOAOqccHtRRXqUYRdO7X2X+cj2LfuJvrdflIx5fi344XwNHqI1vF2dSlgMn2SH7gSMgY2Y6secZ5rp/APxE8Va3oUlzqGq+dMJrhQ32eJeFhVl4CjoSTRRXmrZej/Jms4pR26P82cx4i+Lfjixv5IrbW9iC1jkA+yQH5iRk8p71k3fxn+IEVtYumv4aWAu5+xwcnzHX+56AUUVE379vN/qY0NaTb/lX6HoPgv4heKdW0P7Tfap5sv2dn3fZ4l5EjjOAo7AVyng74t+ONV8QJa3ut+bCYZXK/ZIF5CkjkID1FFFdfKudq32f0Ma7arSS7Q/FajfBvxc8c6r4otbO91zzbeTduT7JAuePUIDW143+JvjDR9OtJbDV/JeS4uUY/ZoWyqS7VHKHoKKK6qNODottfZf/ALcF37RL1/Qx5fi344XwNHqI1vF2dSlgMn2SH7gSMgY2Y6secZ5re8H/ABK8Xap4cW7vdW82c37Q7vs0S/IFjOMBQP4j+dFFefDW3o/yZ6VKEXUgmv65mP8AGXxI8WaVpeoTWWreVJDeRxIfs8TYUtOCOVP9xfy+tYfjr4seNtG8R/ZLDWvJg8hH2/ZYW5I55KE0UV5+HnJy1fVf+kojMIxhjpxirKy0+UP83953n/CbeIf7Qmi/tD5FiVgPJj4JNx/s/wDTNPy9zXnSfF3xyfFGlWZ1z/R5/sfmJ9kg+bekZfnZkZLH86KK7f8Al3NnhxnL6ve+tpf+kw/zf3lHRfjL4+u9d0+2n17fDNcxxuv2OAZUsARkJ6V6bqvjnxHbbvJ1HbiwuJv9RGfnWBGU8r2Yk0UVpQV6k0/5G/melQ1qTT7L82SfDDxt4i8ReG7q71XUPtE8d68St5MaYUIhAwqgdSaKKK8PEVaiqtKT+856ram0j//Z)
ADPD2140 Data Sheet
Rev. 0 | Page 8 of 12
APPLICATIONS INFORMATION
GESTURE RECOGNITION
The unique angular response of the ADPD2140 coupled with
the high performance ambient light rejection of the ADPD1080
enables a robust and effective implementation of gesture
recognition. The following algorithm demonstrates recognition
of up, down, left, right, and click hand gestures based on data
from the four channels of the ADPD2140:
1. Prior to operation of the ADPD2140 and the ADPD1080
for gesture recognition, calibrate the ADPD1080 clocks. See
the ADPD1080 data sheet for more information on how to
calibrate the 32 kHz and 32 MHz clocks.
2. Set the ADPD1080 mode of operation to sample mode by
writing 0x2 to Register 0x10, Bits[1:0].
3. Collect the data measured by the device. See the ADPD1080
data sheet for instructions on how to read data from registers
using the first in, first out (FIFO) and interrupts. Data is
available directly from data registers or from the 128-byte
FIFO in Register 0x60, Bits [15:0].
4. The data in the four output channels of the ADPD1080
calculates the angle of incident light. After the xL, xR, yT,
and yB data are collected, calculate the angles and intensity
with the following equations:
Horizontal angle: x = (xL – xR)/(xL + xR)
Vertica l ang le: y = (yT – yB)/(yT + yB)
Intensity: L = xL + xR + yT + yB
5. Prior to gesture event detection, offsets of the ADPD1080
must be digitally subtracted from each channel. These offsets
are not due to photodiode dark current and are set by the
ADPD1080 on-chip analog-to-digital converter (ADC).
Register 0x18, Register 0x19, Register 0x1A, and
Register 0x1B contain the ADC offsets for Timeslot A,
while Register 0x1A, Register 0x1B, Register 0x1E, and
Register 0x1F contain the ADC offsets for Timeslot B. The
nominal value for all offsets is 0x2000. To modify these offsets,
measure the 16-bit output of each channel, in ADC codes,
and add it to the existing 16-bit number in the ADC offset
register, SLOTx_CHx_OFFSET (nominally 0x2000). Then,
write to the ADC offset register with this result. When the
offsets are correctly subtracted, the intensity reading L is
close to zero codes with no objects in the sensor field of view.
6. The start of a gesture event can be defined as occurring
when intensity data crosses a preset threshold. Nominally,
this threshold must be set to 1000 codes. However, the
threshold can be adjusted to suit the application.
7. The end of a gesture event can then be defined as the number
of samples after which the intensity drops back below the
preset threshold, past a certain minimum number of samples
(nominally five samples).
8. Use the start and stop points of the gesture event to
determine whether the gesture was up, right, left, down, or
a click. For more detail on this process, see the following
pseudocode:
event = False
intensityThreshold = 1000 (should be
adjustable by the user)
clickThreshold = 0.07 (should be adjustable
by the user)
if event = True:
i += 1
if i >= 5 and L < intensityThreshold:
event = False
gestureStopX = x
gestureStopY = y
m = (gestureStartY –
gestureStopY)/(gestureStartX – gestureStopX
+ 1e-6)
d = sqrt((gestureStartX – gestureStopX)^2 +
(gestureStartY – gestureStopY)^2)
if d < clickThreshold:
gesture = ‘CLICK’
else:
if abs(m) > 1:
if gestureStartY >
gestureStopY:
gesture = ‘UP’
else:
gesture = ‘DOWN’
elif abs(m) < 1:
if gestureStartX >
gestureStopX:
gesture = ‘LEFT’
else:
gesture = ‘RIGHT’
else:
if L > intensityThreshold:
i = 0
event = True
gestureStartX = x
gestureStartY = y