From 0947a774d0edb41b6dd9f25bc8db6598c4f9c44a Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 29 Sep 2020 07:11:54 -0700 Subject: [PATCH] Move deprecated example. from examples/android to tools/android/test. All changes are just find/replace the path. PiperOrigin-RevId: 334371911 Change-Id: If90dc1ddf8d11fdf71a6c9f9c77072cb08736c5a --- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 53636 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 ---- .../res/drawable-hdpi/ic_action_info.png | Bin 1025 -> 0 bytes .../android/res/drawable-hdpi/ic_launcher.png | Bin 4312 -> 0 bytes .../android/res/drawable-hdpi/tile.9.png | Bin 196 -> 0 bytes .../res/drawable-mdpi/ic_action_info.png | Bin 665 -> 0 bytes .../android/res/drawable-mdpi/ic_launcher.png | Bin 2265 -> 0 bytes .../res/drawable-xhdpi/ic_action_info.png | Bin 1355 -> 0 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 6683 -> 0 bytes .../res/drawable-xxhdpi/ic_action_info.png | Bin 2265 -> 0 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 12746 -> 0 bytes .../java/org/tensorflow/NativeLibrary.java | 2 +- .../android/TensorFlowInferenceInterface.java | 4 +-- tensorflow/tools/android/test/.gitignore | 30 ++++++++++++++++++ .../android/test}/AndroidManifest.xml | 0 .../android => tools/android/test}/BUILD | 4 +-- .../android => tools/android/test}/README.md | 18 ++++++----- .../android/test}/__init__.py | 0 .../android/test}/assets/BUILD | 0 .../android/test}/bin/AndroidManifest.xml | 0 .../android/test}/build.gradle | 4 +-- .../android/test}/download-models.gradle | 2 +- .../android => tools/android/test}/gradlew | 0 .../android/test}/gradlew.bat | 0 .../android/test}/jni/CMakeLists.txt | 0 .../android/test}/jni/__init__.py | 0 .../android/test}/jni/imageutils_jni.cc | 4 +-- .../test}/jni/object_tracking/config.h | 2 +- .../test}/jni/object_tracking/flow_cache.h | 9 +++--- .../test}/jni/object_tracking/frame_pair.cc | 5 +-- .../test}/jni/object_tracking/frame_pair.h | 2 +- .../android/test}/jni/object_tracking/geom.h | 4 +-- .../test}/jni/object_tracking/gl_utils.h | 2 +- .../test}/jni/object_tracking/image-inl.h | 6 ++-- .../android/test}/jni/object_tracking/image.h | 4 +-- .../test}/jni/object_tracking/image_data.h | 16 +++++----- .../test}/jni/object_tracking/image_neon.cc | 9 +++--- .../test}/jni/object_tracking/image_utils.h | 9 +++--- .../jni/object_tracking/integral_image.h | 8 ++--- .../test}/jni/object_tracking/jni_utils.h | 2 +- .../test}/jni/object_tracking/keypoint.h | 15 ++++----- .../jni/object_tracking/keypoint_detector.cc | 16 +++++----- .../jni/object_tracking/keypoint_detector.h | 9 +++--- .../test}/jni/object_tracking/logging.cc | 2 +- .../test}/jni/object_tracking/logging.h | 0 .../jni/object_tracking/object_detector.cc | 2 +- .../jni/object_tracking/object_detector.h | 20 ++++++------ .../test}/jni/object_tracking/object_model.h | 19 ++++++----- .../jni/object_tracking/object_tracker.cc | 26 +++++++-------- .../jni/object_tracking/object_tracker.h | 23 +++++++------- .../jni/object_tracking/object_tracker_jni.cc | 14 ++++---- .../test}/jni/object_tracking/optical_flow.cc | 26 +++++++-------- .../test}/jni/object_tracking/optical_flow.h | 17 +++++----- .../test}/jni/object_tracking/sprite.h | 4 +-- .../test}/jni/object_tracking/time_log.cc | 2 +- .../test}/jni/object_tracking/time_log.h | 4 +-- .../jni/object_tracking/tracked_object.cc | 2 +- .../jni/object_tracking/tracked_object.h | 4 +-- .../android/test}/jni/object_tracking/utils.h | 2 +- .../test}/jni/object_tracking/utils_neon.cc | 8 ++--- .../android/test}/jni/rgb2yuv.cc | 2 +- .../android/test}/jni/rgb2yuv.h | 0 .../android/test}/jni/version_script.lds | 0 .../android/test}/jni/yuv2rgb.cc | 2 +- .../android/test}/jni/yuv2rgb.h | 0 .../test}/res/animator/color_animation.xml | 0 .../test/res/drawable-hdpi/ic_action_info.png | Bin 0 -> 562 bytes .../test/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 3696 bytes .../android/test/res/drawable-hdpi/tile.9.png | Bin 0 -> 116 bytes .../test/res/drawable-mdpi/ic_action_info.png | Bin 0 -> 377 bytes .../test/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1847 bytes .../res/drawable-xhdpi/ic_action_info.png | Bin 0 -> 701 bytes .../test/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 5666 bytes .../res/drawable-xxhdpi/ic_action_info.png | Bin 0 -> 1082 bytes .../test/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 10264 bytes .../android/test}/res/drawable/border.xml | 0 .../test}/res/layout/activity_camera.xml | 0 .../test}/res/layout/activity_speech.xml | 0 .../res/layout/camera_connection_fragment.xml | 0 .../camera_connection_fragment_stylize.xml | 0 .../camera_connection_fragment_tracking.xml | 0 .../test}/res/layout/list_text_item.xml | 0 .../res/values-sw600dp/template-dimens.xml | 0 .../res/values-sw600dp/template-styles.xml | 0 .../android/test}/res/values-v11/styles.xml | 0 .../test}/res/values-v11/template-styles.xml | 0 .../android/test}/res/values-v14/styles.xml | 0 .../test}/res/values-v21/base-colors.xml | 0 .../res/values-v21/base-template-styles.xml | 0 .../android/test}/res/values/attrs.xml | 0 .../android/test}/res/values/base-strings.xml | 0 .../android/test}/res/values/colors.xml | 0 .../android/test}/res/values/strings.xml | 0 .../android/test}/res/values/styles.xml | 0 .../test}/res/values/template-dimens.xml | 0 .../test}/res/values/template-styles.xml | 0 .../android/test}/sample_images/classify1.jpg | Bin .../android/test}/sample_images/detect1.jpg | Bin .../android/test}/sample_images/stylize1.jpg | Bin .../android/test}/settings.gradle | 0 .../tensorflow/demo/AutoFitTextureView.java | 0 .../org/tensorflow/demo/CameraActivity.java | 0 .../demo/CameraConnectionFragment.java | 0 .../src/org/tensorflow/demo/Classifier.java | 0 .../tensorflow/demo/ClassifierActivity.java | 2 -- .../org/tensorflow/demo/DetectorActivity.java | 2 -- .../demo/LegacyCameraConnectionFragment.java | 0 .../src/org/tensorflow/demo/OverlayView.java | 0 .../tensorflow/demo/RecognitionScoreView.java | 0 .../tensorflow/demo/RecognizeCommands.java | 0 .../src/org/tensorflow/demo/ResultsView.java | 0 .../org/tensorflow/demo/SpeechActivity.java | 0 .../org/tensorflow/demo/StylizeActivity.java | 0 .../demo/TensorFlowImageClassifier.java | 0 .../demo/TensorFlowMultiBoxDetector.java | 0 .../TensorFlowObjectDetectionAPIModel.java | 0 .../demo/TensorFlowYoloDetector.java | 0 .../org/tensorflow/demo/env/BorderedText.java | 0 .../org/tensorflow/demo/env/ImageUtils.java | 0 .../src/org/tensorflow/demo/env/Logger.java | 0 .../src/org/tensorflow/demo/env/Size.java | 0 .../org/tensorflow/demo/env/SplitTimer.java | 0 .../demo/tracking/MultiBoxTracker.java | 2 +- .../demo/tracking/ObjectTracker.java | 2 +- .../tools/ci_build/builds/android_full.sh | 8 ++--- .../tools/ci_build/builds/builds_common.sh | 2 +- 126 files changed, 203 insertions(+), 186 deletions(-) delete mode 100644 tensorflow/examples/android/gradle/wrapper/gradle-wrapper.jar delete mode 100644 tensorflow/examples/android/gradle/wrapper/gradle-wrapper.properties delete mode 100644 tensorflow/examples/android/res/drawable-hdpi/ic_action_info.png delete mode 100644 tensorflow/examples/android/res/drawable-hdpi/ic_launcher.png delete mode 100644 tensorflow/examples/android/res/drawable-hdpi/tile.9.png delete mode 100644 tensorflow/examples/android/res/drawable-mdpi/ic_action_info.png delete mode 100644 tensorflow/examples/android/res/drawable-mdpi/ic_launcher.png delete mode 100644 tensorflow/examples/android/res/drawable-xhdpi/ic_action_info.png delete mode 100644 tensorflow/examples/android/res/drawable-xhdpi/ic_launcher.png delete mode 100644 tensorflow/examples/android/res/drawable-xxhdpi/ic_action_info.png delete mode 100644 tensorflow/examples/android/res/drawable-xxhdpi/ic_launcher.png create mode 100644 tensorflow/tools/android/test/.gitignore rename tensorflow/{examples/android => tools/android/test}/AndroidManifest.xml (100%) rename tensorflow/{examples/android => tools/android/test}/BUILD (95%) rename tensorflow/{examples/android => tools/android/test}/README.md (93%) rename tensorflow/{examples/android => tools/android/test}/__init__.py (100%) rename tensorflow/{examples/android => tools/android/test}/assets/BUILD (100%) rename tensorflow/{examples/android => tools/android/test}/bin/AndroidManifest.xml (100%) rename tensorflow/{examples/android => tools/android/test}/build.gradle (97%) rename tensorflow/{examples/android => tools/android/test}/download-models.gradle (96%) rename tensorflow/{examples/android => tools/android/test}/gradlew (100%) rename tensorflow/{examples/android => tools/android/test}/gradlew.bat (100%) rename tensorflow/{examples/android => tools/android/test}/jni/CMakeLists.txt (100%) rename tensorflow/{examples/android => tools/android/test}/jni/__init__.py (100%) rename tensorflow/{examples/android => tools/android/test}/jni/imageutils_jni.cc (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/config.h (99%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/flow_cache.h (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/frame_pair.cc (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/frame_pair.h (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/geom.h (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/gl_utils.h (96%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/image-inl.h (99%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/image.h (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/image_data.h (94%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/image_neon.cc (96%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/image_utils.h (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/integral_image.h (95%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/jni_utils.h (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/keypoint.h (73%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/keypoint_detector.cc (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/keypoint_detector.h (94%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/logging.cc (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/logging.h (100%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_detector.cc (93%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_detector.h (92%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_model.h (82%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_tracker.cc (95%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_tracker.h (92%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/object_tracker_jni.cc (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/optical_flow.cc (95%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/optical_flow.h (86%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/sprite.h (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/time_log.cc (92%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/time_log.h (96%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/tracked_object.cc (98%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/tracked_object.h (97%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/utils.h (99%) rename tensorflow/{examples/android => tools/android/test}/jni/object_tracking/utils_neon.cc (94%) rename tensorflow/{examples/android => tools/android/test}/jni/rgb2yuv.cc (98%) rename tensorflow/{examples/android => tools/android/test}/jni/rgb2yuv.h (100%) rename tensorflow/{examples/android => tools/android/test}/jni/version_script.lds (100%) rename tensorflow/{examples/android => tools/android/test}/jni/yuv2rgb.cc (99%) rename tensorflow/{examples/android => tools/android/test}/jni/yuv2rgb.h (100%) rename tensorflow/{examples/android => tools/android/test}/res/animator/color_animation.xml (100%) create mode 100644 tensorflow/tools/android/test/res/drawable-hdpi/ic_action_info.png create mode 100644 tensorflow/tools/android/test/res/drawable-hdpi/ic_launcher.png create mode 100644 tensorflow/tools/android/test/res/drawable-hdpi/tile.9.png create mode 100644 tensorflow/tools/android/test/res/drawable-mdpi/ic_action_info.png create mode 100644 tensorflow/tools/android/test/res/drawable-mdpi/ic_launcher.png create mode 100644 tensorflow/tools/android/test/res/drawable-xhdpi/ic_action_info.png create mode 100644 tensorflow/tools/android/test/res/drawable-xhdpi/ic_launcher.png create mode 100644 tensorflow/tools/android/test/res/drawable-xxhdpi/ic_action_info.png create mode 100644 tensorflow/tools/android/test/res/drawable-xxhdpi/ic_launcher.png rename tensorflow/{examples/android => tools/android/test}/res/drawable/border.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/activity_camera.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/activity_speech.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/camera_connection_fragment.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/camera_connection_fragment_stylize.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/camera_connection_fragment_tracking.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/layout/list_text_item.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-sw600dp/template-dimens.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-sw600dp/template-styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-v11/styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-v11/template-styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-v14/styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-v21/base-colors.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values-v21/base-template-styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/attrs.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/base-strings.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/colors.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/strings.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/template-dimens.xml (100%) rename tensorflow/{examples/android => tools/android/test}/res/values/template-styles.xml (100%) rename tensorflow/{examples/android => tools/android/test}/sample_images/classify1.jpg (100%) rename tensorflow/{examples/android => tools/android/test}/sample_images/detect1.jpg (100%) rename tensorflow/{examples/android => tools/android/test}/sample_images/stylize1.jpg (100%) rename tensorflow/{examples/android => tools/android/test}/settings.gradle (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/AutoFitTextureView.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/CameraActivity.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/CameraConnectionFragment.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/Classifier.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/ClassifierActivity.java (99%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/DetectorActivity.java (99%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/LegacyCameraConnectionFragment.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/OverlayView.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/RecognitionScoreView.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/RecognizeCommands.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/ResultsView.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/SpeechActivity.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/StylizeActivity.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/TensorFlowImageClassifier.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/TensorFlowMultiBoxDetector.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/TensorFlowObjectDetectionAPIModel.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/TensorFlowYoloDetector.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/env/BorderedText.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/env/ImageUtils.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/env/Logger.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/env/Size.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/env/SplitTimer.java (100%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/tracking/MultiBoxTracker.java (99%) rename tensorflow/{examples/android => tools/android/test}/src/org/tensorflow/demo/tracking/ObjectTracker.java (99%) diff --git a/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.jar b/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 13372aef5e24af05341d49695ee84e5f9b594659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53636 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ⅅ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 H-+%o-(+5aQ diff --git a/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.properties b/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 4a0bf945ec9..00000000000 --- a/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Thu Jul 23 05:42:16 CEST 2020 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip diff --git a/tensorflow/examples/android/res/drawable-hdpi/ic_action_info.png b/tensorflow/examples/android/res/drawable-hdpi/ic_action_info.png deleted file mode 100644 index 32bd1aabcabb85ded957230533c00e735183a323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmV+c1pfPpP)UDI7BaW>`N=bRlk|E2%^dB8hrR55et*8d|IcHT75QTnx&CD( z0RP&9B@dK5;L-x65HcIEwzf8qPN%o}e7;SFVXWg@h5G(8m&<)+eJL+59~&4LNV_!r zJh>+x2#3Sl{CdQ#bT}>ywQR&8iWzy)M+Q2ECY~)rE;`M%!}m*2L~T%H1|=Rs$~z==CdX= z48rmho`|t8O+~w5HL)!Nz)I((+8|_dYHF%o7dC|2VU#(bK)xovUn~V!!l|;d@(MD7 z$QZ@DcdfYA5&%`_FTxPs#yu+u3*fUT6H!Ve0B~QYkR&!V=On%G_H8SD!V&>jgyx}+Knp;|1FUifM$%zBVA`u=>gGED zq&&B>W-!17-PoZ8pu*>pbXb_S!SK5k1xd4g)>g@d_8I_WOpy-#W+|Ck0J!uB4ECW!8~_iN3BVZu zM3MEDkbUMBz)2YFhG8#Z(6Jl<2)`3DFCpta03QGM0E#<=iav?WWt8LK<;7mY% z3dxyac6RorXJyoBBXbJC^F}6?buvmg1pu84baGnrW|R;B`7n}q8^hfEjBmA(6>OMO zoz?C*-2~m-v6H8ldj5Q=dS1|RS_C^d&`6ihclsRfvKD*(IM9&9?Zd;vNh?iLJ4%?D z6zE845IW5TKT_s_(B@n7HxeEl>YLS3QbfqjMBxtg3WS%}Dot{PRD74`S|#s^V!qg# zPm9H_7TGYtTG>~N=HxEg%iV=#PR0&OU=>NZ*?hgu`!uJkZ!7kC-AcVK)E--XpioM< v;adXW#(G}RmOS8v72WVCdBBbJyrBIJ%ovMLu~&(q00000NkvXXu0mjfpn%#$ diff --git a/tensorflow/examples/android/res/drawable-hdpi/ic_launcher.png b/tensorflow/examples/android/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index b3113cd15c3255405ee34c622a1e83674e6e5487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 zcmV;}5GU`6P)u&9mWlNSV;SH~N!8RVSDR#)PPC^1TMQW0&BqTG*P{mLaU{a)N z2w5rxsbQH)Y63My7>3EP8QU;pu*GVOcN?(5w&Yb?t6ROk_wGsE*WI>cBy~%+YzO?R z?0@<#_x|2@&pG#;^F+9Cj7Wek@EMuF1weTeaskl)CqT?B0r=6osY!Ldb1QX!a2Mix zgD9EyJG$um|AFAbJpg(ESVY8U!#tc93SwqG4ljTTXV;_4sCUDSl2P03t+WkC&Rx37`Rr31Z(DPtbNkUPMs-5oi#uw3~=}Q z2DHDlL?w@1PFDAFq{FqY{mFpQ^D1CWtW~9;Y#Ty$!U%5T;>LGGY3n95+_MWsmD)aO zMV&UN0tRz>?}C}N9r2;#xmt8>o~f*!C#TS~FLE0OBF1Ry_18Xyg2 zEMNvPW3X0~Vz6z&Q`N&olh%mhhBXLI+lsm?JAkSL5jkUd)n^<~*3Ovd+E9Ub#}w7K zWf?{GtU~h00rW9}#@D+O=WJ}zllt$dT$8lDNCV(K4v zWy69|ExQ7qn}1}vGh8^wjupXoyvFHjTOqpJZbR&gMR4L}Aj1F&4JPk1Gcy$c3$RfM zvN{2w=f(Li&bmC;KCw!`Q~n7B=f8|ecdvtt9Y)!u5dco19xv};3&E3BjgEp#?Cx#z z#lC;}Q;P0h0k$haM%HB)I5&+!6hWa9_K_%@V zv(fm7@za$-6tHZ- zPC-9HrRPHJ-32g%ioFmO#V}h!FsjoarMG2y4-H6P&u|Sj#XzEiN}Aur#JitI?b2;P zY2R?sc>ckk^8BpZF2T`PT2yD-Wg@zJC8xStpi&J0JOGKpy%RwhHE?>uP|+AT5eHJS z6HgojNM#jcnh*gWWL*i21|MW71ya$xlrj;y3rYdXg79`h_;<6XW}OJmUrjUa+cDHl z3I@c?+Q52oJb)|Q zc*ga`1=tt}F!{i?0VkS(N+@v8p}cRq5J2uth(M)9Fs4*P2IG)bI--by@Kx~oC9x=j zibTMc52~|6QK%*A`@`3RqXX2lE@1WUYcUh;i&S*a3W|3uhf0S)!jor1Ie3}4U<6c( zpyKR$r&E{G@T9z~Qgh(!-3?@HP+pZ%Z52F|iy$j3klzByw5urAI~w*tr5MU7fpg>l zkm`4{1hRH+!h6Rn#iIgbz59b}ggAZ+CEIU=6%DvxASh#i^AD8C3$_{T6vK%op}G#c zo~iIdyJ#=7H81UazSCew={QTPB`+j>nrv=>F+o60O@c8w2#$9^b?zTx9L!?^)c?pW$AIpTcS*e=`2birG*YOa z*#r<+R>FxAoWpwux$IFBVx^d5SYC9?bIO|9ZngdI9q2l&J!Tn*%oDaRpQ3!l5S12W zXtu61^Ocq_-k%>et{y`7tR9N`#8Krv_k4!^tRO%voLm~)$9)+Hf~ zK6i)hDn^t-IRRJ)J_FK8z#5I68DU~tL99Au!{SFH6?2}cy8IzKzTu^ifYa)HyzU0| z<(3;b+S>#vwbK|LQel7+zVD3ENcTT-+etvVn4_!+6fj{nPau z2n7oy?}=GJ)UfbTzjxkKxZ$BhCageFdd)MF?2gYbRma<}=41Q6#gVQ6q|Pr50V*FL zR*I@-hW&T0sTh@!9tx0q11Ujeei#!ypt2OWKMXiSExVBr2%w}fV{;P+05yc_P60$W zJ{;F~%x#e4yFacJ`!}~b2XxoBur>{u?HaZUd}+#Gfe?kXM502ZJi z*85k8Vq)71j(gmH>S*VQ7nKi?>&5C9Kjv?}^hug?-^p$MkkO30nf6&s#LIpIHq+r(yLHP{U;yhXoXU_@=F@{nJ*E zo5IMPHz4L19#Cd|lQ&?gq>yj|(&;1OAd=xJxx-#qD`uvnAT zHTe-e0qfct5U@AAILF$&`by{6{srXkE|U%3u&7zE*)#jj-=bmpuG7vaMjyTF5!Jry zTBH(9ZkmtuIynhxFraJ-!Od!!7NprFD(6J(eLYo9`|)yE_KTJNuI2V8{kcfy-^FcXz)o&bQdOZE> zCvNBNj)ksg8RGZ~AYD5&JP?6$81?lmoWl;Bgsyo-xTN(B5n8kc?7zfgxhn*uvstatNrf`q8G7*@Xmghj>G zheh)>FL)OJ;3X7Qw#U}~e75u2)Au3PcSWIqsJsEPwg%FSf^404&Nz109qUq#C)CSj zb6!?et6nx5ZrY+t%|vvDBGaKYm4EZ8E2Ggv0jo3IY=7{Z%dJn|x}AHEwi?xzN7R!d z(|eF=7Q7}F-1{rj^z28?Y+d$M{jWZ;T&?}Zj}VWn%m;`{OCW3OAiZh82?I2+ypziS z=92GrKa5ZZ2WGDp)mQ%(_1A7I)SeW&tOlN!7f|LMx{XcVWZSEi=-EHj-uCuVGLOzQ z8q1FwjaRI-mHf=R^xh-cdbp$2mt6g`%hId=^MMfo&6@$EQ9>GBAejP44VmQ1N$EsR zIis2`NZ$_SYkW~Ie)dHoDkw2MT1W)}Iwj`tCjR@!A;}#)a6-_dSdn|Tjo3Zfw4;iz++mM5jjA5{iOQk^W4=KNbU$eGa^3@6nR`AN0++ z`|YnUpd2WZAglc_>irPqHe|UcQ_7J+IMIG^+5@Mj6G&)tqtlj72GH^!Kj@oz=QjXQ z4wP3w*7{*gD1r#2z(xR0=P@7=8Jvjw#sbR3KY&RvT6Imb2SaxKezO7TaGfFRQ=l@( z-S>XwxB#e7K=(iBoB2&J(x*zK5CxfK@0pi9@b|{7KY8ct=fynUOp@P?{f3A*h6R*O znF49{2G*NbJ$}DA`HF4lO`v$D;vms91*E=!3a7y_LpR0^zV%Rm^v0Fhp`waTs%UL9 zCa!o^w*J9J1SW;Qet=qLK$yFLbQ~%s!4c`EW8r?faf*>9T_;nDJ%N}gt=}v{Q`d=# z8Sfi2@7RHoTD_|uMQ>idSA6pKa~eqt4amC-L@~F_#!1~4Bf$!%ilbsu?JuFo}Lj*DtWo$e@HkeM?J-HQ!W(7qYOP zzj_08^L0~^PPq=7WFPHV^PPWQDQM7OwJ|2@p-HQr_RYQL2{c}&D-ia07~+v2o!5Yv zxsxU=ek@Yf{ABIb|2$&ZC!Z3=`ulkfNOk6F^SRRVSSLEx>n;GwL+%2g3xLMDxH8vW zP|&$jQ2#5BUxszh{z%39Rt;Ad8!isY1XGy~v#+a>rszwLE#7cWyxM(RpmACL^76TX<#b3<#h87ObB^(uU#fqT-s*sdC1La{A4$7?ZEw4j`JZ zi=%KojQ-4V1(b!PTVIN-t?x{+cdTFO>}tE&={nR%j#DjKrjhjR28%>g_=1Nh)cUT` zdi`s1_II}e&<#^Mm2pm#lS4V~fN~FFX8lQ3nYH_asn*6{U+HXr`!-aEibSBDWvK3b zv-Rd*$whzpiEeNj%h$=H*G6GioHamMHReVCMKS~>svJE+MT|OFZ&cl6E&E; zEp~-X>&%^XRso&4VV}J_T>x}0BI&dDe#iew7Zj9-@&5rpsSMBxEp;^j0000DSr z1<%~X^wgl##FWaylc_d9MQNTcjv*DdlK%YvZ_jLY;KT`zX$+@~lcus~rX(d9r71A} z`ThO9P5{3!^Gb##?W|{)7_*qnaG3jle#z^Ewh3!L+OJDkIZ%$#q&nKNhRa5{}YPGkSNX97<% z1Af21t6Hu0qkcLYHT0Y3`S0;~{JPniY9<4`+wC6aIBpD1dPE#u*6a0XI-TB!zN&H`+l!Z%>0gf>h9R9v{nlSZTQ zeJmDZR=!dKjbi+YKC;Ow*2hUe^CM7Fgi4Q~r6Qz4k-LUX5NQ4y5`nu$gz8;p^?xM< zR5c=SkZZ-HcM@3;JcM{KepR<(0&aB}k#h_$)x+qvXE>eC*O+MU@b~|Z4W56 z>(uT^ChXr@JxawUuBvs}H=!zY1)HAuXq?V?ofKw{cpeYEQ4ufq~I@8+Gq67E`1<~5Y zahz6XSn7aN6zJFyW@;^q1JjBiQdtr}AS5(_ge-5#yYJrf>ztQF9?5$zF9bT`a3=Zh z+;e`P^ZTCPavtFpA9Rb`kJ|vrJjl!rT-Y!~wwzf=jr*5EI8IXG_twEX>>%=HG!c>2 zUj^J04=}Rh-E@^S5exSt;nAGE{6WFiim=VWR)^Nr(9g{ z*9@13mp(<2rkQ}uj#`yKDoi?TD;xH?YRFJF>J^|%=aI8p%Zw}g=JAySk3rh$9XgM%afS}IG}r+T>N+AWX zPMJWs9q@VKx^E~n??sSdfufNq&R{7a&35=o_So6eexs+|e}D=nUE__U07~cW^?Qq5 zbz2_hwo?zmY8eY=CrBigi^zu6*arLZWx%|;*EIm0wrYd3VT|^{80ZI*$qLefaGte! z#2dypH?E6Cjj!2`c<#08-kYLTtzHc)I1a*4C$7R`{KFD%*x_tgRRmEc4ku6#<9a<9prXhGT3F^g-&dgCIyq_CN*=Samgk8DOn=TEO|>=Cq^$;cb=A z7#W{0g|r5PNbd|RaW|Ee2dnlXWJ@C;d)%*>eblWiY`0H@z-CxUFrg$|O;B0%7!#ckG!e|g2gEYeFHFotLlT3d86 z7U{5>S|MA)V1HAJ#z((oGQ4{+a^7Ofovm9tUz;oIPCv@6jiVui(NQbKjKl!FOQ;JV zx~Tfg@W53*3MBln&Yb}VTRUp9J`HB*p1qtmxzaoD&5O+JGWTsQv5xM3(mJ}Y5)m^E zB1TpT07T*4^{(%~Q;<|b*8s%KG$t@$B}|CXe8$oR=*1wt4G3Sj<_^RHboeA1=`zjt z{y5Ftz2$LvrD1$$VkCIds6#?3sevK1c6jrT>US)B&2i5Y8*e;-;e!lhLe`t$U>L?7 zKEO&2&}9TO>!`2K3jAf&Y_6?ZCNI^DC11Lxmo^Ys+VBiKCJH95cb3lBiBT12i71@> z60e?r!T$V6LH9@z*8?ON?hzFET-Ra52QYjeqGZ+r&v#y~iKo6O2v8VW|Ep!z zrynfRhnyRrm45df$2~t^g@I*f;*}9mC5A9Sr|-Yl&TTpu(>D=y7go$We*RxQhX^&4w$ZNh_N2CmK3uTloEV z=gCj^J`JI%)9Vqm=MP~6X=Oep*3qZ-h^uM@ZxjcDrWe#dkm((tvdsrZ_ELN4nwUp)fAuUyZ}A})X? zU`!~2vor)kD8b=&bYhazE=ekS#wg#oskg=@k(YWcr(>c8#cq-iKz*RFJp_08U})~< z9v6)@FRV}|>{ADA%DroiYyS3?skV^aK~e_j{$WypuE`o;jLC*E$b`ty0pWlQNLYLffO^le)wAc-E7sEk(MV(>|K8`^^S8eI<+%ff1KRL3@Fmsg=;~!B3UU=d zWpd4e(Cf64nOhuRU-=4o2PSUiddYG(J_;EQ=%dtgXboh5Ae#(uvkvmwtQUtQJKc?1 z&Y105+1$g&~eJlp;+9*8z3F&$Z|hm^{^+WX(E9 zYaf2vu0H%cw5}gC03`H)YmXc><|IrNV_{Xo1)jllx{HUH{ zdH^s(q8*vTU-cJ%L$ce*Dn zTaRJW)vqjx+Oxjc+hcCO0b)8fSNQK6iunA|X;Rb{7(+|mH>UskKLCO^BIEYErR>)+ n-NcV?m75wB?6-CWk+3Ez~DWohQ@%>jMdQA1c3hj{%fPr=n<5-3k6~tfy!wCFb|Kf3x&e@#l^+Hz3{3u)^7kJ zSp5(dKa9|EdqNahe-)7XjcFXF`O`@%(u@ozCtg#MS;!CX<8kdJtYc7Vj0j?7f+pnP0u| zma(1zsGz*K=QJ_;2=4hb0yr^WQ{^2z%0b}w6k+xe*Qyd@)c}y~@1x8; zYy>M|jSsb!@9pjFknu}PO9hR`7!aOuLKv?&OXDQfL48yOfYkX|EH-JCs%flnS~0tn z%clTvSjNyK%~9Sy)>skmlZtcDgu+@rpC7NLPpAq2CV!NP?=_R>nEWkG!bAB3DF3nz z7**t*OeXWaTM#8NVuV+%>hKjtIOBG_L#GBn+FMG{8&-$+zP8jQ5{WzD@scepjnKQ< zZ1y{i0#YKOf8H1(4~Va8+h#QYENUJg-j5hTmr?#rjnIa+1>v9NUKEfc3!e`p8nnFN z^BQCJ%Q%d3j$H7ChKCw}(b3TfYhm*Vf?w23Xw#C+_Q*5IQ&xgi9RMKR;uA7h7Eq~F zYC^+E1%O%7o-i)Awz9Hv%x!zC5lTbb-Q6AU>gt-p`n!!69M>$RRRDnYolGK)h#VQL ze^Mi?Lo0a%YaO@8;#DWK@#~C7uIIQ#r;KLCJS`;cqg$n_I)O}Ujz1pux#0psnhE$a3-b$iwAM78vQ z!NI{!HdQ9g9G3|Jk<-CbTfdn870jt~uG6|9c0$&DwX@qLf2h^t#@~aj06M(w5 z!ctfKSPc0IKwTF@0)QXOVV?o0?{e6W4H3TpXvl_$@q)+bz3(xtr+Q1w4*(jrB_>LH z-4vyDy@o9@*;l-Bu$^^=*7_e;{VPNb-4qoe{n!?Ft86)4!?(qaK*4@7A|M3))!4Qp z0K&~&Ua;N|2Iu9d6Pp!4kQbN1cs=fbAeo&_iKEgimL;uao}2pv2}|MNej;OAy|1tD zx_CT(*sqVI*fRg7SS+5a=H=&3rB<~iwiC1R{{#D(TqU5c_Ms#dq`>(XedXxYF diff --git a/tensorflow/examples/android/res/drawable-xhdpi/ic_launcher.png b/tensorflow/examples/android/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 6361d792dacd8ce09a14258878b5ce6db5e0debb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6683 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

i~@`6sv7S6=V4 zM=#w&dZClNGDzWMLIlEt6x}&s9{=J1ylrY+QVj#%73SuSVL?mnva&WP-=t=d{puU` zickG@zde0vlQ{B;v)(QHhSAug`grcRuP0xL_N=QDUde*rZ=cx!V4V@&0AK@vb(X+7 l-+n^_HUL;>39R$&|34>RdNZ>cMG*i1002ovPDHLkV1kjqwtWBq diff --git a/tensorflow/examples/android/res/drawable-xxhdpi/ic_action_info.png b/tensorflow/examples/android/res/drawable-xxhdpi/ic_action_info.png deleted file mode 100644 index 394eb7e534905e36fd24c3defac92c09b403ee39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2265 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 tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowImageClassifier.java for an - * example usage. + *

See tensorflow/tools/android/test/src/org/tensorflow/demo/TensorFlowImageClassifier.java for + * an example usage. */ public class TensorFlowInferenceInterface { private static final String TAG = "TensorFlowInferenceInterface"; diff --git a/tensorflow/tools/android/test/.gitignore b/tensorflow/tools/android/test/.gitignore new file mode 100644 index 00000000000..fbd0a2dc7d7 --- /dev/null +++ b/tensorflow/tools/android/test/.gitignore @@ -0,0 +1,30 @@ +# This file is based on https://github.com/github/gitignore/blob/master/Android.gitignore +*.iml +.idea/compiler.xml +.idea/copyright +.idea/dictionaries +.idea/gradle.xml +.idea/libraries +.idea/inspectionProfiles +.idea/misc.xml +.idea/modules.xml +.idea/runConfigurations.xml +.idea/tasks.xml +.idea/workspace.xml +.gradle +local.properties +.DS_Store +build/ +gradleBuild/ +*.apk +*.ap_ +*.dex +*.class +bin/ +gen/ +out/ +*.log +.navigation/ +/captures +.externalNativeBuild +.cxx diff --git a/tensorflow/examples/android/AndroidManifest.xml b/tensorflow/tools/android/test/AndroidManifest.xml similarity index 100% rename from tensorflow/examples/android/AndroidManifest.xml rename to tensorflow/tools/android/test/AndroidManifest.xml diff --git a/tensorflow/examples/android/BUILD b/tensorflow/tools/android/test/BUILD similarity index 95% rename from tensorflow/examples/android/BUILD rename to tensorflow/tools/android/test/BUILD index 00d9a901395..387924a2e65 100644 --- a/tensorflow/examples/android/BUILD +++ b/tensorflow/tools/android/test/BUILD @@ -69,7 +69,7 @@ android_binary( # Package assets from assets dir as well as all model targets. Remove undesired models # (and corresponding Activities in source) to reduce APK size. assets = [ - "//tensorflow/examples/android/assets:asset_files", + "//tensorflow/tools/android/test/assets:asset_files", ":external_assets", ], assets_dir = "", @@ -96,7 +96,7 @@ filegroup( "@stylize//:model_files", ], ) -# LINT.ThenChange(//tensorflow/examples/android/download-models.gradle) +# LINT.ThenChange(//tensorflow/tools/android/test/download-models.gradle) filegroup( name = "java_files", diff --git a/tensorflow/examples/android/README.md b/tensorflow/tools/android/test/README.md similarity index 93% rename from tensorflow/examples/android/README.md rename to tensorflow/tools/android/test/README.md index af93adfb1e4..977f9305498 100644 --- a/tensorflow/examples/android/README.md +++ b/tensorflow/tools/android/test/README.md @@ -1,5 +1,7 @@ # TensorFlow Android Camera Demo +DEPRECATED: These examples are deprecated. + This folder contains an example application utilizing TensorFlow for Android devices. @@ -20,22 +22,22 @@ on API >= 14 devices. ## Current samples: -1. [TF Classify](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/ClassifierActivity.java): +1. [TF Classify](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/android/test/src/org/tensorflow/demo/ClassifierActivity.java): Uses the [Google Inception](https://arxiv.org/abs/1409.4842) model to classify camera frames in real-time, displaying the top results in an overlay on the camera image. -2. [TF Detect](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java): +2. [TF Detect](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/android/test/src/org/tensorflow/demo/DetectorActivity.java): Demonstrates an SSD-Mobilenet model trained using the [Tensorflow Object Detection API](https://github.com/tensorflow/models/tree/master/research/object_detection/) introduced in [Speed/accuracy trade-offs for modern convolutional object detectors](https://arxiv.org/abs/1611.10012) to localize and track objects (from 80 categories) in the camera preview in real-time. -3. [TF Stylize](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/StylizeActivity.java): +3. [TF Stylize](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/android/test/src/org/tensorflow/demo/StylizeActivity.java): Uses a model based on [A Learned Representation For Artistic Style](https://arxiv.org/abs/1610.07629) to restyle the camera preview image to that of a number of different artists. 4. [TF - Speech](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/SpeechActivity.java): + Speech](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/android/test/src/org/tensorflow/demo/SpeechActivity.java): Runs a simple speech recognition model built by the [audio training tutorial](https://www.tensorflow.org/versions/master/tutorials/audio_recognition). Listens for a small set of words, and highlights them in the UI when they are @@ -165,7 +167,7 @@ BASE_URL=https://storage.googleapis.com/download.tensorflow.org/models for MODEL_ZIP in inception5h.zip ssd_mobilenet_v1_android_export.zip stylize_v1.zip do curl -L ${BASE_URL}/${MODEL_ZIP} -o /tmp/${MODEL_ZIP} - unzip /tmp/${MODEL_ZIP} -d tensorflow/examples/android/assets/ + unzip /tmp/${MODEL_ZIP} -d tensorflow/tools/android/test/assets/ done ``` @@ -182,7 +184,7 @@ After editing your WORKSPACE file to update the SDK/NDK configuration, you may build the APK. Run this from your workspace root: ```bash -bazel build --cxxopt='--std=c++11' -c opt //tensorflow/examples/android:tensorflow_demo +bazel build --cxxopt='--std=c++11' -c opt //tensorflow/tools/android/test:tensorflow_demo ``` ##### Install @@ -192,7 +194,7 @@ device, then after building use the following command from your workspace root to install the APK: ```bash -adb install -r bazel-bin/tensorflow/examples/android/tensorflow_demo.apk +adb install -r bazel-bin/tensorflow/tools/android/test/tensorflow_demo.apk ``` ### Android Studio with Bazel @@ -202,7 +204,7 @@ make sure that you can build with Bazel following the above directions. Then, look at [build.gradle](build.gradle) and make sure that the path to Bazel matches that of your system. -At this point you can add the tensorflow/examples/android directory as a new +At this point you can add the tensorflow/tools/android/test directory as a new Android Studio project. Click through installing all the Gradle extensions it requests, and you should be able to have Android Studio build the demo like any other application (it will call out to Bazel to build the native code with the diff --git a/tensorflow/examples/android/__init__.py b/tensorflow/tools/android/test/__init__.py similarity index 100% rename from tensorflow/examples/android/__init__.py rename to tensorflow/tools/android/test/__init__.py diff --git a/tensorflow/examples/android/assets/BUILD b/tensorflow/tools/android/test/assets/BUILD similarity index 100% rename from tensorflow/examples/android/assets/BUILD rename to tensorflow/tools/android/test/assets/BUILD diff --git a/tensorflow/examples/android/bin/AndroidManifest.xml b/tensorflow/tools/android/test/bin/AndroidManifest.xml similarity index 100% rename from tensorflow/examples/android/bin/AndroidManifest.xml rename to tensorflow/tools/android/test/bin/AndroidManifest.xml diff --git a/tensorflow/examples/android/build.gradle b/tensorflow/tools/android/test/build.gradle similarity index 97% rename from tensorflow/examples/android/build.gradle rename to tensorflow/tools/android/test/build.gradle index 17fda55d693..4f7bea6b19d 100644 --- a/tensorflow/examples/android/build.gradle +++ b/tensorflow/tools/android/test/build.gradle @@ -56,7 +56,7 @@ def nativeOutDir = 'libs/' + cpuType // Default to building with Bazel and override with make if requested. def nativeBuildRule = 'buildNativeBazel' -def demoLibPath = '../../../bazel-bin/tensorflow/examples/android/libtensorflow_demo.so' +def demoLibPath = '../../../bazel-bin/tensorflow/tools/android/test/libtensorflow_demo.so' def inferenceLibPath = '../../../bazel-bin/tensorflow/tools/android/inference_interface/libtensorflow_inference.so' // Override for Makefile builds. @@ -149,7 +149,7 @@ android { task buildNativeBazel(type: Exec) { workingDir '../../..' commandLine bazelLocation, 'build', '-c', 'opt', \ - 'tensorflow/examples/android:tensorflow_native_libs', \ + 'tensorflow/tools/android/test:tensorflow_native_libs', \ '--crosstool_top=//external:android/crosstool', \ '--cpu=' + cpuType, \ '--host_crosstool_top=@bazel_tools//tools/cpp:toolchain' diff --git a/tensorflow/examples/android/download-models.gradle b/tensorflow/tools/android/test/download-models.gradle similarity index 96% rename from tensorflow/examples/android/download-models.gradle rename to tensorflow/tools/android/test/download-models.gradle index 727ef2cc850..f581e58a04e 100644 --- a/tensorflow/examples/android/download-models.gradle +++ b/tensorflow/tools/android/test/download-models.gradle @@ -13,7 +13,7 @@ def models = ['inception_v1.zip', 'object_detection/ssd_mobilenet_v1_android_export.zip', 'stylize_v1.zip', 'speech_commands_conv_actions.zip'] -// LINT.ThenChange(//tensorflow/examples/android/BUILD) +// LINT.ThenChange(//tensorflow/tools/android/test/BUILD) // Root URL for model archives def MODEL_URL = 'https://storage.googleapis.com/download.tensorflow.org/models' diff --git a/tensorflow/examples/android/gradlew b/tensorflow/tools/android/test/gradlew similarity index 100% rename from tensorflow/examples/android/gradlew rename to tensorflow/tools/android/test/gradlew diff --git a/tensorflow/examples/android/gradlew.bat b/tensorflow/tools/android/test/gradlew.bat similarity index 100% rename from tensorflow/examples/android/gradlew.bat rename to tensorflow/tools/android/test/gradlew.bat diff --git a/tensorflow/examples/android/jni/CMakeLists.txt b/tensorflow/tools/android/test/jni/CMakeLists.txt similarity index 100% rename from tensorflow/examples/android/jni/CMakeLists.txt rename to tensorflow/tools/android/test/jni/CMakeLists.txt diff --git a/tensorflow/examples/android/jni/__init__.py b/tensorflow/tools/android/test/jni/__init__.py similarity index 100% rename from tensorflow/examples/android/jni/__init__.py rename to tensorflow/tools/android/test/jni/__init__.py diff --git a/tensorflow/examples/android/jni/imageutils_jni.cc b/tensorflow/tools/android/test/jni/imageutils_jni.cc similarity index 98% rename from tensorflow/examples/android/jni/imageutils_jni.cc rename to tensorflow/tools/android/test/jni/imageutils_jni.cc index a7b39bdb316..18e834f7085 100644 --- a/tensorflow/examples/android/jni/imageutils_jni.cc +++ b/tensorflow/tools/android/test/jni/imageutils_jni.cc @@ -20,8 +20,8 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/rgb2yuv.h" -#include "tensorflow/examples/android/jni/yuv2rgb.h" +#include "tensorflow/tools/android/test/jni/rgb2yuv.h" +#include "tensorflow/tools/android/test/jni/yuv2rgb.h" #define IMAGEUTILS_METHOD(METHOD_NAME) \ Java_org_tensorflow_demo_env_ImageUtils_##METHOD_NAME // NOLINT diff --git a/tensorflow/examples/android/jni/object_tracking/config.h b/tensorflow/tools/android/test/jni/object_tracking/config.h similarity index 99% rename from tensorflow/examples/android/jni/object_tracking/config.h rename to tensorflow/tools/android/test/jni/object_tracking/config.h index 47de2d2c15b..830c64976a2 100644 --- a/tensorflow/examples/android/jni/object_tracking/config.h +++ b/tensorflow/tools/android/test/jni/object_tracking/config.h @@ -18,7 +18,7 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/flow_cache.h b/tensorflow/tools/android/test/jni/object_tracking/flow_cache.h similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/flow_cache.h rename to tensorflow/tools/android/test/jni/object_tracking/flow_cache.h index b62e334ecd7..b388addb63a 100644 --- a/tensorflow/examples/android/jni/object_tracking/flow_cache.h +++ b/tensorflow/tools/android/test/jni/object_tracking/flow_cache.h @@ -16,11 +16,10 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_FLOW_CACHE_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_FLOW_CACHE_H_ -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/frame_pair.cc b/tensorflow/tools/android/test/jni/object_tracking/frame_pair.cc similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/frame_pair.cc rename to tensorflow/tools/android/test/jni/object_tracking/frame_pair.cc index 66e422e87b6..770e2b145aa 100644 --- a/tensorflow/examples/android/jni/object_tracking/frame_pair.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/frame_pair.cc @@ -13,10 +13,11 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ +#include "tensorflow/tools/android/test/jni/object_tracking/frame_pair.h" + #include -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/frame_pair.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/frame_pair.h b/tensorflow/tools/android/test/jni/object_tracking/frame_pair.h similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/frame_pair.h rename to tensorflow/tools/android/test/jni/object_tracking/frame_pair.h index 6c8ac9be981..7365a04b8c1 100644 --- a/tensorflow/examples/android/jni/object_tracking/frame_pair.h +++ b/tensorflow/tools/android/test/jni/object_tracking/frame_pair.h @@ -16,7 +16,7 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_FRAME_PAIR_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_FRAME_PAIR_H_ -#include "tensorflow/examples/android/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/geom.h b/tensorflow/tools/android/test/jni/object_tracking/geom.h similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/geom.h rename to tensorflow/tools/android/test/jni/object_tracking/geom.h index c975e40144b..f46924db7e3 100644 --- a/tensorflow/examples/android/jni/object_tracking/geom.h +++ b/tensorflow/tools/android/test/jni/object_tracking/geom.h @@ -16,8 +16,8 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_GEOM_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_GEOM_H_ -#include "tensorflow/examples/android/jni/object_tracking/logging.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/gl_utils.h b/tensorflow/tools/android/test/jni/object_tracking/gl_utils.h similarity index 96% rename from tensorflow/examples/android/jni/object_tracking/gl_utils.h rename to tensorflow/tools/android/test/jni/object_tracking/gl_utils.h index a29e677d3c5..f6e2a445807 100755 --- a/tensorflow/examples/android/jni/object_tracking/gl_utils.h +++ b/tensorflow/tools/android/test/jni/object_tracking/gl_utils.h @@ -19,7 +19,7 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/image-inl.h b/tensorflow/tools/android/test/jni/object_tracking/image-inl.h similarity index 99% rename from tensorflow/examples/android/jni/object_tracking/image-inl.h rename to tensorflow/tools/android/test/jni/object_tracking/image-inl.h index 61d69908b55..8382e56bb0f 100644 --- a/tensorflow/examples/android/jni/object_tracking/image-inl.h +++ b/tensorflow/tools/android/test/jni/object_tracking/image-inl.h @@ -18,9 +18,9 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/image.h b/tensorflow/tools/android/test/jni/object_tracking/image.h similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/image.h rename to tensorflow/tools/android/test/jni/object_tracking/image.h index a436f0e0a13..982cb0e715c 100644 --- a/tensorflow/examples/android/jni/object_tracking/image.h +++ b/tensorflow/tools/android/test/jni/object_tracking/image.h @@ -18,8 +18,8 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" // TODO(andrewharp): Make this a cast to uint32_t if/when we go unsigned for // operations. diff --git a/tensorflow/examples/android/jni/object_tracking/image_data.h b/tensorflow/tools/android/test/jni/object_tracking/image_data.h similarity index 94% rename from tensorflow/examples/android/jni/object_tracking/image_data.h rename to tensorflow/tools/android/test/jni/object_tracking/image_data.h index c4f91d8cbd8..f89967c8d6f 100644 --- a/tensorflow/examples/android/jni/object_tracking/image_data.h +++ b/tensorflow/tools/android/test/jni/object_tracking/image_data.h @@ -17,16 +17,16 @@ limitations under the License. #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_IMAGE_DATA_H_ #include + #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/image_utils.h" -#include "tensorflow/examples/android/jni/object_tracking/integral_image.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/integral_image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/image_neon.cc b/tensorflow/tools/android/test/jni/object_tracking/image_neon.cc similarity index 96% rename from tensorflow/examples/android/jni/object_tracking/image_neon.cc rename to tensorflow/tools/android/test/jni/object_tracking/image_neon.cc index 5f1023cbed3..2bd31f5618b 100644 --- a/tensorflow/examples/android/jni/object_tracking/image_neon.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/image_neon.cc @@ -19,13 +19,12 @@ limitations under the License. #ifdef __ARM_NEON #include - #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/image_utils.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/image_utils.h b/tensorflow/tools/android/test/jni/object_tracking/image_utils.h similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/image_utils.h rename to tensorflow/tools/android/test/jni/object_tracking/image_utils.h index b4ad7000b33..9e301e29a0e 100644 --- a/tensorflow/examples/android/jni/object_tracking/image_utils.h +++ b/tensorflow/tools/android/test/jni/object_tracking/image_utils.h @@ -18,11 +18,10 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/integral_image.h b/tensorflow/tools/android/test/jni/object_tracking/integral_image.h similarity index 95% rename from tensorflow/examples/android/jni/object_tracking/integral_image.h rename to tensorflow/tools/android/test/jni/object_tracking/integral_image.h index caf9b7d2ab8..9306b2aa3d4 100755 --- a/tensorflow/examples/android/jni/object_tracking/integral_image.h +++ b/tensorflow/tools/android/test/jni/object_tracking/integral_image.h @@ -16,10 +16,10 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_INTEGRAL_IMAGE_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_INTEGRAL_IMAGE_H_ -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/jni_utils.h b/tensorflow/tools/android/test/jni/object_tracking/jni_utils.h similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/jni_utils.h rename to tensorflow/tools/android/test/jni/object_tracking/jni_utils.h index 5f622a2e65f..015e6c09b41 100644 --- a/tensorflow/examples/android/jni/object_tracking/jni_utils.h +++ b/tensorflow/tools/android/test/jni/object_tracking/jni_utils.h @@ -19,7 +19,7 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" // The JniLongField class is used to access Java fields from native code. This // technique of hiding pointers to native objects in opaque Java fields is how diff --git a/tensorflow/examples/android/jni/object_tracking/keypoint.h b/tensorflow/tools/android/test/jni/object_tracking/keypoint.h similarity index 73% rename from tensorflow/examples/android/jni/object_tracking/keypoint.h rename to tensorflow/tools/android/test/jni/object_tracking/keypoint.h index 93405a5b2a8..fb6cd3162b3 100644 --- a/tensorflow/examples/android/jni/object_tracking/keypoint.h +++ b/tensorflow/tools/android/test/jni/object_tracking/keypoint.h @@ -16,14 +16,13 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_KEYPOINT_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_KEYPOINT_H_ -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/logging.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/keypoint_detector.cc b/tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.cc similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/keypoint_detector.cc rename to tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.cc index fc60d2a5ca9..c1919ccd452 100644 --- a/tensorflow/examples/android/jni/object_tracking/keypoint_detector.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.cc @@ -15,16 +15,16 @@ limitations under the License. // Various keypoint detecting functions. +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h" + #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/keypoint_detector.h b/tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h similarity index 94% rename from tensorflow/examples/android/jni/object_tracking/keypoint_detector.h rename to tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h index 2e85b835a70..3b96d1be4e4 100644 --- a/tensorflow/examples/android/jni/object_tracking/keypoint_detector.h +++ b/tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h @@ -17,12 +17,13 @@ limitations under the License. #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_KEYPOINT_DETECTOR_H_ #include + #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/image_data.h" -#include "tensorflow/examples/android/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_data.h" +#include "tensorflow/tools/android/test/jni/object_tracking/optical_flow.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/logging.cc b/tensorflow/tools/android/test/jni/object_tracking/logging.cc similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/logging.cc rename to tensorflow/tools/android/test/jni/object_tracking/logging.cc index 0ba8a541ab7..dc82cce0620 100644 --- a/tensorflow/examples/android/jni/object_tracking/logging.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/logging.cc @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#include "tensorflow/examples/android/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" #ifdef STANDALONE_DEMO_LIB diff --git a/tensorflow/examples/android/jni/object_tracking/logging.h b/tensorflow/tools/android/test/jni/object_tracking/logging.h similarity index 100% rename from tensorflow/examples/android/jni/object_tracking/logging.h rename to tensorflow/tools/android/test/jni/object_tracking/logging.h diff --git a/tensorflow/examples/android/jni/object_tracking/object_detector.cc b/tensorflow/tools/android/test/jni/object_tracking/object_detector.cc similarity index 93% rename from tensorflow/examples/android/jni/object_tracking/object_detector.cc rename to tensorflow/tools/android/test/jni/object_tracking/object_detector.cc index 7f65716fdf1..11eef293c2f 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_detector.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/object_detector.cc @@ -17,7 +17,7 @@ limitations under the License. // in this directory. This class remains mainly for historical reasons. // Detection in the TF demo is done through TensorFlowMultiBoxDetector.java. -#include "tensorflow/examples/android/jni/object_tracking/object_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_detector.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/object_detector.h b/tensorflow/tools/android/test/jni/object_tracking/object_detector.h similarity index 92% rename from tensorflow/examples/android/jni/object_tracking/object_detector.h rename to tensorflow/tools/android/test/jni/object_tracking/object_detector.h index a65c7b0db70..20e614b25df 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_detector.h +++ b/tensorflow/tools/android/test/jni/object_tracking/object_detector.h @@ -24,24 +24,24 @@ limitations under the License. #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_OBJECT_DETECTOR_H_ #include + #include #include #include #include #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/integral_image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/integral_image.h" #ifdef __RENDER_OPENGL__ -#include "tensorflow/examples/android/jni/object_tracking/sprite.h" +#include "tensorflow/tools/android/test/jni/object_tracking/sprite.h" #endif -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/image_data.h" -#include "tensorflow/examples/android/jni/object_tracking/object_model.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_data.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_model.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/object_model.h b/tensorflow/tools/android/test/jni/object_tracking/object_model.h similarity index 82% rename from tensorflow/examples/android/jni/object_tracking/object_model.h rename to tensorflow/tools/android/test/jni/object_tracking/object_model.h index 4bc4d5bc9eb..9a2ace01f0e 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_model.h +++ b/tensorflow/tools/android/test/jni/object_tracking/object_model.h @@ -29,18 +29,17 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/integral_image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/integral_image.h" #ifdef __RENDER_OPENGL__ -#include "tensorflow/examples/android/jni/object_tracking/sprite.h" +#include "tensorflow/tools/android/test/jni/object_tracking/sprite.h" #endif -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/image_data.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_data.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/object_tracker.cc b/tensorflow/tools/android/test/jni/object_tracking/object_tracker.cc similarity index 95% rename from tensorflow/examples/android/jni/object_tracking/object_tracker.cc rename to tensorflow/tools/android/test/jni/object_tracking/object_tracker.cc index 832dee5656f..a5345742c05 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_tracker.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/object_tracker.cc @@ -22,19 +22,19 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/flow_cache.h" -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/integral_image.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint_detector.h" -#include "tensorflow/examples/android/jni/object_tracking/logging.h" -#include "tensorflow/examples/android/jni/object_tracking/object_detector.h" -#include "tensorflow/examples/android/jni/object_tracking/object_tracker.h" -#include "tensorflow/examples/android/jni/object_tracking/optical_flow.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/flow_cache.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/integral_image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_tracker.h" +#include "tensorflow/tools/android/test/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/object_tracker.h b/tensorflow/tools/android/test/jni/object_tracking/object_tracker.h similarity index 92% rename from tensorflow/examples/android/jni/object_tracking/object_tracker.h rename to tensorflow/tools/android/test/jni/object_tracking/object_tracker.h index 20c7627fc5f..522f90e8470 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_tracker.h +++ b/tensorflow/tools/android/test/jni/object_tracking/object_tracker.h @@ -19,18 +19,17 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/integral_image.h" -#include "tensorflow/examples/android/jni/object_tracking/logging.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/flow_cache.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint_detector.h" -#include "tensorflow/examples/android/jni/object_tracking/object_model.h" -#include "tensorflow/examples/android/jni/object_tracking/optical_flow.h" -#include "tensorflow/examples/android/jni/object_tracking/tracked_object.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/flow_cache.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/integral_image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_model.h" +#include "tensorflow/tools/android/test/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/tracked_object.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/object_tracker_jni.cc b/tensorflow/tools/android/test/jni/object_tracking/object_tracker_jni.cc similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/object_tracker_jni.cc rename to tensorflow/tools/android/test/jni/object_tracking/object_tracker_jni.cc index 216903802eb..33db7d52eb3 100644 --- a/tensorflow/examples/android/jni/object_tracking/object_tracker_jni.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/object_tracker_jni.cc @@ -18,15 +18,15 @@ limitations under the License. #include #include #include + #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/jni_utils.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/object_tracker.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/jni_utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_tracker.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/optical_flow.cc b/tensorflow/tools/android/test/jni/object_tracking/optical_flow.cc similarity index 95% rename from tensorflow/examples/android/jni/object_tracking/optical_flow.cc rename to tensorflow/tools/android/test/jni/object_tracking/optical_flow.cc index 53c7b7328a4..35476cad9da 100644 --- a/tensorflow/examples/android/jni/object_tracking/optical_flow.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/optical_flow.cc @@ -13,21 +13,21 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ +#include "tensorflow/tools/android/test/jni/object_tracking/optical_flow.h" + #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/flow_cache.h" -#include "tensorflow/examples/android/jni/object_tracking/frame_pair.h" -#include "tensorflow/examples/android/jni/object_tracking/image_data.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint_detector.h" -#include "tensorflow/examples/android/jni/object_tracking/optical_flow.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/flow_cache.h" +#include "tensorflow/tools/android/test/jni/object_tracking/frame_pair.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_data.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/optical_flow.h b/tensorflow/tools/android/test/jni/object_tracking/optical_flow.h similarity index 86% rename from tensorflow/examples/android/jni/object_tracking/optical_flow.h rename to tensorflow/tools/android/test/jni/object_tracking/optical_flow.h index f98ae22bd64..c33c15a897e 100644 --- a/tensorflow/examples/android/jni/object_tracking/optical_flow.h +++ b/tensorflow/tools/android/test/jni/object_tracking/optical_flow.h @@ -16,15 +16,14 @@ limitations under the License. #ifndef TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_OPTICAL_FLOW_H_ #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_OPTICAL_FLOW_H_ -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" - -#include "tensorflow/examples/android/jni/object_tracking/config.h" -#include "tensorflow/examples/android/jni/object_tracking/frame_pair.h" -#include "tensorflow/examples/android/jni/object_tracking/image_data.h" -#include "tensorflow/examples/android/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/config.h" +#include "tensorflow/tools/android/test/jni/object_tracking/frame_pair.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image_data.h" +#include "tensorflow/tools/android/test/jni/object_tracking/keypoint.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/sprite.h b/tensorflow/tools/android/test/jni/object_tracking/sprite.h similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/sprite.h rename to tensorflow/tools/android/test/jni/object_tracking/sprite.h index 964f1c30bfa..f12200303bb 100755 --- a/tensorflow/examples/android/jni/object_tracking/sprite.h +++ b/tensorflow/tools/android/test/jni/object_tracking/sprite.h @@ -21,8 +21,8 @@ limitations under the License. #include #include -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/time_log.cc b/tensorflow/tools/android/test/jni/object_tracking/time_log.cc similarity index 92% rename from tensorflow/examples/android/jni/object_tracking/time_log.cc rename to tensorflow/tools/android/test/jni/object_tracking/time_log.cc index 8fce78f915f..56416bb2c20 100644 --- a/tensorflow/examples/android/jni/object_tracking/time_log.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/time_log.cc @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#include "tensorflow/examples/android/jni/object_tracking/time_log.h" +#include "tensorflow/tools/android/test/jni/object_tracking/time_log.h" #ifdef LOG_TIME // Storage for logging functionality. diff --git a/tensorflow/examples/android/jni/object_tracking/time_log.h b/tensorflow/tools/android/test/jni/object_tracking/time_log.h similarity index 96% rename from tensorflow/examples/android/jni/object_tracking/time_log.h rename to tensorflow/tools/android/test/jni/object_tracking/time_log.h index 0073e115963..5f9011c28b3 100644 --- a/tensorflow/examples/android/jni/object_tracking/time_log.h +++ b/tensorflow/tools/android/test/jni/object_tracking/time_log.h @@ -20,8 +20,8 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/logging.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" #ifdef LOG_TIME diff --git a/tensorflow/examples/android/jni/object_tracking/tracked_object.cc b/tensorflow/tools/android/test/jni/object_tracking/tracked_object.cc similarity index 98% rename from tensorflow/examples/android/jni/object_tracking/tracked_object.cc rename to tensorflow/tools/android/test/jni/object_tracking/tracked_object.cc index b243b84ef79..28e5158f68b 100644 --- a/tensorflow/examples/android/jni/object_tracking/tracked_object.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/tracked_object.cc @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. ==============================================================================*/ -#include "tensorflow/examples/android/jni/object_tracking/tracked_object.h" +#include "tensorflow/tools/android/test/jni/object_tracking/tracked_object.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/tracked_object.h b/tensorflow/tools/android/test/jni/object_tracking/tracked_object.h similarity index 97% rename from tensorflow/examples/android/jni/object_tracking/tracked_object.h rename to tensorflow/tools/android/test/jni/object_tracking/tracked_object.h index 6a85449c1e1..31846d3d3a4 100644 --- a/tensorflow/examples/android/jni/object_tracking/tracked_object.h +++ b/tensorflow/tools/android/test/jni/object_tracking/tracked_object.h @@ -17,9 +17,9 @@ limitations under the License. #define TENSORFLOW_EXAMPLES_ANDROID_JNI_OBJECT_TRACKING_TRACKED_OBJECT_H_ #ifdef __RENDER_OPENGL__ -#include "tensorflow/examples/android/jni/object_tracking/gl_utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/gl_utils.h" #endif -#include "tensorflow/examples/android/jni/object_tracking/object_detector.h" +#include "tensorflow/tools/android/test/jni/object_tracking/object_detector.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/object_tracking/utils.h b/tensorflow/tools/android/test/jni/object_tracking/utils.h similarity index 99% rename from tensorflow/examples/android/jni/object_tracking/utils.h rename to tensorflow/tools/android/test/jni/object_tracking/utils.h index 2e98734ec4e..09d06ecb014 100644 --- a/tensorflow/examples/android/jni/object_tracking/utils.h +++ b/tensorflow/tools/android/test/jni/object_tracking/utils.h @@ -28,7 +28,7 @@ limitations under the License. #include #endif // ifdef HAVE_CLOCK_GETTIME -#include "tensorflow/examples/android/jni/object_tracking/logging.h" +#include "tensorflow/tools/android/test/jni/object_tracking/logging.h" // TODO(andrewharp): clean up these macros to use the codebase statndard. diff --git a/tensorflow/examples/android/jni/object_tracking/utils_neon.cc b/tensorflow/tools/android/test/jni/object_tracking/utils_neon.cc similarity index 94% rename from tensorflow/examples/android/jni/object_tracking/utils_neon.cc rename to tensorflow/tools/android/test/jni/object_tracking/utils_neon.cc index 5a5250e32ea..1f1dff53127 100755 --- a/tensorflow/examples/android/jni/object_tracking/utils_neon.cc +++ b/tensorflow/tools/android/test/jni/object_tracking/utils_neon.cc @@ -20,10 +20,10 @@ limitations under the License. #include -#include "tensorflow/examples/android/jni/object_tracking/geom.h" -#include "tensorflow/examples/android/jni/object_tracking/image-inl.h" -#include "tensorflow/examples/android/jni/object_tracking/image.h" -#include "tensorflow/examples/android/jni/object_tracking/utils.h" +#include "tensorflow/tools/android/test/jni/object_tracking/geom.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image-inl.h" +#include "tensorflow/tools/android/test/jni/object_tracking/image.h" +#include "tensorflow/tools/android/test/jni/object_tracking/utils.h" namespace tf_tracking { diff --git a/tensorflow/examples/android/jni/rgb2yuv.cc b/tensorflow/tools/android/test/jni/rgb2yuv.cc similarity index 98% rename from tensorflow/examples/android/jni/rgb2yuv.cc rename to tensorflow/tools/android/test/jni/rgb2yuv.cc index b20ce580a27..6bb9e4847ea 100755 --- a/tensorflow/examples/android/jni/rgb2yuv.cc +++ b/tensorflow/tools/android/test/jni/rgb2yuv.cc @@ -15,7 +15,7 @@ limitations under the License. // These utility functions allow for the conversion of RGB data to YUV data. -#include "tensorflow/examples/android/jni/rgb2yuv.h" +#include "tensorflow/tools/android/test/jni/rgb2yuv.h" static inline void WriteYUV(const int x, const int y, const int width, const int r8, const int g8, const int b8, diff --git a/tensorflow/examples/android/jni/rgb2yuv.h b/tensorflow/tools/android/test/jni/rgb2yuv.h similarity index 100% rename from tensorflow/examples/android/jni/rgb2yuv.h rename to tensorflow/tools/android/test/jni/rgb2yuv.h diff --git a/tensorflow/examples/android/jni/version_script.lds b/tensorflow/tools/android/test/jni/version_script.lds similarity index 100% rename from tensorflow/examples/android/jni/version_script.lds rename to tensorflow/tools/android/test/jni/version_script.lds diff --git a/tensorflow/examples/android/jni/yuv2rgb.cc b/tensorflow/tools/android/test/jni/yuv2rgb.cc similarity index 99% rename from tensorflow/examples/android/jni/yuv2rgb.cc rename to tensorflow/tools/android/test/jni/yuv2rgb.cc index 96d9632e572..91c163eec94 100644 --- a/tensorflow/examples/android/jni/yuv2rgb.cc +++ b/tensorflow/tools/android/test/jni/yuv2rgb.cc @@ -16,7 +16,7 @@ limitations under the License. // This is a collection of routines which converts various YUV image formats // to ARGB. -#include "tensorflow/examples/android/jni/yuv2rgb.h" +#include "tensorflow/tools/android/test/jni/yuv2rgb.h" #ifndef MAX #define MAX(a, b) ({__typeof__(a) _a = (a); __typeof__(b) _b = (b); _a > _b ? _a : _b; }) diff --git a/tensorflow/examples/android/jni/yuv2rgb.h b/tensorflow/tools/android/test/jni/yuv2rgb.h similarity index 100% rename from tensorflow/examples/android/jni/yuv2rgb.h rename to tensorflow/tools/android/test/jni/yuv2rgb.h diff --git a/tensorflow/examples/android/res/animator/color_animation.xml b/tensorflow/tools/android/test/res/animator/color_animation.xml similarity index 100% rename from tensorflow/examples/android/res/animator/color_animation.xml rename to tensorflow/tools/android/test/res/animator/color_animation.xml diff --git a/tensorflow/tools/android/test/res/drawable-hdpi/ic_action_info.png b/tensorflow/tools/android/test/res/drawable-hdpi/ic_action_info.png new file mode 100644 index 0000000000000000000000000000000000000000..cd333b6f080c08e62249a8adf3e4ce5ecdd8d086 GIT binary patch literal 562 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 X-gUJGx}y;000000NkvXXu0mjf2lJ~Z literal 0 HcmV?d00001 diff --git a/tensorflow/tools/android/test/res/drawable-mdpi/ic_launcher.png b/tensorflow/tools/android/test/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b75f892c462a12cae4f09851d019db23b286f843 GIT binary patch literal 1847 zcmV-72gvw|P)IUh|>tDdF{OR~iKa}pSq;6t^L2w8&VN7(&lNb+Qg> zi$=&U_b^ucNfZz1OmrG4*IdI@=dG)(cA$I<1VIZSsLDvHA`Rk=?0GoWbN`7&aFQOt z{5%9|K1w78&23WZ&pA?BY7#s5iQ;M{qfOHJm{0lI;xSEe)V*_7-FSO|_`~Y?>U}ML6i>w$&toCtl(gp{qezBHAe?-?ozl(# zn#H(oJc#A9z)=iwMPYj{SS=4?a5kbi@$)dS9Mu5(S%_WbtpMYQ zacLm21)#`#V=-2yf#vvQbgK|$Y_Tj11Al6hHHQ-Z>v<-p0Q}*(Yl%MOCc28yq_|z> zMg42QeX0Uxr-wu3<;m%+V8)o}$51*i$u5L!jWuc<^Hs2v%m#LkFEH8eEn^^n*(rcI zeeNA*XM`x7oJ5*eqJ4k{qq)O@|0>Ff((M75JwX?k6n(Z*iir`*QwPN%Z2YihSvu z#9dUvm`1dS^dJD-mv7W{44{oLx!#VI%=Q2}(+B7r%>BDH4guO^y8e7|-b_>Sq!LQ! z)1btMJa-EKzLz;v!Z@Irf{?Sqxt+0{1F*{%%-gWiCaZyZ#}A)%4$uaqC)C#uG-o9& zG_9F@iHh?SjLTFKzK6;Wu`v08)!Z>%5?n9xk_)QyAWoZe+g7Hq36SlM!8sN4dqC^6 z_5gPIR57Pk40TX@dZG+t3f68jCXH)gcD%sx-{?MvhHIW3Y9rYERWZipnu^AFZ*yBq zv;v?q*&ZCTS9Osth`C55jA{>iKR~t{aG#GOmLu9)>0DfzP?MpSi=?eiv&pUcF$YtE z*|OwN*~L2CTFY%Lr!VrN^OkQguF%#|@gprV2)Y1aG6q|iJm0%~aeS(9^+=#8Q@2UE zZw~+qkZ=sMm>~=sG_|!sGlX7-AK%>wY@NG2S7-M7ec+eNLFNx;?`@3ty2a%B+~f{M zVE-*PGZt*9UrUQL%@Wc9)XcvIaoS>|-Io%B#yb%h7 zG0BrK+lPpBj^|yjaAuz6^8ShTS_+o|XxR^Mbt9%V?mW9cq6FU?(^SbH?pNuK04Q#g z=XZ|#KG(}7zC`~m06Y7EE`Tn8M;XAJK4+c0hkY;rPlLI5;fpSH9%jyXE243+-;L&7 zn{5D8K4U1u90=RmV0gc;tDQ#n1fCylN{cR|7LH&Qh_(RO>oEJq-x01Kj>Bi4b=4!) z9w-CoPf`+0$rCH6CH^$MJ%nX*y=$1FSs8Fs?=K&WJPL=}y||Knp6s3#adg3(>jnL~ lVCCe}mCk{?uCD8^*Pm{ukk&Y%b+iBg002ovPDHLkV1jI0g^vIL literal 0 HcmV?d00001 diff --git a/tensorflow/tools/android/test/res/drawable-xhdpi/ic_action_info.png b/tensorflow/tools/android/test/res/drawable-xhdpi/ic_action_info.png new file mode 100644 index 0000000000000000000000000000000000000000..eb174e17169ee14f21229f3c30cb786c82a8b289 GIT binary patch literal 701 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!Rs{HjxB_WILqj7ZU}9ooU|;|d z)YjGpGK`Ilf$~6=Kye5gC}?VG3Sk4KWMpK_%*=pXxCl@Xs25@?P*6oh1*iq69Vh}M z_4W1j^z?uR0;Qy+q~N-Ab#;Mk2p6aT2q3nrtE*R7UatUZuqX-g3uX|t2+OW&5b&GD z6EP{A(RG5mzARUoEvImEo!-o7wwNhK>@F!&Rn^p)__-!_dk9v_HHdL1iSRaGNPEe^ zz}VyI;uuoF_-2}G(qRW42GQdaG>zM4O8)!5$tWV%tVr^C%A8csPp^MIpFd^#w`K#L zKU=0x5*JQ&N@|(u5qId;FE%MNv+F9F(YLJ`tpB~cSEsdg|Mu7S@8#!vD)I3#HZ4xB zeDFhq!NO(&%bYn(>CZp4d^UdYMdjxIn=x_oChDh5mf-VS7%^$-l&*rRgfsUaPWnIf zVZm3QJm;{#@p{_MVp`hQ>)E+J@`Yw^&DwL4>CKwX*}fLt=i_A;2+lugd_zS2BHN0u z*$gIEvktkb=otxk%$YX->@VF;VF$OEmI9SoWziF|&Z%1u+&lHkK(a}h5q&)TT(+Nw;XRi!Qs0ry@9HFDR>DqO>HD`>u&OUt2b@nu`p#hg0 aBZC~1X1{Ebo*gi589ZJ6T-G@yGywoTg7j?w literal 0 HcmV?d00001 diff --git a/tensorflow/tools/android/test/res/drawable-xhdpi/ic_launcher.png b/tensorflow/tools/android/test/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..36e14c48d14a8d3e5bf37d3caaee661061cec3be GIT binary patch literal 5666 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 IM6N<$f+&LGU;qFB literal 0 HcmV?d00001 diff --git a/tensorflow/tools/android/test/res/drawable-xxhdpi/ic_action_info.png b/tensorflow/tools/android/test/res/drawable-xxhdpi/ic_action_info.png new file mode 100644 index 0000000000000000000000000000000000000000..9654fd3b416d195026df7904de364ac898d31e72 GIT binary patch literal 1082 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy$S1^9%x0%>DoV?#qjBQVg{*9US9 z3=B+6On`zwHbflAh5#TJCE|3kB1?q*U(bm?6=z@p?1$A|GAtnRaKq(m+ z86X2_3q%>j5H!6&u8N8ZP#4@NJv}{$E{MHAH$XH(yZ~ea4TKot;NSq{0@>!~=0G<9 zH3CV92#}$pqx0mI_6DG~ppqcJUDGbwVYJQI3PN2}^wqUp%)+S)Q_Z zfOU>00|V1SPZ!6K3dXlLt|r}f5NLg9Xg2Ym0nmQq*?<4>2j3{#`Y|JQwMcFGG3Crk zm5ClILY(d^OVnncero)3%9glavC+GqC;y16c2AFrTCsX}d&9kVcA1_38V@S2X=`Ku zwKP+CvEBMl?#Gu{J{F!_V`yq+JNfLFuc@1iFE0+RF*GsM_MI{N`R3N6eX= z;n<&;FU$9D>e{$%pCY65>}-kE(Sp%Q)$GaT{&5?(cW>OREBJ<=c|+BNEQ2q6{R|TK z`V0OZW{{ch;jDgqMoaGV=lhutyqu&l&5!X$VQ#xF!?|;=rFD!4rX~N6VYTpXoyF{X zXjO3j+_~%)rq|b7+q2Fnmn;-!IPQIrz0T6MHnZ}##Di0b|0J3E{FPa*x$;rJPuZ!GwJbaQuV*&!eQ)41;O<+;9&zIW^B2|N_%B}>rn|=9 z+@`^p{c4-*%?eG%U&p*}T4^z^jGewV`M<`2M!5(3eui#)UwVFp`~7{{>=UG&?Hm65 zRGxBM@xz(F0xwE>Y?%{Y=UaCikMru-FCkQKss69&iofdCr}17{H|4#u3`JO1`--#f zmtJY6lihbDc1G{UEq5;870)lUnfIyg-jwh2kN7HqlAAn(<+NFVdQ I&MBb@04EQVHvj+t literal 0 HcmV?d00001 diff --git a/tensorflow/tools/android/test/res/drawable-xxhdpi/ic_launcher.png b/tensorflow/tools/android/test/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..06dd2a740ec2abaec4919c991dd17ee007ffcf28 GIT binary patch literal 10264 zcmV+zDCgISP)QpuB;6)I{h_qay~Wy}|7)E8V;=zr zzz}F=vQPEZAu%)NdseS zZt&CdGzhVLeAObqmSAvA6nMY#}BtQ=I8SSsL_x3BU+`6J+cu`{U z5*kl~uAp@enxbKW`ry2TX~&w~RT;m3mwfpq`T1+X!o39U0#l#>8Xy2VH_%thIF85K zekZ3j&Y7}6lC9C)y`ath52P8qPPKQQI69BG6dp-LKm-dOtJ^5+XmZKobO+N9%=MR& zYPZMeJwWzw*??{=c&9FT{q^uwSklDIzV7Bp01vc*R&(>;-*BV%&-(h|Il|s$ZHi5a z)APjYG}pcf07$pbmi0~XR)U&f}dYqj^9RQJ9qp*RDUgQZW5lXyU8(dUqXa9{?O zU?C$6`-IV^`0125ovO%h(rolx+HKd`lo@cyGy#b72=x3TfS)O6{Ge6u{@QA$57(LA zKBv`SlVFf+hF6(k~Qjmv6$`#MSQwj}M_ z>KAXgeD!wIzIroVd1)Kz4_W-y1c=XXG@3^s0ofp^b)x%|~?UgvWanXmtS*iCnsShqmIM_s|8(3ICNHG!+2h7YP@{4~T zVTK_H7#I!!lN_-G3lN5h6g7mAlfh5Vkfb+Bmu}K|b(<@H$1YIMq(FSOW||ww0V$AU z>0+p-=cU-cB-2~pwR-y%X%1Fs4%WfCPsD7mBLXIf2w#Ai`9Pe<)M45qjx*x4E%oj? zE`LeWg^y|JyV@SUp8&v+Cj`I%{c@wyd=KOR4`hr+Er$R5Dw7XR#bW2Igvm?j^pZ6D zuM#Jh2t|iD>49^I^B^XY9i%_ES^l<-)SNuPeUz~1gv9`A9At*g@PULuqmh^+t%SWJ;50TDnD zk(2-PiGd_w4s4M)OXWS^1-((Km9)4c+HXCq@G+OTNnakpa#P6E^BiG32?Y> zm2&q#Sg7}Ju4GW_pxqHO^0iA^rOW!Sk_{EGgH;@2)#yHRgI$^wf zDXZ^Z)$-vb!swD%xk+r+v9JW%MUoV8?$hP!86hH=IK<5iB_2~xJ-jGkx@5k4Uh2J< zHDCVNLjAV2&fiX?dk@$HDxm&+wY9l{+^4#qu=P6}h6dP!>49ybI2Js;7v-=zo zo;~*2PiBCDDdHO>d91xh+9GM)vt;oO>8X!&@#T+n`7gTFME1JtuO9$mCIFj9pr31= z8!2c`p?zYrM15~PiG$a)8C?B4`ch3G9&o@g4x7N0^ut z_apV7&FG!Y#CNWdE!|@H@@=lZavvyX3P3z*BPB0Tb5{%KHdbz=OfO44_>N5PeUEzg zWt#myVbVpMM|=VT_`@4y;UsVw_%3Jz7QpnFyF`Ug6PnI}^@-CialDGzH^lh^()D*$ z+y^cezXL>I2n>LVC&ZIn*2K)7@1p1EZm-nwLbCP0ot5JDB_H=UHB2u^7+uE7S(`=K zBGx(L9N<7W?qr}L;Bt@*t0UF~EVLh~17b*0KT^PD4Y&Xn5R~J=j3+3j1{yI7h%4}| z`{FwfNc-1GS8qqxy=Senx03d$Z5DpG%gQ%LKn*lNJnk@=JjX}#^sy=}mJ%(_xHx=+ zdh174ZC{Y)U<0dG5$S+yfq5ixfFKAbf&B4Mvi$yf41}R?K?Wd=jn!4jA((2H00E0v%2SW{=w} zxcl#&p}M~wA2)Pab%|zpMZ)kELa~k(i&*R;;=wtPV_&We2a*6DQ^BHx02V;Y8mk&~ zx`34npdeI8+8~_<*Re)0bQt<2*cO4eE5n~JCFA}uYfKiEMe9LGMrB^ z+=(Ru#er{OmZ8C8wPNG_N7}>GAS#3etcMj1daw&xBbh@MS|n$C(CQ#=h{*9b9e&z2 z;sg-~=CGI%$D72-k~G~*)(rP89e;?~+b&)DkUTgb0*6m)@#GD3(h+Cpce_k}e<@6N z*ApF|B8<*xaqn@Z{0d=w7A?<%wQw$(wUf%H%azD+df7;T6pMmY0Sf`GJyr*7GKONx z4A1~(5F$1$p{_9Rks6{aAUY(AXzGzphHE<@02P8AM_I&}ZL%>0Ff1-$+5=evJ0;e1 zZ8+`e^zJE_v`_Qk|G7=~@;z4n(jB@<0V@TdpV#5ZGu$AjKpW^02B%^@yx_{)S05SY zB^M4ZN-Wo&Bm%WN+w1rzLS{N<9Eb<$V06*CMh81sIfZCgR0#Di-s{FEW{O*i4#!A4 zK{^S^Mi*(f5jO#CfCz9x5$TakTf`zkt4*o*dq}!TwtQZjgPShx{FJo*fHDqf5rOb| z8`+X)(AecUc(cRwLBFZ?SA_C(Qr$i0r}r*fx%~>^;EILe1xzz6W``TtkGuR}03;v@ zs9^!j3^T=wfK3Xl7=s<*htmw2fIZg4L8tx1IGI8Uk~*BvFdvWv5Cs&$zIYPy)8I7g zJ&Flhr&wG-{Hlp8im=M~L%8*y=RtKVT4?8a?|}R#LpFX8fckke(BWK88_4VG;hC)7 zI`7BtUtxOtb!!Iah~rgau?ArQvo4575`VI779Ly|^NZ+sh&@(aU~vzc`tjF?&2w~2 zp{%eFh_^~~dw?wDxaAJMFStcRk_NN{t4|;aX&~M|`C7W@^bBR)wR(R^MjyQKI0@;J z)ep$mKVa?hhrr}{GmztVf7kPaG-H_LRJT`}vRcZTn-{bkyiBq6sx-UbA&gEFr){)u zA@0!0$_a3cxf}ow2&jQM%o5B}v;>_rP>vx~$8!WXAcV(4%L)LQEMVFJO&~F(Wr#~a z6vPnu!kcY*DhX+r69k8b6l?m#>8jx_lQe6P^;Nvny|+s(rbA$#BaqY|{TCcJ+10=G z)1v2<#0JbbDXgr}oqd>ibPrrV!7aCN{VtN0h^xRN5RX3^;T+CDEk^*F(-MZN zb#RQEzQ~6Y;BAgTB6t2*j*Ij!`d8#on?=gq+wDs4Ew$okGg@_C%7;I;diy(4@1M4M z{}f^^#3kTort!iPmlH(MgRJLzoWu(kLtJks^QyvfL+$eMq`E6)aZ} zKn!>yIgUm)nSBO_m^Vm>x?y3mWM+$~oHf!4_!l?=iB$u>DA`~6pU7wWkfF`?TT2Xn zWiy}NzNB$-QM9@!ae4`D&Z1Qx=Q1!4{^TN#Bp?}P9-?5uuzL7N&68wcT|-my%rJw; zW_qxXl~W{-xR&CUJGiABVG2wDQhFm>3p z#F_$&4X9v~0hnUo9X>VpIShpJ9F_d9|F;h(1AC8^OL>82^qLe8zaiDV*DOxYqD>Er zJ%s#;ft*8T<~a$(gG({%V)W2*A06yrWD>+j>phcNUX6K00W#i=TmXX(G4Un;V5K(?Z2LJ=Z;7IpVg+B zuDR)h3tq?PwAwjOwSQT{_#AP19<7%#OMnEN2XQCSN@{qJ97xf+hPuL3F|E+)2rH*h zSAcQ+m>u5e+80eZm_1RYPok$eEIO=iu(HN=K-xLdN|7`oKK`M$5t}u+S(uerf?_(t znutwCP);G#m^RFqrDqWk#}P?DI3hU$>X$9kkp=heHTsECh%Rga$B95Cbp}j+^R95>h7)+Yw~Bi(g;Ft)@8N zAZhi7laMY0zc8!e)!1~3l>@9UAq0pKOgW5U0*HJWwXo)Y|7Wj~YwFVd*Tt2uOW1vb zFnSrSmIzfFG(lz&$2i>BCC3+W5-`D{f(m90rUg1Ju}2~{5Nl2bGd?AXNJKy|Z>I8x z=fA!HQ6CGd!2nSY(#8~Q8nBKbd4|hUz(5SE9cC3;HdygU)8fez9;zeML{88^I=u0h zh=i2(?yHhbUPa<5OqYQiaS1pF2qGugM%u%IL#qNS9;w>F>Kbb*2sM~-;+Ppu8pM|- z;!w?q>Jjlc;UrF$HZ9QyyXe3pDM&XZ*<6A3K1c%+(eXYy+=dXas1U~dg$f~kYRlSE((qKM zT(t4t6|0I>nkqvz197-x?IQT}L|F%PX9Pi!&KPM;v3d%o&+%kx;Vzotv`*U8J~x;8 zByWqfoj55$Oz@wk;sxVq2nK)y1hWJ}g4TkShEAv0cps`M&knQ4G8Yeg-`{epr|!oy z>wDaLxa{w|SLrTV;0iEuqjR)s!a&Xbg=^3kvGngfq9=^;$IC-8w1Bp*_L5M+9 zn-EO`z!D1bZ|w==>@CHW$NiNY8iq@z+fhb^L@eemEN`|=wEIQ(20}aNXCIQXBl;;sM zL(B~7*lMw}S0&U7((}&D4u{!OS5d zJZtRBI>v+W^H2o^03BEG-~g)|T;34#fLmIK@JkHFZ6b?qPMrrbB2dh!HIE zLJ(m(nbHB}3CgAKY8x7$28QwXPG?l(JrTL6?aoV5muIP~^A_p_nldAX1jK;|@+B^5 z_Lvw&Lv7l8j%vI%9F3G;imE}k2iU=wn0d$((n|}_Tf!v*K4Q(3SPZdZ0@VO(N{I1f zm#mY=0G%n$G}Q~=Y?3pVZrT3!1uds{ZRh%HwtXkn@xHUzbZII%Fl&n-rclhvb$LGP;ZHevFdzcTl`E4r)bO1GIIuT=W#4YUz2Ar%yI2o_eJv(y zIJZpHE~b49kC?}R!wB-rMH~#l5U+?dq<)CcMr4b7(q7w^&dNKqH{S8x^`jfeFP!Hn z1m5F?!DWzkAm$JgtOT1jpa;l`NBV8hXR<$P00TnW&+DqaGWMs=?pl`Lh^vzgw{z!Z z8xO89Jve9O_=2gn1Oe=5cRLyeW?*10;#?z1YeZ}Ln(M6Iw0!xNTe|SEW()VFzjiOC zi$`C=V!n9f+=qeiT;f1JO-P!xpvgaxRS7zY*kB4V;M;xZw!!$aIlRHHx%8uHe(6UC zz(e3h{owXe{XhL{+p>LQ+xFZ`nAM_jSu`%0X$#d1GmjvLCi)Lq$_|@HMO>}oDsjm~ z()K=SZ(I7CZ^`O6KJ-f$uKVx)eIEc5U<@366P;cCD>(`U|2fYsJ_VNo9k4Do4cMf@ z$_9eN8il3-Cp-t(OdN_xF(a#+{=z#{>)X=m-m<#5#pK{6ro&fdI$G0eyg-N@a02GQ zFc1Ue@LmTLB&yGblJy@x(p_n-yia%SrsRvaq_cM4x0m;Ty~A&FoO~Y0Ofe8MFDB0* z8a;itr3m6N60i(31?_?@Vv`ZNJAtBt!(=JPg_;Q-=yr}HB2}C|J?Z|f|HKHm!S=^D zLpi-x|LT9YWp~~Sy1#W1ji=G+3L-5Lmti=}oS1@{h`4CZsUZd8rlh^wbWdG#{qyhJ z*&qLI{{6rABVYiGpL!6OFXwiS*i;sSs6}t6ff&v^uwdJ)k%gaSX68uc0i4nizzrDQ3nq zLqI&Z9Fk>_C9K>*cWMYzh>;UR5DWnkMI0`1WE}^{O!h@5>Ve3{#sC;6=dbQ3a3j3+ z|8CmDJ1>QsZw}+#_ni%QyV8^`jUjj1cuW(Ld@7w&`>ucXLpk%^-y%Qx*;t6R z*k}qNfGQ`32)Nuxow-i0BmLI8Ec8!v?gyuU8khprF}$o}fC2$101ZiY&*#0`_g2TO zZr+i+drn8Yr=%G#(#@29qn{kh`f9hu1TD(r)xktAsI8JP>-e$#_GXpNa@t`iJAEgg(u7-F1k4w$|-7~VCiK^2gU|L!@@-n{h3jmDSl4~4hG!}2RSOZ~Nk^Ro$vd-K#sH_zwRFKT zI44!pxcmR5WAFdG6n*cGW-AZVrK`J~`fK-r<`~}kGCS&7i6hCU&D=xKZnV z%)5=W`if{`TzbvAKw119&BHd zuoa_|uYajFmnzcz=`PW^U7R1t*5Mlih2j zIkLEhUtR|tJI4^HSA?QVJzSS&=Vhz9ccpdq9WU-fs)LV#YruG>`U^&+!%4^h6uI_? zJDuM4+TyBbJvVyijCL=wQiMZ>eZFq0Z~y3T+yxv^0SEQ{>uJ*zwbQT-wiD~>465sB z=nkx)RtK<-GnbSbP|`ll*Deois>xqNJ;K6KKkY~{kcPW(2#wHsCy zw{5ud4LR8PrWK>JIvsVSsRj458{`E605cGq8OPKxGsH#lNo_taq`h*(_cpH6TDa*K zFMmY7_)t3+w!$=Yd{LZ=*>8&8`HZF}wqKJ<;-3JQ-0WgR20w$Pw zv|6Ly$s~+UTeWvp(%t)nQ}0L854=lnuu|Ox#=!JYG}2>e0kaqBy|4fXpg@)X#eb{@ zwt4?|cB;XhJ#M|ft9L#qar4z!8j(I2bVySAl@OZ4$^BOtqhk0 z#5JH5X#Gb`o;pyES%QT&8dkAT3gMhtSdti4wYYZ5O+LJd?>{6vv&GWdkkREa8ykln zjeGG(zTgp4fC>mBk=?Af6lLYY$UDEwVE3F2ADm~nciBdJ7nu$(TBtKoO)=vW5e*^Y z@&oeTUD_+x$d<4B{<-U#b??zR^}weq1Nz-PpaB{y#tkv5GqGqKA4!hn-6s*J-9j=! zTmY#NQ&0tqzs&1{0D?tFm^xy4RjQp;(*Aj!-h1Hk)sNzWf7=)ByDaS9hmG-}+>Cu) z3z|? z`tf}|k!PE{N7{?HPL8-5kp@Xh#2SbO7CwKb8V6<$5kLiNdW2CzoFdImPbIsE>u*}# z|G;;K?;JXEe=QAkIO!FDiu13Gv-7X)XK)Yb0sZ3N{Aa$&&39jsUfCy)9qDh}cHjJC zzn6UDZ@2>tfKdX?&v^q>j(@xzB=6#umk`}U;yzG;8Dhur`XGSJE=pHNEZUg%F+C@e zozo<)36|pqdkpVvv9PH?^R+P05sHEaM4*V`-m+G9U-C3}Ei%_$7)F`2`&fUMjKnwgYu%84y50`rZ@iYyLpmt^ZFmF z0Q)){=;{4Y1S&v!f9F3pcHrvk1!pmfwnxv`gYNC1S&8O~gr_Z%kMsn$=TKI25agUXx4vjpyQtB7n)2yc z|F5-y=BQysM5AHTi0o9jMfXSoNr5qe7=CsI-_LncVQ!%L{wQMO1^}y4OfyJpV1f|% zrI{OOjx_-*BBB9O1;^Y#bAA!R&xir5A~;3-*V90bIdi_I2AVTB&>X=G6hfe+oEvD) z=Rm{~?`*z_evxnvL_nV|F$gEaQ&YEyA`%hT02N7IwOl*Q4fH}F;5;}71c>_OKNW>2 zNC0U}lhRsC1?Iww&^R3ePWY1i>Mb>+h z&eHAFEe}~pUW|6uxq%$g?jrpzga(NbE8G(SL;*YIsAH-aYH2=oowYq$OCQO?+23>R zGw(|0?8hu`9MHFl7l65e#6g-Nt=SW=F@o3=RSs(eqC90JIqG|=U>MFvL=o5NKzoQ#JzL93VhjiAaKr@d(FB;B1k%&TWNTpaUSmm(NK_j4Y^xH*H z74gx0R+DrqX)V3yI_n>6*1P5Ur$3h7sk^bgbSFz~pN>sl#F?6kb<-$7J#XT!a)hBGfXfA5lk=x6eO5)H9nh?^d8bV z`>vgO{SVURZ@lln|Mz?V8~`JrI($Rwyc+*iMrMY}6>)~82DxIjKqcT+!4yfyv^u-4 z)!riSUngC>EuH0CKJDM|dFuhN3luZ+gcsL5a|0cHrqqM94Qm+^6{4Uc2O@@7HDYwW zb0D3K8?tu(ZMpQ9{7Ux5pZWk8%=GlEzs>uBzOFbB3~5CZhmy8;$vfM$`ybI>{He5- zKFsp`Io~fkCE?M><_EzsF-}qa$fx~w)+q@rW&Yz(m8fw#OYH>QT!ObIX zlII4RW2$J=&{U01x5MXqN?>lFc_eabgxWYNa|6wBB1Yu7V{V{1a|6wp8)(j)xq;@) z4K!zNpgD5`&6zVd(44t}0(0gD`uqd}&crw}bLIw$!4gGH8#PrmQ^m}FrW3;qo}M&S zGYf{PSt~J~Yv%nx28h+A2CX77L}xMTBXB>PH;y{EGiPT8>$ze|7RY7tdqsY z`E(*G19g6nB;CWg2}S_o&mQnSwy5;9VNk@EB>51R4NS5<=kw8MLYzmS7lGb|(rK}y z3kx^hWc__h+kLBw%fvbr(*yua5a*6P@|Y>OhP1O!+TA8w_}DF9cwe&hyJgZT`*Q<5 z_ZWZCA1m7sN4KuuOw_%plLOJct;WicqG7=__8gX&T81DX^0O!;B1fKY2Sa>BBp4Lp zlA+{_H(l?{4e6YEM>qe953_Iov8{C|0h=4>`A2~ui`_koi|sr@zRu3wjp_gNFHiKrwcK{@N2a4LW`c9T%tS{ukEx2d#dEG``fm2JC)IHW}ya+f_T6j0EPet2Br%3 zNyO14ucfuL;}>6ghvh5p`=zVz>*?>`PCKoAq_w|Y9#rcrm4Lpu=9wFa!vmb_OlQV9#+J9fcOiNWb0N;*Q}}65b294#2`2oya-8aATB!~>pbvT@1eF7Snf6`)6$ zHk}*jg*DR3)uOXP;373JYUF<|oyAe3^}eg72Ubnbk)=JHYmu}o*Iq0wTe>Oj)f@CT zKFl`0dyUI~nloo^pgD5`&6yi$ e&fGwA=KTL~iLYD>hCWaL0000> WORKSPACE android_sdk_repository(