(本网站正在更新资源当中!!)祝所有程序员的世界不再有BUG!    本站所有资源均是由站长以及”资深程序员朋友“组成的团队专门筛选整理的,所以,本站的各个系列教程,分类明确,课程优质,学习路径清晰,这肯定让您少走弯路!学习不再迷惘!    1、失效链接2天内处理完成!     2、任何信息看到第一时间回复!
需要软考复习资料吗?点我!资源链接失效反馈帖!

[区块链系列] 华华版-全栈 区块链在线就业班

[复制链接]

微信扫一扫 分享朋友圈

程序媛 发表于 2019-6-25 22:38:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
4 f8 ], d% {1 X# i. W
├─1阶段 区块链项目开发Java基础% E* O5 k1 G9 \) Q9 ~" q' u/ O  i! @
│  ├─1-1Java基础
" N* H; _: m' q9 [# n6 k0 a: K│  │  ├─1 编程语言入门* L. d  @& G7 T, k/ W
│  │  │      01_编程语言入门.mp4
: E: B2 W6 }7 `1 v. H│  │  │      02_什么是编程.mp4
$ Z: B: h# o, I) u: b8 a│  │  │      03_程序简介.mp4; `* G* k0 ~( E0 X4 |
│  │  │      03_程序简介.mp4.baiduyun.p.downloading
+ N/ v+ D2 \# @. ^4 {│  │  │      4 ~& e" A, O( x+ e) d* `
│  │  ├─10 空字段串和空的区别& a# B0 A6 _( s& k5 B; ?% d
│  │  │      11_空字符串和null的区别.mp42 A* |6 j+ C$ j( o+ X
│  │  │      % E6 H9 k2 p- S" Q8 {
│  │  ├─11 变量综合练习
# l/ s* m$ }' G9 w7 p3 u6 M│  │  │      12_编码练习.mp48 q, D& v! y; I9 |, l
│  │  │      13_变量练习.mp4
7 l; F  e( Z  c: U# q/ m4 @( {│  │  │      14_变量测试.mp4
& ]! \1 v: a: L* g- g  I. ?% R│  │  │      . L( @. Y) V, z# ^8 r. @
│  │  ├─12 逻辑运算符8 F4 n6 M: d' X* L2 \. i1 }' ~
│  │  │      01_布尔类型.mp4
  f% k) A3 N2 F7 L" M6 u│  │  │      02_比较运算符.mp4
2 O) W4 G3 I4 ~  Q( S│  │  │      03_逻辑运算符.mp4
* E5 b4 ^' ?- s6 `* E( t4 m9 Q│  │  │      04_逻辑运算符相关的练习题.mp4
8 q0 m; w- t' J) _│  │  │      05_逻辑运算符相关的练习题.mp4
+ `6 L, `$ H. p* _7 U# S5 w5 W( D│  │  │      - |1 J) t0 L& C# P/ b
│  │  ├─13 条件语句高级
3 y. T5 F4 ^: ], v& A│  │  │      06_if入门.mp4
4 S! G/ b/ H0 t% m& I3 l│  │  │      07_ifelseif入门(上).mp4
! A: [, P$ F: s│  │  │      07_ifelseif入门(下).mp49 _" x0 q4 {( |9 {2 j
│  │  │      08_案例之还剩下多少分.mp4' w/ R$ d9 i* b
│  │  │      09_if语句以及逻辑运算符相关的选择题.mp4
& \( |. p& p- J4 ?$ e│  │  │      
( M! V' W- }  t& {3 \6 m  @│  │  ├─14 方法专项练习
- ]' P+ A1 P9 U. K& C6 j│  │  │      10_案例之吃饭和拉屎.mp48 B$ x! z+ j# c8 n
│  │  │      11_方法专项练习.mp4
4 m1 U+ C$ J& f+ R│  │  │        R& h. i: R8 `+ K: l& A$ x
│  │  ├─15 数组
" D: N5 k4 _; d. _* ]│  │  │      01_同时声明多个同类型的变量.mp4
2 Q: y' ?" y; i6 P4 y│  │  │      02_数组简介.mp4: F# @. `! L# k2 p. A
│  │  │      03_数组的第一种定义格式.mp4( }/ g) j% C7 ~; a
│  │  │      04_数组的第二种定义格式.mp4$ a# {7 L) q7 x4 p' s* {
│  │  │      05_如何获取数组的长度.mp4, Y  h  j  [: Q3 M9 ~
│  │  │      06_判断数组是否为空.mp43 A- S- \2 y1 T8 ?' }5 L
│  │  │      07_数组的首尾元素比较.mp4. D: t5 C7 G9 S
│  │  │      08_数组相关的选择题.mp4) q* Y0 N: m7 f8 G; @
│  │  │      - p8 J0 i6 S/ j
│  │  ├─16 类和对象
+ T! R' s7 j' @! B* B' P│  │  │      09_面向对象极简介绍.mp4
& ~  ?1 Y' O' o* s: m│  │  │      10_API文档入门.mp4
% ]9 n+ i) [5 y! D& v# l1 a│  │  │      10_API文档入门.mp4.baiduyun.p.downloading& ?$ w. J; |3 l$ g
│  │  │      11_构造方法.mp4
% `# D" C  v# G8 H2 \9 F& i% V│  │  │      ' l  M' @6 x% |
│  │  ├─17 字符串处理
- I7 \6 _$ A7 R& F% l│  │  │      12_String#concat()方法.mp49 q0 |8 e5 y( O  Z8 t2 W. \
│  │  │      13_String#length()方法.mp4# y; ~# B6 N! Z' ~# z4 r& o" d/ p5 ~
│  │  │      14_String#isEmpty()方法.mp4* `+ @# U5 K, h6 }% V
│  │  │      15_String#equals()方法.mp4
* ]+ u1 q9 h$ d2 g8 x│  │  │      16_String#charAt()方法.mp4
- |9 f5 t5 L+ t5 u2 L│  │  │      17_String#contains()方法.mp4
) x5 @! k6 N- p" w2 ?& i, ?, D) z│  │  │      18_String#startsWith()&&endsWith()方法.mp4
9 Y' p( X: \2 B  F* O$ j# D│  │  │      19_String#equalsIgnoreCase()方法.mp4
, r& G. v" L1 w2 Z( A1 @│  │  │      20_String#indexOf()方法.mp4* E. G: x1 e- J, g* J0 ^5 `# j
│  │  │      21_String#lastIndexOf()方法.mp4; d" i  H5 X" p: y, _% Q6 `
│  │  │      22_String#replace()方法.mp4, I/ O: O+ Z5 f! \
│  │  │      23_String#split()方法.mp4- z3 F- m, y5 U, n3 l5 U
│  │  │      24_String#substring()方法.mp4
  {6 n% d/ W& v. U│  │  │      25_String#toLowerCase()&&toUpperCase()方法.mp4
& H3 @0 y& M- a+ r6 I& K) ]│  │  │      26_String#trim()方法.mp4
+ k: |; R. D* ?+ p0 T* i9 t9 |│  │  │      27_String类中的方法总结.mp4
/ m' o* i3 w+ [, ?6 X! \8 @4 h% P- n│  │  │      28_String类相关的选择题.mp4
1 f$ e3 v+ b* m, d0 O) V│  │  │      
9 B+ U6 X# K+ m" ~│  │  ├─2 变量入门
7 {5 n! E9 p: Q, d4 L3 K) u! _│  │  │      04_变量概述入门.mp4
. r8 J0 A" L6 `( |& H$ i$ _│  │  │      05_定义变量的格式.mp4
! O) G* a) |1 w. q) L, {6 m│  │  │      06_变量名命名规范.mp4
: d# O) T9 w  v# V9 `3 Y│  │  │      07_修改变量的值.mp49 a1 M1 ~4 s3 m* d  q+ _8 N
│  │  │      08_常见的数据类型.mp4  n# \0 U7 ]' z/ l) i+ U
│  │  │      09_变量相加.mp4% ]7 Z0 n  r8 c" m
│  │  │      
( ?; f' O, I6 N1 s% ]│  │  ├─3 老王买瓜案例, O* o" W# E0 _# I$ G" i0 O9 K0 m( m
│  │  │      10_老王买瓜案例(if语句的铺垫).mp4
  C( s9 b5 F  B7 }│  │  │      1 a7 O* I4 M2 T: r4 N9 V
│  │  ├─4 条件语句
0 k8 w% Q: x7 u% Z9 g9 i6 R, o│  │  │      11_if-else语句.mp4! O1 \# W/ W( q" a" R5 l0 n# Y2 h
│  │  │      12_if语句的练习题.mp4* O' S  K! ?8 f8 C
│  │  │      13_为什么要条件语句.mp4
- M9 b7 P' H/ H' j% ]/ z│  │  │      ) P7 L2 R7 L; s9 C3 n2 f) r
│  │  ├─5 循环简介
5 G$ K' g* I, {  h3 ?: [│  │  │      14_循环简介.mp4
9 h% b0 {! g( ^! D! J9 T  M│  │  │      # [1 S2 {/ I) Z
│  │  ├─6 类和方法入门6 R+ W7 X& ?8 x/ @( F; ~
│  │  │      01_如何定义类和方法.mp4
7 A" M* Z: j4 R# @' u│  │  │      01_方法练习.mp4
4 g0 k: b0 P3 x$ H1 e# `+ s2 N# X│  │  │      02_输出语句.mp4% N6 u  q" a# A+ |' \
│  │  │      03_变量练习.mp4; l% s# M/ h* {+ D8 b- g
│  │  │      04_Java中常见的数据类型.mp41 h3 H. C, p* s3 \  D3 ~  z2 N
│  │  │      1 `- P0 F. _+ }6 \
│  │  ├─7 简易计算器案例
" N2 f& e# i  S0 O5 f  A│  │  │      05_制作简易版的计算器(加减乘除方法).mp4" q4 E2 ?& d4 X' U
│  │  │      06_如何调用方法.mp4
% Z) N9 \: J7 U! u│  │  │      ; q" Z1 {; K) R/ t4 @$ ~, {6 q! ]
│  │  ├─8 变量高级
2 m& {1 e. u3 q/ o* \│  │  │      07_和变量相关的一些选择题.mp4- D2 |% c7 T8 d$ {" M" V
│  │  │      07_局部变量和成员变量的概述.mp4
( a& ~. S! C6 d+ G│  │  │      08_局部变量和成员变量的区别.mp4
* N+ T  s& w) [. r% m4 A& Z│  │  │      
9 |$ u. R! ?9 F7 ?% C) S* w7 l│  │  └─9 运算符
3 p. i% H% s6 e' X+ F; k│  │          09_算数运算符.mp4( ?. m0 b! e; T$ c
│  │          10_赋值运算符.mp4! t' G, u' }- y+ r! w) m
│  │          5 h' A: V% F8 H, |+ P; L  R, E
│  ├─1-2面向对象7 @6 [3 E: x  E1 a0 c
│  │  ├─1 Eclipse入门
  A' U" C8 D3 [, P( X│  │  │      01_Eclipse简介.mp41 s. J8 I7 ~! a7 g) x
│  │  │      02_Eclipse中HelloWorld案例.mp49 Q8 q' q4 F, ~/ Y$ k3 E4 C
│  │  │      03_Eclipse的视窗和视图概述.mp48 z) W2 X( s! n$ Y0 S3 q
│  │  │      04_Eclipse工作空间的基本配置.mp4
) ^# K2 b+ Z5 {/ R0 d│  │  │      05_Eclipse中内容辅助键的使用.mp41 c8 ?) Z/ W; M, z
│  │  │      06_Eclipse中快捷键的使用.mp4; p' R" w# }& F/ ^% {5 o/ O' M& R% g
│  │  │      07_Eclipse中如何删除项目和导入项目.mp4+ r/ Z8 m" Z/ ~
│  │  │      ( ~. ]6 u. E* y- e5 t
│  │  ├─2 面向对象和封装
" T% X6 Q  `. {6 p' E) }: d7 Y0 P│  │  │      08_面向对象入门.mp4
- J$ z7 A# P' H+ Z1 Q  {% ~│  │  │      09_获取长方形的面积.mp4
6 b$ H( j) T* _: l; [│  │  │      10_人类案例.mp46 D; H! D1 y1 Q- @
│  │  │      11_封装入门.mp4; k! A5 O7 G. M6 p  O
│  │  │      12_封装的好处和弊端.mp4
; n- z5 F& o5 P' j' f' o  r3 e5 u  A- i│  │  │      13_封装详解.mp4
7 R6 F' j- [, C8 u2 y, |' T│  │  │      14_标准的类的定义格式.mp4
* d1 H$ m. m2 z& t3 ~. ~│  │  │      
6 ]+ M" _$ N9 g! ~. s7 s7 E│  │  ├─3 面向对象综合案例1 b7 c$ u$ _- p6 g* N
│  │  │      15_用户家具城案例分析.mp4
7 U4 D0 U5 y% x8 `│  │  │      16_顾客类代码实现.mp4
7 e6 _$ \  H7 ?$ ?& Y│  │  │      17_卖家类代码实现.mp4
9 h3 f  Y7 G" t2 r2 i6 p, d│  │  │      18_测试类代码实现.mp4" w" t0 Y+ E; j1 m5 k
│  │  │      9 t  q. J2 }' I" v9 }9 F
│  │  └─4 机器人对战游戏6 P( \& E+ n6 _* }. |" U
│  │          01_游戏演示.mp4! W- ^/ y1 k; O4 ~5 f: N* j% q: j
│  │          02_this关键字.mp4
" \. a  w8 [( l+ I8 m, M│  │          03_static关键字.mp4+ U, t$ u0 K5 _/ {
│  │          04_final关键字讲解.mp4
. T) X2 p) ?" y3 U" `; X) |' M/ ?│  │          05_Random类讲解.mp4
  K8 M& a/ r5 O' n; E│  │          06_while循环.mp4! d+ @. R/ k9 b
│  │          07_游戏业务分析.mp4( H) U; L3 T0 K) Q( X& t# m" Y
│  │          08_游戏UI部分_玩家和NPC交谈功能的实现.mp4
8 q/ R2 P' D* a│  │          09_游戏UI部分_GameScreenUtils工具类的抽取.mp4
4 N8 V0 q4 o" G! p; a│  │          10_游戏功能部分_玩家打NPC的功能(上).mp4
# q1 o# \: l) R+ |) j7 `│  │          10_游戏功能部分_玩家打NPC的功能(下).mp4  }- _% G4 O# A  w5 O5 O  V
│  │          11_注释的补充讲解.mp4* @7 _2 m% k: X+ |/ j
│  │          12_游戏功能部分_NPC还击的过程.mp4( s  b3 \( j$ V2 C$ i
│  │          13_代码优化(上).mp4
1 \" {. H# W1 P' d( a$ W8 Z, ~* l│  │          14_代码优化(下).mp4' {7 ~- m2 d, w8 T4 {
│  │          " ~  r8 P' L/ {  o; F
│  ├─1-3集合1 Y) k+ @& q" E9 {/ J. U
│  │  ├─1 HashMap集合- v2 y$ D1 f9 ~& K- I1 f3 v
│  │  │      01_HashMap集合简介.mp4$ @1 `+ p- Y  D4 j3 Q- d9 A; j
│  │  │      02_HashMap集合的初始化.mp4
5 P6 b, {# v4 W! M# y0 u/ `│  │  │      03_往HashMap集合中添加数据.mp4
0 C# a  @0 L/ t( P; j/ H│  │  │      04_泛型和包装类.mp4
/ q+ S2 Z; f6 @! @│  │  │      05_HashMap#size()方法.mp44 i. O% K/ T6 ~! g5 j* K6 j4 \
│  │  │      06_集合相关的面试题.mp4
+ B0 @, {9 i/ {$ ^│  │  │      07_HashMap#get()方法.mp42 n7 y- Z7 @: Y! w- M9 h  h4 K. A
│  │  │      08_HashMap#isEmpty()方法.mp4
" G3 Z5 t* |0 o% O. a│  │  │      09_HashMap#containsKey()&&containsValue()方法.mp4
+ h% P( k+ a' t# l/ ?│  │  │      10_HashMap#clear().mp4& G" J6 w8 \; I
│  │  │      12_增强for.mp42 N& R& ~5 m- `$ k" f0 I- g
│  │  │      13_双列集合的遍历方式.mp4; f/ K0 [& ~2 [0 }% T3 w
│  │  │      14_HashMap集合相关的选择题.mp4# d, S' {, j5 |: }# G0 k& q2 s
│  │  │      
1 y" `, \2 t1 o5 c0 l, B│  │  ├─2 ArrayList集合
$ B$ B# T9 o0 F│  │  │      15_ArrayList简介.mp4
' T7 y# B+ u* |1 _│  │  │      16_ArrayList#get()方法.mp4, ?0 ]# U: c) U' Q
│  │  │      17_ArrayList#set()方法.mp4; T: {! `% p, e/ x; [: Y( p
│  │  │      18_ArrayList#remvoe()方法.mp4
; ~0 ~; a$ v) [. l, _% C│  │  │      19_ArrayList#isEmpty()方法.mp4
8 c# U' U9 j/ D│  │  │      20_ArrayList#indexOf()&&lastIndexOf()方法.mp4$ l% _% O- ]. k- Y, x9 Q; O0 x
│  │  │      21_ArrayList#set()方法_代码版.mp4
( Q9 f/ p1 i. y; @. E9 f9 o│  │  │      22_ArrayList#toArray()方法.mp43 E* M& Y% B1 S! g, }5 M5 W
│  │  │      23_集合和数组的相互转换(理解即可).mp4* n: q: \, U) Y. Q- {: _9 [6 I
│  │  │      24_ArrayList集合相关的选择题.mp4) M- D) R4 u8 I. O0 R4 v# v2 T, E. n' s
│  │  │      
6 V, [1 Y& \& y* t: c│  │  └─3 集合综合练习; j: Q+ K3 M4 E& ]1 h* ^* B  C/ A
│  │          25_Map集合综合练习题.mp40 W" ]4 @* C! t8 A3 P4 K- S* g5 O
│  │         
% s7 \: t, m* @6 C  X│  ├─1-4继承和多态
0 L, ^7 F; L! K$ r/ Q! r│  │  ├─1 继承- S, L! A/ K" P2 i2 I7 o# s
│  │  │      02_非继承版的老师类和学生类案例.mp4: p- C% `( q( p9 s
│  │  │      03_继承版的老师类和学生类案例.mp4. m5 f" g3 z' `
│  │  │      04_Java中类与类之间的继承特点.mp4" y# T: z2 E5 h5 F) ?0 W) r9 c( v
│  │  │      05_继承的好处和弊端.mp4
/ {  {- [( D4 g$ R$ D: A! \│  │  │      06_继承的注意事项.mp41 q# U6 F  X, ^$ l/ Z5 s6 u
│  │  │      07_this和super的区别(图解).mp4% y3 J+ q: q6 N9 L( R
│  │  │      08_继承中的成员访问特点之成员变量.mp4. W* N5 {9 u& e; E$ y& D
│  │  │      09_继承中的成员访问特点之构造方法.mp49 h) G# R, L2 z) r
│  │  │      10_继承中的成员访问特点之成员方法.mp4
( n5 A* j7 F5 c3 Y) b│  │  │      11_方法重写的注意事项.mp4
! O& U; L; ]' [8 O6 T( P│  │  │      12_final关键字.mp4; s8 c, B- {# [9 y
│  │  │      8 }3 a5 j3 E2 e  k; F, i3 M  K
│  │  ├─2 抽象% S8 S+ x; t7 @( l4 b1 |
│  │  │      13_抽象类的概述及其特点.mp4% ~2 e' \( o2 s1 `. A) v# J1 s
│  │  │      14_不能和abstract共存的关键字.mp4
4 d5 x! F/ U! P2 _* W$ K) R& h│  │  │      / m6 V- @' S5 a4 s
│  │  ├─3 接口
! J' T1 b+ {9 @! D* G6 v│  │  │      15_接口的概述及特点.mp45 I( l* y1 d" M+ `5 F9 c* Z# A: h& O
│  │  │      16_接口的成员特点.mp4- l9 v2 ~& u/ s0 q1 l+ e" Z+ d& k( t
│  │  │      17_类与接口之间的关系.mp4. c' n% w, e; u+ c" C/ N
│  │  │      18_抽象类和接口的区别.mp4
$ s. c8 I: Y2 g- u! U' ~: s# f│  │  │      
8 v# }7 F7 p# L2 @. Q/ [3 i+ N│  │  ├─4 多态
7 B9 a1 q# I; |, R│  │  │      19_多态的概述和前提条件.mp47 Y( t; ^; f2 ^; s  o
│  │  │      20_多态中的成员访问特点.mp4
( q1 b' k8 V- B# y) O7 {│  │  │      21_多态的好处和弊端.mp4& J  f+ `9 Q6 ^/ Q0 @2 b* W
│  │  │      22_动物类案例.mp4- j$ e+ p5 N4 M1 b! X
│  │  │      
/ y$ `$ o( H( ^; z+ c│  │  └─5 游戏界面1 J% n$ \2 }  M/ `% B' E
│  │          01_如何导出以及使用jar包.mp46 c' M& t+ _  \& x7 @+ _6 o
│  │          02_魂斗罗选择界面.mp4
; c1 T& J! w8 q│  │          03_微信打飞机案例V1版本.mp4
" i4 y+ K6 p8 b3 A│  │          04_微信打飞机案例V2版本.mp46 A8 c9 i& E0 \. U4 T8 a
│  │         
/ [& l' f- ]3 M4 o│  ├─1-5java基础增强
( F3 v/ e3 \) I  N' [│  │  ├─1 循环遍历: s! |6 g" M; T+ k: p; s0 o. I; J
│  │  │      05_while循环讲解.mp4
8 \9 u( t3 y, l( y$ r2 G7 c5 G│  │  │      06_do.while循环.mp41 A* D, Y5 ~2 A. N3 k/ q
│  │  │      07_for循环.mp4: e% e* u( @" [
│  │  │      07_switch-case语句的练习题.mp42 y. [' Y) e* [/ F3 L
│  │  │      08_for循环倒序打印.mp4
9 `' e  \2 ^. v( Y9 O- \8 g8 D0 t│  │  │      09_三种循环之间的区别.mp4; @3 r& I0 P5 C  q' E! I
│  │  │      10_for循环求和思想(计算1-100之间的偶数和).mp42 {" ]; ], L0 |  a; m6 ]" w
│  │  │      11_增强for循环遍历数组.mp4- O6 o2 N' [5 Z
│  │  │      12_双列集合的第一种遍历方式.mp41 Y, Y1 _6 H! a  w7 U+ U
│  │  │      13_双列集合的第二种遍历方式.mp4" k, c# D2 C) `# i
│  │  │      14_for循环嵌套之打印矩形.mp4
. {4 a! Y* x& }* J│  │  │      15_for循环嵌套之打印正三角形和倒三角形.mp4; U7 z* o# d+ H% j
│  │  │      16_for循环嵌套之打印九九乘法表.mp4
+ q, h4 e- c& W/ }3 B- y3 [│  │  │      17_校验金额.mp4; K. F. [/ K' }, D$ L
│  │  │      18_break和continue的区别.mp4
) g6 V* ]$ ]/ L: f( G/ X/ E8 P│  │  │        f% S2 m4 A8 q+ f$ e- I
│  │  ├─10 阶段性总结 & 补充& ^3 f& K+ G4 J, d6 V  d; h
│  │  │      01_Java平台版本的划分.mp4. E. T" ]( P7 [. K  w
│  │  │      02_Java语言的特点.mp4
5 _* e$ P, A! T$ T│  │  │      03_JDK的下载和安装.mp44 t# Q' L9 K: f5 m
│  │  │      04_path环境变量的配置.mp40 d- a" U: C! a) e* c
│  │  │      05_三元运算符.mp4
3 Z  ]( ~- J) k3 z6 t│  │  │      06_switch-case语句.mp41 J0 ~9 Q2 N" Z) n- n" C$ ?2 c
│  │  │      07_switch-case语句的练习题_p7wiK.mp4) b, T8 g% M0 _' ?8 H* G( r
│  │  │      08_方法重载.mp4% z" I& h8 n2 L2 J
│  │  │      09_方法重写.mp4
( `8 X+ V% `$ \( A* p4 w# y│  │  │      10_成员变量和局部变量的区别.mp4
% b6 ]  x3 k  y, ~│  │  │      11_对象的初始化过程.mp4" C& z6 J; J& @; E& C
│  │  │      12_instanceof关键字.mp4
5 x6 Y# L# U& _" q  q│  │  │      13_包.mp49 h0 L5 E0 a  A' Y( l: Y
│  │  │      14_代码块.mp4
4 E3 \7 m# N; ^4 s, f  U+ }│  │  │      15_HashSet集合.mp4
- F0 Q1 f3 Z) t0 S6 d, [3 l│  │  │      16_集合的体系图.mp4& `$ A6 V, }/ ?4 p; K" `- e( i4 W
│  │  │      17_单列集合的遍历方式.mp4
' ?1 K( t$ J9 v* S' a│  │  │      18_双列集合的遍历方式.mp4
9 v/ L  p. T4 J│  │  │      19_并发修改异常.mp4
0 i1 {( E. `$ \5 e8 S* h  p│  │  │      20_Collections工具类.mp4
+ J. J- N" R4 c* Q│  │  │      21_内存输出流.mp4& W6 |* b2 L4 X# z' b! @1 r$ B
│  │  │      22_Properties集合类.mp4
( ]7 }5 w& n# [! d│  │  │      23_多线程的声明周期图.mp4( n4 Y' a. J/ T! `. `
│  │  │      / H: H) F9 A+ r3 `
│  │  ├─2 工具类和正则表达式8 i) q* T- H- p. G
│  │  │      19_如何定义一个工具类.mp4
& n' a. U# v" a! f│  │  │      20_校验手机号_自己写校验代码.mp4( {. B; a) x! I( g/ x
│  │  │      21_正则校验手机号.mp4. n9 _0 d$ j4 I9 ?7 u5 A
│  │  │      22_正则校验邮箱.mp4
0 M$ @+ K, b6 I) r+ @, z  j) U│  │  │      23_通过正则表达式切割字符串.mp47 v* n6 P: z& @
│  │  │      
2 K4 ?& \( h: h+ I: b│  │  ├─3 集合补充案例
" [+ W$ \8 Y5 N% \5 S5 D9 }│  │  │      24_ArrayList集合去重.mp4
5 d. x( a1 M% x3 z7 m│  │  │      25_debug调试.mp4
9 E! p* I. I( ?4 I! |│  │  │      
5 m; n% W1 V. F" j7 k│  │  ├─4 异常% H- O) g/ U0 X/ @0 e6 C( h
│  │  │      01_异常的概述和分类.mp4
/ M; f0 G9 \' H/ f4 \6 }) J│  │  │      02_编译期异常和运行时异常的区别.mp4
# I/ j) r# h6 O+ F1 e│  │  │      03_异常的两种处理方式及区别.mp44 F( ^5 G) c7 Y6 [, {% i
│  │  │      04_finally关键字.mp4: I( ]( A; N7 G, N
│  │  │      05_finally关键字相关的面试题.mp4& ]( A1 \4 q7 N! [2 c! H3 ^: s
│  │  │      ; H/ D! W: ~, p9 R! I
│  │  ├─6 File文件
: w6 S( d  b# Q# I$ t6 f: s/ v9 R│  │  │      06_File类的概述及构造方法.mp4# w( d; d. G/ `8 U+ ^2 w4 x& z
│  │  │      07_绝对路径和相对路径的区别.mp4
( r2 S4 B5 W3 Y9 Q% l# a% t/ X│  │  │      08_File类的创建和删除功能.mp4! u& h2 I# r7 s; S4 H4 ?
│  │  │      09_File类的获取功能.mp4
5 J2 }0 ?3 L' ~8 d5 T1 d) x% }8 e│  │  │      10_File类的判断功能.mp46 j% i- n7 t% K7 @- ]
│  │  │      11_File类的list()和listFiles()方法.mp46 H) w$ M! f" Z9 ]$ L! i
│  │  │      12_匿名内部类.mp4% ]1 b/ C4 ?' Z* _( l. g8 @. M1 Y
│  │  │      13_文件名称过滤器.mp4
" j3 {2 U5 N! P$ F│  │  │      : T6 m& q  q6 H
│  │  ├─7 递归' ~$ _  X6 I8 }( M# @6 Z7 a
│  │  │      14_递归的概述和注意事项.mp4
/ ?- h( X* w# Y; e8 J% s$ G3 q│  │  │      15_递归计算5的阶乘.mp4
, Z+ I6 f7 U( S6 M$ Z7 R) l2 F9 \) V+ W│  │  │      16_Debug调试_查看计算5的阶乘的过程.mp4
) L4 P4 B6 D4 n4 o; W9 ?. \1 T* S3 y│  │  │      17_递归打印文件夹.mp4
7 E9 y$ n4 _8 i: b% B│  │  │      18_递归打印文件夹(加入键盘录入的功能).mp4) q' Y2 [% q( t9 W1 H; I3 ^
│  │  │      , I# k: z3 u$ t& w2 G+ X& h
│  │  ├─8 流操作
) \5 z  E2 {$ s$ ~- B│  │  │      19_IO流的概述和分类.mp42 H& q" `, D: H; Y2 B* k  `3 Y. j
│  │  │      20_三个特殊的字符值.mp4
4 c- z. [; Q' h% w│  │  │      21_字节流读取数据.mp4
0 O- |: `8 ~8 S) w│  │  │      22_字节流写入数据.mp4: c% n( s6 d3 w. `  O4 p; ?' @
│  │  │      23_字节流拷贝图片(一次读写一个字节).mp4" i+ H* C/ z/ |% ^
│  │  │      24_字节流拷贝文件(一次读写一个字节数组).mp4' _: p* s) V9 m4 A) R
│  │  │      25_字符流拷贝文件(一次读写一个字符).mp4
' Q4 r' @' ?$ w% k│  │  │      26_字符流拷贝文件(一次读写一个字符数组).mp4
( R; x; u; S. Y+ S5 W- B* h; w│  │  │      27_字符流和字节流的应用场景.mp45 w0 U; E% c* o5 J+ n! q
│  │  │      28_高效字符流一次读写一行.mp4
4 q6 L  K  e- Y# L! {1 Q│  │  │      29_IO流读写方式总结.mp4, k- h5 ?5 c* U: l' g- g& x! P
│  │  │      30_制作空文件.mp47 U4 T; S+ m/ B0 K. q
│  │  │      31_从网络中下载资源.mp42 f1 p2 B1 ~% O* i4 U" x& d4 s# I
│  │  │      32_JDK1.6及其以前IO流的标准异常处理代码.mp4
% e3 D, L* S! w$ s3 q6 C│  │  │      33_JDK1.7及其以后IO流的标准异常处理代码.mp4
) D9 Z- k) [3 Q│  │  │      34_复制文件夹.mp4
% m* d1 F6 [% q/ ]) D& K; e│  │  │      35_commons-IO第三方jar包复制文件夹.mp4
4 }6 j2 T- {; \1 N9 b3 t5 k3 C│  │  │      
  }9 ^6 a5 ^& K* \; J│  │  └─9 多线程  R; e" T7 Y- _( ]
│  │          01_多线程的概述.mp47 z  n" P3 Q( F. L2 M* s
│  │          02_多线程并行和并发的区别.mp4: R* j1 c4 s/ {2 d2 }4 X3 C- t
│  │          03_多线程的第一种实现方式.mp4. Q0 V! x( Q: Z1 A& X  a7 l+ w+ ?% i/ E; @
│  │          04_多线程的第二种实现方式.mp4
1 E! D. E7 Z' p" |│  │          05_多线程两种实现方式的区别.mp4$ o0 o, e! t+ S+ y
│  │          06_多线程模拟卖票案例.mp4) V% _3 E  d7 L9 t! p- P
│  │          07_多线程模拟卖票出现安全问题.mp4
& x1 M/ Q* T: v/ Q% _) M│  │          08_用同步代码块解决多线程模拟卖票出现的问题.mp4
8 a) V" @' |! f! Y! O│  │          09_线程同步和效率的问题.mp4' E7 l! i; _7 w: h0 Z- J
│  │          10_实现Runnable接口的方式实现卖票.mp4
5 K0 U; O% s: F6 m│  │          11_非静态同步方法.mp4
% g" _$ l5 X) l$ G│  │          12_静态同步方法.mp4
9 X, r0 s% \" V' n$ s│  │          13_死锁.mp47 Z. ~- @2 w( O) e* o. s7 ~
│  │          14_实现Runnable接口的原理.mp4
5 @  Z) f  D. _9 a, L. l│  │          / g# S* Z; c6 ?. }1 T' }+ }/ a
│  └─1-6坦克大战
0 D3 X' U4 r- ~- q│      ├─1 项目初始化5 V2 K5 y  n# W/ z" V7 [& n
│      │      01_项目演示.mp49 O; {% L+ j/ h2 t
│      │      02_新建工作空间.mp4
4 Y& K7 K# D1 R9 B* e8 G│      │      03_设计模式的概述.mp4
  P2 w$ I4 ?: p3 r│      │      04_模板方法设计模式.mp4- y. j$ K, G! b" B! e
│      │      05_lwjgl_jar包简介.mp4- [- |, F6 y5 l6 n, w: _/ w* Z; t
│      │      06_创建第一个窗体.mp4
. k; x5 j$ t( E│      │      07_页面渲染.mp43 w. ~* W0 F; g9 f7 h
│      │      08_输入输出以及坐标计算.mp4, ?3 Z$ v/ q" k7 a/ ^) c& h6 U8 w
│      │      09_绘制图片.mp4
, \) B! t9 I! a  u2 G│      │      10_播放声音.mp4
! N# w# O' x% m) ~! t" [0 \( R│      │      11_综合小案例.mp4) q  |/ z8 |) ^+ a( R, x' r. {
│      │      * O- K4 s; F; l9 K
│      ├─2 窗口元素绘制- F: w# t3 P8 }9 O: i
│      │      12_坦克大战案例窗体绘制.mp4
0 q* y# Z& N4 W" R# P│      │      13_绘制一个砖墙.mp4. V% Z0 u) X9 ~1 D' W
│      │      14_绘制一堆砖墙.mp4
4 E# q! e% V: H! x& J" p6 _4 I│      │      15_绘制一堆水墙,铁墙,草坪.mp46 V$ i2 p. J% c  o! Q! Z3 _
│      │      15_绘制一堆水墙,铁墙,草坪.mp4.baiduyun.p.downloading
8 n, \1 p+ Z  b# @. |/ ?0 q# ~/ S│      │      16_抽取Element父类统一管理元素.mp4
5 q" C. I5 T& k! r│      │      17_坦克的绘制.mp4; Z1 h3 X* Z' h& L
│      │      
7 A( U6 Q7 k: Z: n│      ├─3 坦克移动
  i2 G2 g5 M+ C! I│      │      18_坦克的移动和越界处理.mp4; {- U5 _2 \$ X
│      │      19_坦克炮口的随向转动.mp4
7 n0 Q: h" M; r( Y% x5 r* k2 v2 l│      │      $ g4 x6 }- }7 i; j( o# c
│      ├─4 子弹发射* q  \+ E  W' s  w
│      │      01_优化项目中的三个小细节.mp4# |. B$ I5 l8 E3 J+ v% f' M
│      │      02_子弹的移动.mp4* J; M  s; n# q' ^5 J
│      │      03_调整子弹的发射频率.mp4. {% G% X, X2 c3 p
│      │      04_播放子弹的发射声音.mp45 m. A6 M6 F& _) Y& h
│      │      05_销毁出界的子弹.mp4
" m+ n! a+ x& `% X7 C  l/ N│      │      20_坦克发射子弹.mp4
6 g& B+ j; o, f) C" M│      │      21_子弹的坐标计算.mp49 t0 I3 \$ T5 i
│      │      22_子弹坐标计算方式优化.mp4
* P( o' ~* P6 {7 p│      │      
' Y% Z8 x8 {3 p$ L% J" V2 Q) H│      ├─5 坦克隐藏) D" V1 o2 M! @6 F2 O2 ]+ `
│      │      06_坦克隐藏到草坪中(简单做法).mp4! H* P& y; u6 m! Z" ?( f
│      │      07_Comparator接口简介.mp4
/ U; `! l6 }5 k; e/ V9 t# M2 V│      │      08_让坦克隐藏到草坪中(Comparator比较器接口实现).mp4, C6 a$ R$ L2 L" q
│      │      
9 ^  h7 \  j+ t: u) C│      ├─6 碰撞检测" E+ h# o. O4 A  S) _6 s) q
│      │      09_Collision工具类解释(碰撞检测原理).mp4& [9 N( _- I$ Y/ @# B8 L' p
│      │      10_坦克和铁墙的碰撞检测(上).mp4
7 C" A( z, a) b0 |% _│      │      11_坦克和铁墙的碰撞检测(下).mp4
9 Y) K! |3 ?) ?/ p│      │      12_抽取Moveable接口和Blockable接口.mp46 Y# |4 M  a4 A& ~( G+ [2 \, {
│      │      13_子弹和铁墙的校验上.mp4! L: r0 E/ d3 k
│      │      13_子弹和铁墙的校验下.mp4
, \+ F- F( c5 L1 {$ u9 M│      │      14_抽取Attackable接口和Hitable接口.mp46 L% \5 K8 \1 H% c
│      │      
+ u/ a( ~' T4 U2 C6 x$ u│      └─7 爆炸物处理
0 ?6 z3 J( J) V4 o│              15_优化爆炸物的坐标.mp4
0 W  @- Y' G" ^│              16_优化爆炸物图片的绘制个数.mp4
4 o  W7 A1 h; |! _2 K2 x3 Q# W2 k│              17_销毁需要销毁的爆炸物.mp4
7 D5 J+ j( ~4 K4 k│              18_抽取Destroyable接口.mp4
6 K. ?* D8 L1 X  |' z1 v" v│              
: j, ?# M6 K6 O3 ~  @├─2阶段 区块链概念入门1 W9 |$ N8 V* d/ i. C
│  └─区块链概念入门, I$ x( h( t) ]" l6 U8 F% r' X
│          01_从实体货币到数字货币.mp4* N8 M# W1 j1 M7 [
│          02_分布式记账.mp4
5 t- n; W+ T0 D- C# _. O│          03_中心化和去中心化.mp4/ H& H; b6 {( i3 m, L% e  `6 e
│          04_hash函数.mp4
2 C  S& E5 M& |│          05_hash算法的安全性.mp48 [5 Q! O3 D7 M7 u0 A8 Y/ o; e, B
│          06_分布式系统和数据一致性.mp4
- `' u2 E6 g1 ^( s3 |- {+ ?" U2 x│          07_通货膨胀和比特币.mp4
3 i! m* w: o+ d2 U, l│          08_区块链技术的演化.mp4! J4 B) i- g. ?
│          09_区块链的应用场景.mp4
, X( @: p6 J% r; x7 @/ ]│          10_我到底需不需要区块链技术.mp4
8 L! k3 c. D' k3 P5 B  U* c2 D& c│          11_如何鉴别区块链项目里的猪.mp47 w0 z3 e: l7 r1 _( o
│          12_区块链项目的评估方法.mp4+ x( f. A) i! z# g- p, R( O$ S
│          13_ico和ipo和daico.mp4; W+ e3 K- z6 M. j& `
│          14_关于区块链的错误认知.mp4
( G8 A/ s/ P- i0 t5 Z│          15_分布式系统的一些概念.mp4
; l8 b( p! T, }- A2 N5 O│          16_区块链技术栈和学习线路图.mp4
9 Y, r- Q' ~4 l0 R2 R4 p% ^, f, l│          17_区块链的技术现状.mp4
; w( ?9 ]9 H) @/ `4 c│          + \& F# W( z* _5 b! z% {, i
├─3阶段 kotlin和变成基本功加强4 n3 e0 I' C, [+ [( s
│  ├─3-1 kotlin基础语法
4 f8 {0 g- Y0 b2 ?. D* Z& \, ^│  │  ├─1 kotlin介绍4 O4 K5 J& L4 D4 @
│  │  │      02.kotlin简介.mp4! X7 {1 E, h. U$ }5 ?! M
│  │  │      03.kotlin发展趋势.mp4
* m( M7 C. z) `6 b│  │  │      04.kotlin优点.mp4
- e/ k- Y7 _: Y  e4 f+ `│  │  │      05.kotlin前景.mp4/ P9 J, L1 a% T2 C
│  │  │      06.参考资料.mp4
* p! V: M9 |" h/ i│  │  │      " I# {) {! J+ N7 r
│  │  ├─10 函数1 P* I/ O* U" f" I9 P% s+ k
│  │  │      27.输入和输出函数.mp46 X) i2 {# ^! f% f; _
│  │  │      28.四种函数.mp4
- G- f$ ~7 J) P1 I1 G; x$ ]│  │  │      28.四种函数.mp4.baiduyun.p.downloading
+ W6 `, Z. C( a│  │  │      29.顶层函数和嵌套函数.mp4
0 L# J: E1 H+ i8 ^7 x( n│  │  │      5 U, `5 p7 s4 n7 O4 H  u7 K
│  │  ├─11 字符串模板
' f% P" M, \1 j6 J) g9 X8 g* B│  │  │      30.字符串模板.mp44 m! s/ q9 X( y* R  ?
│  │  │      % G! D8 a2 x3 X" M* i* z8 X
│  │  ├─12 条件语句) q1 o- M! p! u1 p0 e$ b2 b
│  │  │      31.条件控制语句if.mp4
& |: m% Z6 a7 F; `* z- Y3 L│  │  │      6 ^6 b1 a, Y# H! f, C& B$ B
│  │  ├─13 循环
0 ]) E+ Z! K- ?% Z│  │  │      02.for循环和foreach循环.mp4. j& z' y- Q: U7 W, c5 E5 w
│  │  │      03.continue和break.mp4
1 _+ b* s# s; b│  │  │      04.标签处返回.mp4# {7 E! K) h" Y: ~) J8 {
│  │  │      05.while和do while.mp4
) C1 m0 H$ S" x3 u# T# E: T│  │  │      d2-01.回顾.mp4
4 D1 W3 `7 h& x: v4 `/ s$ B│  │  │      - L% {( q, [+ @' O) t! e& A
│  │  ├─14 区间) \, j$ i3 [, }1 Q6 D# v
│  │  │      06.区间定义.mp42 @4 M0 }( K- F1 P
│  │  │      07.区间的遍历.mp41 i; K' }) F0 [- m( @  R0 i
│  │  │      08.反向区间和区间的反转.mp48 V; h: W3 B9 v6 C+ [
│  │  │      08.反向区间和区间的反转.mp4.baiduyun.p.downloading% E; U' a/ E" z; c* D! k- \5 \6 @6 h
│  │  │        G) o% M; n: R
│  │  ├─15 数组
9 E. \; ~, k; h; B1 ]2 O+ @│  │  │      09.数组创建.mp4
7 ~. m+ T6 M* ]1 u0 m1 G, p│  │  │      10.数组元素的修改.mp4
2 I3 f& @" ?1 Y│  │  │      11.数组元素角标的查找.mp4* H4 t1 ]2 c- S% S
│  │  │      
" u' g2 j" }& Z' M3 r5 |│  │  ├─16 when表达式& [4 \1 c2 `0 m2 i/ C
│  │  │      12.java的switch语句回顾.mp4
: ~# i' o- ~7 ~5 E7 `2 J2 }. k│  │  │      13.when表达式.mp4
1 B4 q5 N) [& U( u, H│  │  │      13.when表达式.mp4.baiduyun.p.downloading+ h" \& ^7 q' d' u
│  │  │      14.when表达式加强.mp4
& r* e$ `* E3 h; r" b│  │  │      15.when表达式原理.mp4; }2 Z6 t2 f' ~
│  │  │      16.when表达式不带参数.mp4
) ^1 f' ]7 L% L4 \│  │  │      17.when表达式返回值.mp43 Q3 \0 a; k5 e3 h
│  │  │      18.when表达式练习.mp4
/ r" g6 p% [% \: q" q) }6 n│  │  │      
& |3 H, f+ D. {" w│  │  ├─17 函数表达式; m; J& x; B  S. L1 R! V. u
│  │  │      19.函数表达式.mp47 N- c3 {; `% Z( C, i, F
│  │  │      20.函数引用和匿名函数.mp4
) n. R8 t5 Z3 Y: B+ b& H│  │  │      
6 q( Y! b) e3 _! l: b│  │  ├─18 函数参数
( w6 `5 G& W$ l& b│  │  │      21.默认参数和具名参数.mp4# H  {$ M: p  f, \$ q3 `  Q. N+ Z- K
│  │  │      22.可变参数.mp4
) X! s: z7 e) O* u; [1 o: \7 C│  │  │      1 H2 y. C3 m  }; `
│  │  ├─19 kotlin异常处理# N  f$ l( u$ q1 d' m4 `0 p# e
│  │  │      23.kotlin的异常处理.mp4! X" v$ W' N. H- d' }# K3 q
│  │  │      24.上午回顾.mp48 T. q/ V% M( z0 o6 m; Y8 D2 V
│  │  │      
9 p9 Y- c3 \8 }* [│  │  ├─2 IDEA下载安装2 K3 {8 A' |# a1 H* G* U
│  │  │      07.idea下载.mp4
2 `! [* u% U& Z│  │  │      08.idea启动.mp4' ]+ d2 Q; k7 n, d
│  │  │      3 C( M: a" C) f3 G4 p
│  │  ├─20 递归1 W" I0 b+ T! J" n  H4 H
│  │  │      25.递归.mp4
7 P( E+ R! G3 {5 i! ~) L3 Q) A: [│  │  │      26.斐波那契数列.mp4
8 o0 ?$ w: w! k1 r│  │  │      27.递归和迭代的对比.mp4
* b* d& W* X4 n; O% R, }) c│  │  │      28.尾递归优化.mp4  @( z* W; D, ], j5 @$ z
│  │  │      1 Q2 t4 N3 X- X  ^7 E7 M
│  │  ├─3 IDEA使用
0 o9 k0 v! d* \6 i- K! X│  │  │      09.helloworld.mp4
9 W3 J. I5 P4 U, v- {│  │  │      10.导入设置.mp49 ^6 Z" j. B$ l8 t1 Z6 W# B1 h
│  │  │      11.java和kotlin运行流程.mp4, X, K# T1 U& E9 R( K4 s* ?4 q
│  │  │      12.查看kotlin对应的java代码.mp4
% w! X4 d# `* X! F│  │  │      1 C( d, |. T9 _, b# }
│  │  ├─4 kotlin数据类型
) D4 T8 Q9 M% U│  │  │      13.基本数据类型定义.mp4
7 |- g' G# O, S│  │  │      14.和java基本数据类型对比.mp4- A' ^, N; X1 J1 E$ u/ M  R! P
│  │  │      15.基本数据类型取值范围.mp4- _: U  r% l0 ?
│  │  │      
+ E" i4 K( l" f4 E3 \8 I│  │  ├─5 二进制( n0 o; D* U/ s$ @5 H: D
│  │  │      16.二进制基础.mp41 q. S* d% {$ h+ O" P. _
│  │  │      , Y0 m4 |' }; E( c
│  │  ├─6 变量定义- r- j0 }6 ?+ |# x1 ~% U
│  │  │      17.kotlin调用java.mp46 {* t5 m( [8 I3 q0 `
│  │  │      18.智能类型推断和类型转换.mp4. U6 F8 p# v$ \/ M$ g/ @2 o3 S
│  │  │      19.可变变量和不可变变量.mp4- q0 P" |7 Q, }6 ^& ]1 E+ q
│  │  │      6 V4 T7 C8 K* e  Z
│  │  ├─7 字符串/ A9 A! M3 o! N0 `6 W; c+ k
│  │  │      20.字符串两种定义.mp42 l) l4 I2 g# W9 F/ J& V. A$ B3 F  I
│  │  │      21.字符串删除空格.mp4" v  G9 Y+ G8 ~
│  │  │      22.字符串比较.mp4+ b$ S3 o  P+ b7 r# E
│  │  │      23.字符串切割和截取.mp4
7 b4 u7 X9 E" O9 R│  │  │      + B* Q4 f- ], b
│  │  ├─8 元组
' N9 t; V0 ]6 K( r, |5 W- D( }+ }, ]│  │  │      24.二元元组和三元元组.mp4
9 W# L) {" u, j9 X& a│  │  │      
6 s. |& d4 H: j4 m# g% W│  │  └─9 空值处理
* ?7 O' \, Y% E# [& L1 E│  │          25.空指针异常.mp4- y, ^; e# a. ?# V  |0 i
│  │          26.空值处理运算符.mp4
' P% p* D1 m6 C│  │          9 m+ z/ O" T! y; k  z7 C% R5 R0 r
│  ├─3-10 gradle
8 p/ V, u5 H4 e5 u- ?4 S│  │  ├─1 三种构建工具( P" D! E0 a: F$ w! j# ]9 a. Q
│  │  │      02.原始人的工作方式.mp4, @2 V. }, I' l0 L/ o8 c6 ^! t6 ?
│  │  │      03.三种构建工具对比.mp4
5 S3 ?: N5 P, y│  │  │      04.gradle简介.mp4' h  T6 f# e) j# k/ U* @7 K
│  │  │      7 b% f3 k% W* r# S
│  │  ├─10 多模块构建# n. v7 P4 B& b* A. K2 k8 I1 I# t
│  │  │      30.多模块构建简介.mp4  f7 \" h% U* f$ B* E
│  │  │      31.多模块的依赖.mp4; S; W/ }! h7 A$ p" ~6 r# _6 Y
│  │  │      32.多模块构建.mp4
1 y9 g% ~9 \' O2 x) c│  │  │      
/ f( Y2 L3 m$ I( |4 i│  │  ├─11 groovy入门
  S/ l% P, d  }$ @9 q│  │  │      33.查看groovy编写的gradle脚本.mp4
2 T$ W6 ]: j# ?" R  g2 F│  │  │      34.总结.mp4
: Y. r7 X! g8 m9 ^, V│  │  │      d8-01.回顾.mp4* w% C0 P. s' o# f& B  u5 d: S
│  │  │      
- b" x/ O8 M* \- k/ n" p2 A$ f│  │  ├─2 gradle使用入门' T0 W+ ^$ @4 D/ J/ R  o$ ~0 e
│  │  │      05.gradle下载和配置.mp44 w- F/ z! @  W. A5 ^8 Y0 \4 d
│  │  │      06.gradle项目初始化.mp4
2 {8 A  W& n; k) f/ @│  │  │      07.gradle打包.mp4( N- k7 O4 n* @5 Y5 p+ J( p
│  │  │      6 t/ ?8 m: l3 d
│  │  ├─3 gradle构建kotlin开发: A. J) ], P" g+ N0 u
│  │  │      08.静态语言和动态语言.mp4  T9 f4 @, p, P, M! y1 x' O
│  │  │      09.gradle支持kotlin开发.mp4
" Z; j! n9 d' D# e4 N- c4 L│  │  │      - M, I" S) Y4 ]6 e  d0 N* ]
│  │  ├─4 task任务8 R) P7 a* T- y& S
│  │  │      10.project和task.mp4
- a* j% n6 V' v! Z; g│  │  │      11.第一个task任务.mp4
  p$ V% {9 N0 K  a+ l' F, o│  │  │      12.task依赖.mp4
5 ]# b4 E8 s( V8 F+ u/ E│  │  │      13.task生命周期.mp4
0 C2 D: s1 Y) u! h, m0 v│  │  │      14.tasks任务集.mp4
- R* c, j2 A0 @3 Q+ A│  │  │      15.默认属性.mp4: g5 B# m( l, F' B
│  │  │      
1 X' s/ m0 z) O' l│  │  ├─5 增量更新) P) n- l2 V7 ^' ~# T( V8 x
│  │  │      16.增量更新.mp4' `! f$ h% O; d4 s$ R& N, ]
│  │  │      
/ B1 Q+ x$ _( m! x7 L4 v( y+ L│  │  ├─6 gradle使用插件
( R8 \4 N9 i5 k" h│  │  │      17.常见的插件.mp4" j# e5 c1 m9 e0 n
│  │  │      , q0 Y* H( q2 i' ]" `
│  │  ├─7 手动添加依赖
" L9 G' ]# N) l: P8 Y│  │  │      18.下载和导入httpclient的jar包.mp46 q1 @2 T$ {6 l# H! l0 O
│  │  │      19.使用httpclient.mp4
; W- }3 e- }6 `1 m$ t  x│  │  │      20.解决httpclient依赖的问题.mp4
/ j5 s1 ?0 b( e' ]0 I3 J│  │  │      
" y, r& m$ I+ C4 ~│  │  ├─8 gradle添加依赖8 q% F; r' E- [$ W! h8 o& H7 v$ g3 \! P
│  │  │      21.高级程序员做法.mp4
2 h5 m+ @+ G$ o1 L: Z: U# z$ i│  │  │      22.两种方案对比.mp4, g- l4 b" U& Q4 ?# m) w
│  │  │      23.依赖管理的总结.mp4
. M7 E+ F* I8 T% h9 M. [: X│  │  │      24.常见的仓库.mp4
" n. ^! K4 q0 D7 q8 k3 s│  │  │      25.依赖的坐标.mp4# w1 ^8 t" m3 t- R! K: A
│  │  │      26.依赖的配置阶段.mp40 Z' c1 H9 |! s
│  │  │      3 g4 m+ N; i1 E. M
│  │  └─9 gradle依赖冲突解决方法
/ E+ q; N) |' _% r7 q; l& q# f│  │          27.版本冲突第一种解决方案.mp4# p3 A* m; T: Q
│  │          28.依赖冲突的解决.mp4
' R) t" n/ h! X# I: ^  P4 G$ E) E│  │          29.扩展gradle任务.mp45 |  b3 b1 m3 D9 ~# O2 N
│  │         
6 X" h4 r* o' L8 m. A- a( i' W  z: Y│  ├─3-11 协程
5 G7 }: y2 [8 l! ?& t2 @│  │  ├─1 线程2种开启方式$ G  @$ Q( F) p8 V
│  │  │      01.工程准备.mp48 l' P4 ~* K9 P; ?0 r
│  │  │      02.创建线程的两种方式.mp4
4 k( _' `2 |3 W" D  E│  │  │      
# U$ ?; `0 ?( ]│  │  ├─10 协程和线程
3 e8 n# ?$ k  |│  │  │      20.线程和协程效率对比.mp4
" {8 s8 N, v, }2 L, e│  │  │      
) k/ t2 Y6 |5 b% {) |/ V' @│  │  ├─11 协程取消
5 m9 r7 Y2 f/ e4 X8 R│  │  │      21.协程取消.mp4
+ K( Y, C$ S) m2 n│  │  │      22.协程取消失效.mp4* L4 Z4 ]5 e0 V9 D/ P1 |' J
│  │  │      23.协程取消失效的处理.mp4' i# D1 }" ~# Z4 q. _9 I
│  │  │      
9 @# j/ }( m$ m│  │  ├─12 协程异步启动
/ ~. ]: {6 p7 X* d* ^│  │  │      24.协程async启动.mp4: C$ n7 o& i& W6 F) b7 G
│  │  │      25.协程上下文指定.mp4
# H0 B5 C: @0 o, S, l+ ]( O# A│  │  │      
6 [" _) n$ O  f9 o  g│  │  ├─2 线程安全问题
7 `- S' A/ Q* R7 S# Z+ ~9 o% n│  │  │      03.通过Thread直接卖票缺点.mp4! k. \$ I. W$ T# d( v) \
│  │  │      04.通过Runnable方式共享线程间数据.mp4
7 P' w4 C8 Y$ ^' l│  │  │      05.线程安全问题解决.mp4
6 d9 A- o+ e8 V, P│  │  │      
4 O- W& Q# t2 S& `% W│  │  ├─3 线程join3 h9 X, |# S# T% c
│  │  │      06.线程join.mp4$ M: @" B$ ^$ U; M+ m' Q, j
│  │  │      
: B7 e6 n7 G# L; X, ?4 K, E│  │  ├─4 守护线程
: Q1 L3 p, j5 N" |│  │  │      07.守护线程.mp41 ^2 ~( y/ ]/ d, Z) D
│  │  │      3 h7 t) C0 e/ y( m9 q* S& m/ y$ F  M
│  │  ├─5 线程池
: d# a/ y1 O( V$ ]& G# K& }│  │  │      08.线程池.mp4" y% ]; M7 U2 o
│  │  │      
" [6 N; ?# T! h) O# a8 c$ P│  │  ├─6 协程入门
  W. J! `! P: k2 e  T8 u/ A│  │  │      09.第一个协程启动.mp4
+ z! i3 P  _9 _' l6 w6 a1 Z│  │  │      10.协程打印数据.mp4
8 Z1 a% s' D/ {2 f│  │  │      11.关闭https.mp49 ^, n0 s3 O" ?7 I, u) M
│  │  │      5 X: [$ b* M$ \9 a) K
│  │  ├─7 协程源码解析
( m/ V  ]/ [' B5 v9 C/ F5 e│  │  │      12.launch函数的参数和返回值.mp4
) R5 B$ |: `, o7 @│  │  │      13.launch函数第一个参数.mp4+ Z* `0 U, d& [, _) T
│  │  │      14.ForkJoinPool的原理.mp4
9 Q1 ^, y% L& _$ a# J│  │  │      15.协程启动之后的处理.mp4  b2 Z3 y% j- p# u' v
│  │  │      + S5 o) [5 P: u/ u' ?
│  │  ├─8 协程实现原理
* e9 v( d; R' l3 M/ E& I│  │  │      17.协程实现原理.mp4
, g  q2 a* s6 `3 A# C2 \│  │  │      18.协程执行原理解析.mp4
( q' E) I5 w, _! y2 d! e" p│  │  │      ' O  i9 N2 p2 A2 P% Y
│  │  └─9 挂起函数* U9 w3 z8 g( B3 R, \# M- v4 ]
│  │          19.挂起函数.mp4
, Q: o" D1 u/ r- q│  │          $ ?6 l1 W! W! J2 G
│  ├─3-12 版本控制1 w' s, H/ _( Y, e) B  H- a
│  │  ├─1 版本控控制工具介绍
- P( F: e* [: i' d4 S8 F│  │  │      02.版本控制工具作用.mp4, x( }7 Y. n% y  E9 p, N% }
│  │  │      03.版本控制工具集中式和分布式.mp4
& N2 }- T) k2 H│  │  │      04.git的产生.mp4" d3 t: R9 f  i$ ]* v  Z
│  │  │      ' B. d+ `* P3 B$ M& P, e
│  │  ├─2 git提交文件3 ^4 \; G  j# e3 Q$ \9 B/ Q
│  │  │      05.安装git.mp4
8 o2 E7 t+ d0 d$ y) C8 v, K│  │  │      06.自我介绍给git_以后提交名称.mp4
4 e+ M) p. G1 m! P1 X  C│  │  │      07.git初始化.mp4
$ s  {5 U+ s' r- K│  │  │      08.忽略文件.mp4- S+ p0 Q  Z! o. {7 I" j" f
│  │  │      09.git status查看状态.mp4' M; k& a& }$ g1 p; @6 A
│  │  │      10.添加和提交的命令.mp4
5 l( t" S. t# O9 v- _# e2 g│  │  │      11.git log查看提交记录.mp4
5 y1 g5 }; f) ]│  │  │      12..gitignore作用.mp4
# L9 I$ Y% @( R" b- _│  │  │      13.提交流程回顾.mp4
. Q# ], X6 v  C/ F5 @( i│  │  │      $ W, [8 R; N" K* B& J0 u
│  │  ├─3 版本回退
  v( v+ K- `# |│  │  │      14.版本回退.mp4, `7 A) k; e. R; ~2 ~9 B6 ?3 P
│  │  │      15.回退到原来的版本.mp4
1 h; T, Y9 a0 D9 K! i│  │  │      16.小bug.mp4
( R2 a+ W, A2 X│  │  │      
) C) I4 n8 {$ _' ^) E9 V7 r' B│  │  ├─4 git分支  E' c. z% k: e, x" s) l
│  │  │      17.分支创建切换和删除分支.mp4) _+ e3 g+ o% M! ^. f  R: h
│  │  │      18.分支合并1.mp4: E* w0 C# J% g# a
│  │  │      19.合并冲突解决.mp4+ i4 d  G& I3 Z) ?$ F( n: N+ z
│  │  │      
2 n: u, y+ O# G3 d│  │  └─5 Github的使用
8 o- Q8 l8 l2 p3 {│  │          20.github简介.mp4
! x( q9 f) S# t1 H│  │          21.生成公钥和私钥.mp40 A! ]6 g9 ]+ r5 I  Z
│  │          22.创建远程仓库.mp4
) q& q  ]$ G, V7 P+ R% }7 y, {+ V│  │          23.关联远程仓库.mp4  ^0 v" R6 C* K9 `, e% E
│  │          24.推送到远程分支.mp4. I% f1 i9 @$ `  R1 P
│  │          25.推送其他分支.mp4
. O& h! v0 E$ F) @) u6 r  Y│  │          26.zhangsan分支开发及推送.mp4
) o. K, s* c% u: r  U" h│  │          27.zhangsan推送master分支到远程master分支.mp40 @$ O8 t2 A$ U4 l& n. z! d
│  │          28.新用户克隆代码.mp4
0 S; |! n% ?6 [$ \+ b: \* x# m│  │          29.lisi推送分支到远程分支.mp4' b1 r, V, R6 l* b# t& s
│  │          30.推送到远程仓库冲突解决.mp4
9 w/ Q: N! S! v* u( i- s│  │          / A6 F0 v$ S7 {' \# q9 o
│  ├─3-2 kotlin面向对象
4 O. ]* w6 i1 }4 y0 N$ ^: X. g│  │  ├─1 面向对象入门
+ |, S6 k  `& {  k) ~( z2 l; m* K│  │  │      29.面向对象.mp4+ @' G1 C/ h$ @
│  │  │      
7 k4 O( U! W% J8 G$ v# ^│  │  ├─2 运算符- b, o. o- f9 }: w9 t) F9 I, l
│  │  │      02.运算符重载练习.mp4/ _6 u+ n9 S$ l1 k" j3 a6 P) O
│  │  │      30.kotlin的运算符.mp4! H. Q8 q4 O5 R" `. O
│  │  │      31.运算符.mp4: n$ j6 p0 T% N
│  │  │      d3-01.回顾.mp43 g6 }3 l% h  c# A
│  │  │      
/ s: _. A5 h' M9 P; T1 S9 r* o  K│  │  ├─3 访问器: u2 L* k# V$ c  u; `
│  │  │      03.get和set方法.mp4
9 [" q  ~) Z7 K. `│  │  │      04.访问器可见性.mp49 i3 O: i% ^6 B- _+ e; Y
│  │  │      05.修改访问器.mp4) B! f3 N8 s1 w6 T
│  │  │      1 g5 h: ^! e$ b  ^7 W7 j
│  │  ├─4 kotlin对象创建过程
9 v2 O* R9 y" n# x/ v3 T3 V( n│  │  │      06.对象中init使用.mp4
/ Q% B; N$ P/ i6 a8 G│  │  │      07.构建函数参数使用var和val.mp40 ?8 }: O: J# f3 J4 h
│  │  │      08.次构函数定义.mp4
7 P/ ?$ y2 Z; ~4 T4 @/ m│  │  │      09.次构函数参数使用.mp4% t+ Q" K, L/ @! {$ v
│  │  │      10.init和次构执行顺序.mp41 x3 p2 _+ k, F5 X6 d- T
│  │  │      
6 I0 W. y: A. p! L4 G& C! B│  │  ├─5 封装8 f! f3 i+ x1 b
│  │  │      11.封装.mp4& Q( V  ?% }$ L  r
│  │  │      
" E. T+ m" u; V; i9 X' ?│  │  ├─6 继承# N+ s/ [3 I7 Q& ]4 E' J( O
│  │  │      12.继承.mp4
$ f/ H' |. x/ `7 C" p1 G' V1 v│  │  │      : R' Z- O8 R2 p$ c
│  │  ├─7 抽象
$ q; `3 P8 c* m2 B! ]% B9 Q/ K│  │  │      13.抽象类.mp4
3 D3 b7 I- h4 i6 `0 }6 F; y│  │  │      14.抽象类总结.mp4
; o. @2 q6 k5 _( W6 j% ?$ b│  │  │      ( z3 f1 _" K0 N/ I1 O9 q
│  │  ├─8 接口; x1 z' H( J4 ~" O, \$ c$ b
│  │  │      15.接口.mp4; q$ S) P$ n; Q7 k7 ?0 N
│  │  │      16.接口中字段处理.mp4% k+ c0 J! V3 {: X! D: b
│  │  │      17.接口中方法的实现.mp4/ {7 k4 p0 G7 q" M5 Q  F! w" g- X
│  │  │      18.多态.mp4& c# l9 R; L# `1 u: |  k
│  │  │      
+ ^. j& ~2 h- N5 T- t0 d│  │  └─9 面向对象综合案例
( P6 ?% d# \1 P│  │          19.智能类型转换.mp48 g% L& h1 I. j( g$ L
│  │          , T' \8 u' ^  f- j; {
│  ├─3-3 kotlin基础高级' g8 _3 ]# m& ]2 J) f. P) ^
│  │  ├─ 1 嵌套类和内部类2 s% x+ p2 q5 P
│  │  │      20.嵌套类和内部类.mp4$ y+ q2 B4 A; c3 S  l# K0 R8 P
│  │  │      21.内部类中使用this.mp48 g) b) I# Y1 ^4 L5 q
│  │  │      
& f2 F3 l. m) C$ V: |, l5 t│  │  ├─10 数据类
5 w5 D( g9 I( Y; y: g' ?│  │  │      19.数据类.mp41 ?- ~$ D% F6 \. g7 J! K9 A
│  │  │      $ K5 B' |. p* d+ h
│  │  ├─11 密封类( }# m5 x3 W2 V+ d, x8 h7 L8 Y
│  │  │      20.密封类.mp4
$ z, z. w5 v" c! b7 D, ]4 {" }  @. k│  │  │      
, k, w6 B- }9 c" W- t! u/ Q1 Y│  │  ├─2 泛型
% c6 P: t8 F* C4 I│  │  │      22.泛型类.mp4
) _; I: H2 u9 U; S1 E│  │  │      23.泛型函数.mp4# [* ?5 K% E8 a$ W; u
│  │  │      24.回顾.mp4( U5 P! N/ e$ B+ g7 ^& n
│  │  │      25.泛型上限.mp49 Z/ R  c4 x& C
│  │  │      26.泛型擦除.mp4# [, R( c) W* c5 K# G- K
│  │  │      27.泛型类型投射.mp40 I5 p  v3 |, _5 G8 T% ]7 K, H+ g
│  │  │      28.星号投射.mp4; e0 n' a3 x+ ^  q; a+ J# j
│  │  │      + f3 q' e7 t8 O& U' P
│  │  ├─3 中缀表达式* z' g# ^5 o0 X+ F3 v  e
│  │  │      02.中缀表达式.mp4% z+ `" Y- t4 Z" U/ S  h; ~
│  │  │      d4-01.回顾.mp4
5 O# j! r( n0 ]/ Z│  │  │      * {% y% K% y, A3 H( W+ q' V/ p, r
│  │  ├─4 类委托和属性委托
3 g7 g  y. G3 R( C1 c" B& H- Q+ d│  │  │      03.类委托.mp4. Q& Z4 n3 g! ?/ D
│  │  │      04.类委托实现方式二.mp4
! ^4 P3 @4 \/ r; ]% O│  │  │      05.委托加强.mp4
# t2 A8 J9 p9 r, B; h) N; h/ c& T│  │  │      06.属性委托.mp4
5 Y  @3 {. r6 Z' k; c' W│  │  │      7 f; p& D% Z* }. b3 `) U2 W
│  │  ├─5 懒加载* e8 W: i8 g( L2 f" [
│  │  │      07.by lazy惰性加载.mp4
# B1 Z: H$ a1 i- d│  │  │      08.by lazy和lateinit.mp4& f2 C- q: I: C: x8 l1 c" K) j
│  │  │      3 Y$ F% v$ z+ y  x+ Z. {2 D' }
│  │  ├─6 扩展函数
9 Q# c3 j4 f! O. k4 `# b# c│  │  │      09.扩展函数.mp4
9 n6 d6 c0 `5 u# y8 B│  │  │      10.父类扩展函数子类调用.mp4
) U) z7 ^3 h" _& K- B│  │  │      
0 }8 T& R" ^& s% g( S5 V! p, u│  │  ├─7 单例模式, d& z# z2 d9 V& T% L7 K3 }) \
│  │  │      11.单例模式一_饿汉式.mp4' l$ U  q+ @0 _
│  │  │      12.单例模式二_懒汉式.mp4
. [. a$ L) v9 `( ~* J│  │  │      
6 z1 u6 t: j3 U( ]6 _" I│  │  ├─8 object单例
. x5 r# \6 ^5 l+ u- O│  │  │      13.object单例.mp4
8 h* ]' K* ^* a/ b* J1 t│  │  │      14.object单例问题.mp4- A' m% c( r4 L0 @% _0 C6 I
│  │  │      15.伴生对象.mp4
; F- {! ?$ S. y$ i4 j6 ~│  │  │      16.实现和java一样的单例.mp4
' V& @; a  L1 G9 N9 E│  │  │      # R. I! f2 A5 l6 E! Q8 {; k; o9 j
│  │  └─9 枚举
- Q4 K1 X2 l3 E3 \' }│  │          17.枚举.mp4' Y9 O, ~4 i  b! ~, I
│  │          18.枚举的高级用法.mp4
. c# ~1 Y3 n+ F. v- N7 [│  │            W8 [5 {  b; p( _. }0 h
│  ├─3-4 集合
  f# A) q1 b9 a; w, r1 N& h1 J4 ^) ~5 f│  │  └─1 集合函数
- ]* L/ {( @) L; B1 }│  │          02.java集合回顾.mp41 }1 F" r- ?7 G8 E9 e
│  │          03.koltin创建java的List集合.mp4  X" C# H8 }8 B9 w, F! s
│  │          04.kotlin的set集合.mp4
% a+ T) Y& F3 \/ H│  │          05.map集合的创建.mp43 G2 x- R6 M' ~5 h/ i, k1 v( k5 C" ^: }
│  │          06.map集合的遍历.mp4
; Q% I( D) E  n: k│  │          d5-01.回顾.mp40 t+ N6 i# z$ v% D) O) \7 @
│  │          . {1 z6 ^; b1 N9 e
│  ├─3-5 lambda表达6 \1 X- B/ z( K
│  │  └─1 lambda表达6 K+ `* z+ z+ D  }
│  │          07.闭包.mp4
6 ^( S& ?4 A, z/ Z: ?$ n9 z! Q│  │          08.高阶函数.mp4
4 e$ y; X% S2 C' T( }3 O0 Y! L+ i│  │          09.lambda表达式.mp4  }1 b$ M8 _- b9 k8 f: R% p
│  │          10.lambda表达式去().mp42 D3 p% g7 f  i& i* a2 K
│  │          11.有参lambda表达式.mp4& {: h0 `" C) R5 ~1 @! @
│  │          12.保存lamba表达式.mp48 G$ q7 f) v! v
│  │          13.lambda表达式使用it.mp4* s4 W% i* h: X5 Y
│  │          14.lambda表达式返回值.mp4
% s: r: J/ ?0 `. ?% k8 Y│  │          15.常见lambda表达式foreach.mp43 j# K2 g4 [% @9 z
│  │          16.常见的lambda表达式indexoffirst.mp4
! s" o7 g) }8 i$ i4 Z/ C: s0 M│  │          2 p. \5 G6 {+ l0 V( G
│  ├─3-6 集合函数
2 _: ~) m1 N2 ~( i: Y│  │  ├─1 集合函数
8 _- C4 J' Y; f- H( d│  │  │      17.查询练习.mp4
6 K. U# {2 U# p- c│  │  │      18.过滤.mp4
; o# r5 U- s3 H5 r5 n│  │  │      19.排序.mp4& F+ p7 S7 B6 p* J$ @8 t* H
│  │  │      20.分组.mp4
4 O1 K4 A- L1 `# p2 L; H│  │  │      21.最值.mp4
$ H5 |! ?% H5 [4 I5 c0 R│  │  │      22.去重复.mp4
" y( Q5 Z- O. B+ C│  │  │      23.集合拆分.mp49 |8 l0 ^  U& ^0 W* W
│  │  │      24.集合重新组合.mp4
9 R1 `2 x# J; O* V1 X* M│  │  │      25.集合相加.mp41 T$ n; ^3 u$ q: ?- W2 R: Z& _
│  │  │      26.上午回顾.mp4
% [% j2 {$ G! f% r' R2 s% P│  │  │      
" ~) A7 R" Q0 w6 M6 |& L0 R+ P│  │  └─2 四大函数
/ @! v, M8 ?" M6 z  f│  │          27.大接收者的函数字面值.mp4
# L; u$ z8 D2 `& y1 j( s/ w; [│  │          28.apply函数.mp4
0 H" \( p9 E9 J# o# }  o: D6 b│  │          29.let函数.mp4
3 U8 ^" v6 h0 T+ ~# ^' J! m4 c0 G8 M; p│  │          30.with函数.mp48 o4 ^) C: N  ]; O* ^$ o0 p
│  │          31.run函数.mp4
% f; M7 v: F8 V  v│  │         
# q/ B4 ?+ T. I  Y* M: r│  ├─3-7 回调
+ A5 n$ |( `1 O│  │  ├─1 接口回调
% w; v$ i/ B, q; O! ^│  │  │      32.案例前提.mp42 {/ J0 M, S  X
│  │  │      33.接口回调.mp44 i# |- F% N5 `! B6 |" {
│  │  │      34.接口回调流程.mp44 i1 |- N( R: x4 Q2 t) e# g6 ^
│  │  │      
, I+ ~8 r% b( y│  │  └─2 函数回调. s0 ]! m" U# {5 T+ q, M
│  │          35.函数回调.mp4; v4 |7 e+ g, q& a7 y. D% Y+ p
│  │          36.接口回调和函数回调的对比.mp43 b# X; I- n3 C" i" h
│  │         
. f5 _/ ]0 \( E) o4 R4 ~" v│  ├─3-8 集合函数综合案例
6 J6 x4 o; G6 G! J1 c$ ^│  │  └─1 集合函数综合案例
0 f9 ^" b' }* y│  │          02.数据库案例查询.mp4/ |. @( G% g7 Q9 y; K4 [( H4 Y1 m
│  │          03.黑马商店练习.mp4- o8 q# B& H. ~2 A/ y, j; t/ K2 S
│  │          d6-01.回顾.mp4$ Q+ a: Q& v. i, t+ X3 s/ ~
│  │          ; C: o6 u1 I4 O2 u
│  └─3-9 dsl. j1 S+ u7 O" p8 @  S6 {+ E) f
│      ├─1 dsl入门1 W# t* \, E1 V( m: k. Y
│      │      04.DSL简介.mp4
6 N4 W' C8 z0 L+ S│      │      05.class的普通实现.mp4
$ c7 G3 c) G9 B│      │      06.实现person函数.mp4
$ ~6 E. n+ Q  ^: E6 I) \6 d│      │      07.实现name属性的赋值.mp4
  B0 [, Y/ G$ |% k│      │      08.address函数实现.mp4; a9 i8 ?2 @  p
│      │      09.address里面字段的使用.mp4
" L4 e4 T, t3 r8 j# A9 e) y& |│      │      10.dsl流程.mp4
" ^9 Q  ?* s' w$ L9 u│      │      11.dsl优化.mp4/ {# S7 d& [  N" q
│      │      12.dsl总结.mp4
' j1 {! N3 c) l) G  i% b9 @; o│      │      
8 l2 m8 L- U! J, v9 n* K│      ├─2 dsl综合案例
3 D4 V. Y, p3 {: l) `│      │      13.普通实现html标签打印.mp4! m+ ]' G) N7 y" g% ^5 K
│      │      14.html实现.mp4
6 q4 w* o8 `' I: g; ]│      │      15.head实现.mp4* m6 B* u7 p" C3 @+ [9 y
│      │      16.body标签.mp4
, x: c+ e$ n9 E5 }│      │      17.div标签.mp4
; y1 |, u1 k+ v$ p/ }& U│      │      
, K) T; u9 I- h" I( P' @│      ├─3 构建器模式
& M% R0 P; V+ i( j6 @1 B│      │      18.构建器模式.mp4& u( C  z! b/ J0 Z  {- l5 j
│      │      19.DSL构建器.mp4
, Z& [: V  f2 L& p+ M5 S5 z│      │      20.通过构建器模式实现多个address.mp4
9 n. r* E% Z/ I7 ]│      │      21.多个address使用.mp49 f) d) b2 q! m+ Y
│      │      : U! H2 `; u6 M) ~
│      └─4 dsl缩小作用域
. _% [0 S1 V; p0 T9 I; R! S│              22.缩小作用域.mp4/ m1 n( g. C% N0 k4 _2 ]* E; i. l
│              1 E- M7 Q; e/ F) d/ F# w
├─4阶段 区@块链前端基础
8 N: p: H. @6 p1 ?4 v) n0 X4 U( o: w│  ├─4-1 HTML2 }0 b4 L  Z( Z9 i% I. c1 d
│  │  ├─ 2 html基础标签: I$ [9 B7 u& L# ?: |
│  │  │      05_标题标签.mp4
2 q* @+ a: p; m9 ^, \; U$ U) r│  │  │      06_字体标签.mp4
  H' x# A1 {$ q: a2 w│  │  │      07_颜色的使用.mp4# h/ h' t1 ]* o" w$ \* {2 O
│  │  │      08_其他标签.mp4
! S- y7 `& |' J! {. g! q: g: p│  │  │      09_图片标签.mp4- o/ B# z5 l. m& _0 H
│  │  │      
0 z& m5 F& U. \, g% P4 L; P│  │  ├─1 html入门
4 H$ Y4 V' ~& q( ~  U2 Y│  │  │      02_入门.mp46 z/ m0 ^5 k+ ^+ a# l
│  │  │      03_资料和软件.mp4
* I% Z& \/ ^) ^4 R& z│  │  │      04_html文档的基本结构.mp45 ?$ A; F5 e0 X' A9 q/ C
│  │  │      
" S* v7 E& H( W3 y: k│  │  ├─10 表单标签
9 \6 U/ j4 A* M3 m0 A│  │  │      21_基本表格.mp49 {9 r% V( X4 ~4 j- v  x5 }) y
│  │  │      22_下拉框和文本域.mp43 E$ Y+ {& E) j
│  │  │      23_常用属性和默认值.mp4
8 l1 J; X' }/ C; k│  │  │      24_表单的属性.mp4
  L' V0 S- j, J│  │  │      24_表单的属性.mp4.baiduyun.p.downloading
" h  P* I3 `1 l3 [│  │  │      
/ e/ t4 R9 C; Q% @) Y│  │  ├─11 html学习方法
. s! E4 {: g) ?( X│  │  │      25_学习方法.mp4
9 P. Z( n6 C% r│  │  │      
, S# i7 v, L/ A: r│  │  ├─3 案例_程序猿+ V( m. R0 }+ X' C8 i
│  │  │      10_案例_程序猿.mp4; @7 B/ }# q8 t1 T6 j- t( I7 `
│  │  │      
- C4 f; \1 H) G& u! Y8 b$ ^│  │  ├─4 html列表标签
( _% @" v1 G4 ?2 y. J/ Z& s│  │  │      11_列表标签.mp4
2 n8 ]9 Q" d3 B5 {9 d; ~6 a# ^" ]│  │  │      
0 D& N3 E; n9 d8 G. D& @│  │  ├─5 html超链接标签7 V3 V9 `. q8 ]5 A9 e
│  │  │      12_a标签.mp4; F* |$ ~! A) k6 e! R9 y  q( r
│  │  │      0 a. p+ o+ h$ k% u
│  │  ├─6 案例_友情链接9 |8 g" n* y" N3 C) k9 b3 l
│  │  │      13_案例_友情链接.mp4
7 [9 P/ ?$ Q# @9 n+ A( y│  │  │      
7 J% b6 q- g" b! t6 E& S! z│  │  ├─7 案例_回到顶部
! k  Z5 n# L7 a  N│  │  │      14_案例_回到顶部.mp4% L' b- v3 F  s' v9 s
│  │  │      0 R7 K; a1 x8 p3 O4 C( R6 _  r+ z
│  │  ├─8 html表格标签
! ]% i. U5 C  `3 f6 \. r; L│  │  │      15_基本表格.mp4% I  E; q9 r& t3 x1 |6 b' ~6 l5 {
│  │  │      16_表格的属性.mp4
  d, A% u- I9 A│  │  │      17_表格的结构标签.mp4
4 ?0 L* p% f  @9 k│  │  │      18_行和列的删除.mp4, I. y& |  T8 ^/ x) f5 L
│  │  │      19_单元格的合并.mp4$ e3 q! O9 X, c" p7 _; k8 z
│  │  │      
& C8 ?: I- a+ ~% U│  │  └─9 html框架集标签$ _  g7 }& ]1 {: l: h/ U+ l
│  │          20_框架集.mp46 p& n# m# X+ u, s& ^
│  │         
3 n" r' x0 n- M: }4 k│  ├─4-2 CSS
) |: M2 G" b! ], D2 w! J$ Q│  │  ├─1 css入门# U" t; P; j( R3 ]
│  │  │      01_CSS的简介.mp4
+ C1 ]' y0 H( H. K: R& W" X│  │  │      02_入门_QcrI3.mp45 b2 S$ R! v2 e, B: H. A
│  │  │      7 ]( M5 j% }7 C3 V! G
│  │  ├─10 CSS定位5 P4 K- D" Q5 _" i$ D
│  │  │      32_相对定位.mp44 E5 p8 f9 W) X2 Z( ~3 s+ X4 y( I6 [
│  │  │      33_绝对定位.mp4
( @& w8 Z/ B9 |4 ^2 H- m' s& m│  │  │      34_浮动.mp4
" I" C0 A) G0 G: a, O5 L8 U; E- M│  │  │      35_其他属性.mp4
+ D' B6 R, R5 V. J, U│  │  │      * A  {& Z1 t" z. r# X$ A: v; V8 g
│  │  ├─2 css使用方法/ V7 T5 L  {, H- b6 e% _
│  │  │      03_使用方式1_行内样式.mp4
( e: Y/ d* [& P& E4 D$ E1 V│  │  │      04_使用方式2_内部样式.mp4! z7 P4 D" n2 m+ b3 W
│  │  │      05_使用方式3_外部样式.mp4
1 p( ~% M; J8 R% l│  │  │      06_使用方式4_导入式样式.mp4) t, |# d- y) }8 a
│  │  │      07_优先级.mp4
: L0 y% [5 r& U6 c9 ~│  │  │      
# Y$ J; Q( E, u0 T- V, l7 @│  │  ├─3 css学习方法$ }3 ^% p% o# M0 O! o) f0 |
│  │  │      08_CSS学习方法.mp4! q1 ^9 l% p* S/ v
│  │  │      ( j! [3 ]$ w1 L$ O/ v7 F, Q1 {
│  │  ├─4 css选择器
/ l% r0 x- o1 c& }│  │  │      09_标签选择器.mp4
( g2 n& Q7 L3 K4 \, h6 c# V, D│  │  │      10_类选择器.mp49 V* b6 r2 X6 g( F1 ]# I6 s
│  │  │      11_ID选择器.mp4
6 |# c! Z1 u! l7 ]+ f9 Z  N│  │  │      12_群组选择器.mp4
; y1 [) O0 ~2 A8 y' ^│  │  │      13_全局选择器.mp4
* P  D* p, c1 W' V0 _│  │  │      14_DOM的关系.mp4
4 z1 E/ J  [. ?+ U0 u& f; T$ E│  │  │      15_后代选择器.mp4
9 w! m7 F3 x# Y0 v, N3 |3 ?│  │  │      16_子元素选择器.mp4
, |8 p% J5 N! r9 h8 @7 z│  │  │      17_ID选择器.mp4/ w$ J/ M! m0 T; c1 \9 Y! K
│  │  │      18_伪类选择器.mp4: a, A: }2 A0 G& D7 C2 z
│  │  │      
, @3 Y! b- g& S" V) K│  │  ├─5 css继承
: c+ X2 l: y1 E7 b! a8 F/ y│  │  │      19_继承.mp4- p0 a) r( K& Y9 P2 x+ o6 Y' [
│  │  │      $ e0 L; i; p; k
│  │  ├─6 css层叠$ r, Y# x1 W: z
│  │  │      20_层叠.mp4
9 ?1 H$ x( s/ G: D$ P. g│  │  │      
, _2 f/ v( r9 `' G$ y. q│  │  ├─7 css命名规范$ w$ E- o+ J  R$ e* g
│  │  │      21_命名规范.mp4
  ]9 z' v& P1 Q│  │  │      2 U6 n- U; i1 [0 J: M
│  │  ├─8 css常用样式
5 T/ s, ~9 ?# t7 F/ B! B│  │  │      22_背景样式.mp4
; R% v/ e/ ~8 r' R( w% Z' B4 g│  │  │      23_文本样式.mp49 a' {0 o" ]4 q7 |7 X# o0 |
│  │  │      24_字体样式.mp4( K; p5 F& W8 S0 D7 d9 x
│  │  │      25_列表样式.mp4
8 b% _/ _5 G9 H5 d# F+ g│  │  │      26_表格样式.mp4( ~7 J1 ^- d1 d# R5 S
│  │  │      27_轮廓样式.mp4) b9 C: P+ L! ?: T; X# r9 g
│  │  │      
2 J% r) O' P! @8 i, k; j2 [) y' p│  │  └─9 盒子模型
- Q  I, |# I: K  X" y. A│  │          28_盒子的简介.mp49 z+ Y6 s! J, a  j3 x
│  │          29_内边距和外边距.mp4# p; o- W4 T: C1 E8 }& L
│  │          30_盒子的注意事项.mp4% W( ]# G+ E$ j9 }/ ~
│  │          31_HTML元素的分类.mp4# }6 p6 t2 H3 W' r$ l4 ?
│  │          * f" K7 Q" u. [9 S. [& G
│  ├─4-3 JavaScript
' h) f$ {: W) F! S' L6 O│  │  ├─1 js简介" e" q: w% {$ ~9 c
│  │  │      01_js的简介.mp4
1 A6 K) C& G  b│  │  │      # `) V9 A+ @1 @! T
│  │  ├─10 案例_隔行换色1 k$ T& G; M6 _, _
│  │  │      案例6_各行换色.mp4- B6 g3 H# A4 A
│  │  │      5 S; P- _' q( O7 a! q
│  │  ├─11 案例_全选全不选: U3 v- E$ D. p) f- l( j
│  │  │      案例7_全选全不选.mp4
0 T' t. P) ^& E, Z│  │  │      9 n1 o) X* i5 z/ L) I
│  │  ├─12 案例_省市联动8 ?3 L7 y2 j% C
│  │  │      案例8_省市联动.mp42 _8 I, W+ t1 V% m; x) _$ b
│  │  │      8 F& Z5 {! C: T5 i# L0 o% l! }
│  │  ├─2 js基础语法! w  o  }. E5 A$ q* D" J8 j
│  │  │      02_基本数据类型.mp41 m: |$ A6 P% ^
│  │  │      03_运算符.mp4
" r$ p# F6 p' g│  │  │      04_流程控制语句.mp4
( K# p, n# O7 [! p│  │  │      05_函数的定义.mp46 a6 e4 [2 e1 X
│  │  │      06_函数绑定的第一种方式.mp42 `; _3 F* {  ~
│  │  │      07_函数绑定的第二种方式.mp47 N$ C5 z8 A  S. f+ [# d% ^# O! p7 K
│  │  │      08_数组.mp44 ], @$ d  d( {5 H+ g/ r6 M, @8 _
│  │  │      09_正则表达式.mp4
! k: d7 _% i! J2 V. J( f│  │  │      10_日期对象.mp48 J) F# \  V- `
│  │  │      ' j* X0 Y: t. b+ ~
│  │  ├─3 DOM介绍
2 }% a- u) M' j, O5 r2 v│  │  │      11_元素的查找.mp4
! Q6 ?* t: V, F3 U# A/ \4 y│  │  │      11_元素的查找.mp4.baiduyun.p.downloading2 g' E0 q5 o1 ]
│  │  │      12_设置CSS样式.mp4
+ j% F* V9 {9 P: H9 J│  │  │      13_内容的获取和设置.mp45 F. o" ~0 [6 O( w$ r8 I
│  │  │      14_属性的获取和设置.mp4
; z6 v0 L9 @+ c% q│  │  │      15_鼠标相关的事件.mp4
4 p3 H. N' Y9 u$ ^! Q2 K│  │  │      16_输入框相关的事件.mp4
# n- _  y5 ~, R$ [7 B0 \, g│  │  │      17_表单提交事件.mp4
! V# s6 [0 f% ?0 b! P│  │  │      18_onChange事件.mp4# r2 f3 V, \1 k, R- ?+ v8 |
│  │  │      19_键盘事件.mp4
, ^8 T8 ~+ w) H- d6 X7 u9 q│  │  │      
, H3 U8 h4 l( Q! U. S$ g6 m│  │  ├─4 BOM介绍
" w: d2 g# t( T) w) G$ @: l+ m( V│  │  │      01_window介绍1.mp4
. Q. |0 F8 [4 N/ I9 h( i│  │  │      01_window介绍1.mp4.baiduyun.downloading' U" p% {' ^6 D3 b8 A
│  │  │      02_定时器.mp4! \- J* m/ x# V/ U: J5 I+ t
│  │  │      03_history和location.mp40 G- _4 V3 v% A# [
│  │  │      
: V& c( n3 {! a; j, f│  │  ├─5 案例_记事本4 z! B4 \- D3 N8 o) x* p" u: N
│  │  │      案例1记事本_实现.mp49 a2 L- M1 h+ l5 M; Z, D0 o" u
│  │  │      案例1记事本_思路分析.mp4! G* ~5 D4 c7 l, Y- x6 M* [
│  │  │      
* r% A9 x0 x! F/ R: T8 O5 J" g│  │  ├─6 案例_任务清单' S6 Y  I1 U+ ?) }* o; {  E5 w
│  │  │      案例2任务清单_1_保存数据.mp4; `5 q1 e# O3 G( T& X# @7 f3 t! V
│  │  │      案例2任务清单_2_加载数据.mp4
( O! E' M) u4 ^2 \! C, A% k│  │  │      案例2任务清单_3_修复bug.mp4- @, H! F5 G2 G, V: D( u3 t/ ]
│  │  │      案例2任务清单_4_设置样式.mp4, Q6 [: u1 s% S  K- S, n, @
│  │  │      案例2任务清单_实现思路.mp4
8 g& q8 G, ~+ Y( A! O) G│  │  │      
) k4 K2 x# Q! ]; g( s2 i│  │  ├─7 案例_表单校验1 k& s7 p: p9 |5 e
│  │  │      案例3表单校验_1_手机号和密码的校验.mp48 O; Y" y2 y3 G+ L
│  │  │      案例3表单校验_2_其他校验.mp4; e0 E- t- g6 n" N( h/ D
│  │  │      案例3表单校验_3_校验表单.mp4! \( ]+ ~1 [" K
│  │  │      
& j- S8 B+ l, D5 Q) l0 Z+ ~│  │  ├─8 案例_轮播图
* b1 K1 u0 _: ~7 b& S! K+ g│  │  │      案例4_轮播图.mp4; s: F+ O2 g! P2 c' M
│  │  │      + N& s- s' p, H. Q; M& h
│  │  └─9 案例_弹出广告1 Z# w, D/ Z/ N* y1 S
│  │          案例5_弹出广告.mp4
% D+ B+ v9 s! Y│  │          % ?, j8 T4 }/ b; [6 [: T
│  ├─4-4 JQuery- N- V; s$ B+ T
│  │  ├─1 简介0 t  v8 f5 m9 a" e1 P; R
│  │  │      01_jQuery的简介.mp4
) w1 x* N. ^" q* B│  │  │      02_jQuery的学习方法.mp49 q$ a) r1 K! x; H/ c. p
│  │  │      ; v- v5 @* \3 A! c
│  │  ├─10 JQuery Validation的使用
0 x7 G5 e1 S: Z$ u│  │  │      08_验证插件的使用.mp4
: r6 R2 L; S  m3 K/ `( z; _6 i. }│  │  │      09_自定义校验规则.mp4& t  c2 H& ?6 c, J$ X! A
│  │  │      
9 k6 P- U. P- N% K: P! N  w: @│  │  ├─11 百度API简介" C+ R; y7 q8 `0 J. ~! g' S5 B6 ?
│  │  │      10_百度地址的自动完成.mp45 {2 f3 x7 K) f0 Y5 _. L3 M
│  │  │      ' m: F$ p* J9 N. U! K0 s* J
│  │  ├─12 省市联动插件
% e$ Y/ u6 W3 q3 T: v" E│  │  │      11_省市区联动插件.mp4: K2 ]" ?0 u0 b2 K- e6 k7 S
│  │  │      2 }8 e4 B3 c$ U
│  │  ├─2 JQuery中的API的介绍
9 I, h' ?  w/ m- ^& P1 H6 L8 r9 i│  │  │      03_jQuery对象和dom对象的转换.mp4
0 q* O: a2 q8 |6 V2 v│  │  │      04_页面加载成功的函数.mp4$ \3 D/ m$ a3 s; {9 s' Z0 @/ Y0 w, V' l
│  │  │      05_事件的绑定.mp4* }  A9 a% x3 T; r6 @# E1 N: y
│  │  │      06_常见事件.mp43 ]5 _. q9 u2 V& X) i
│  │  │      07_效果的API.mp4' ^) f9 Y+ ^8 M8 E5 x. ~3 @
│  │  │      08_基础选择器.mp43 I- V( L4 ~  h/ |0 {- m
│  │  │      09_层级选择器.mp4
( u& \7 w9 b, v+ O  @8 K│  │  │      10_筛选器.mp4" h) h. [7 N$ |; |6 H
│  │  │      11_包含选择器.mp4
7 q( o( G, n4 ]7 d" {/ o# \& Z│  │  │      12_可见性过滤器.mp4
- w9 s" \" r, Z1 B: z│  │  │      13_属性过滤器.mp4. R! _4 q3 x3 e
│  │  │      14_表单过滤器.mp4
- m  V2 h6 v# T+ ~│  │  │      15_属性的设置和获取.mp4' Q- ~' N) w" R
│  │  │      15获取和设置CSS属性.mp4" h8 w& s* F. S* g; P1 _' O& [
│  │  │      16_遍历.mp47 W& t' ?+ G8 w& l7 L' {! G
│  │  │      17_操作元素的内容.mp4
3 L) ?% c# `" g/ ]/ J- F2 a│  │  │      18_文档的处理.mp4# s0 f3 H: {2 f) y% j
│  │  │      19_表单对象的方法.mp4- R0 ~2 M0 a& n. d1 _. t
│  │  │      20_其他方法.mp4
# ~' D' i7 q' Y$ [9 o- d│  │  │      
" {# v! j+ j1 j, t/ e# H│  │  ├─3 案例_轮播图4 b# H% G0 b4 Z4 j4 E
│  │  │      01_轮播图.mp4
7 f: [  X* l- ]7 p; L0 {│  │  │      $ W. ^) l4 Q; c
│  │  ├─4 案例_弹出广告# l$ A: @2 v) A( x7 T  f% Q
│  │  │      02_弹出广告.mp4- [  ?- l6 L% v) V# r
│  │  │      02_弹出广告动画效果.mp4
$ C( j6 S/ P) ~9 J& v│  │  │      % [! z& W4 k6 \2 b2 b0 b" }
│  │  ├─5 案例_隔行换色
! k$ ~% Q; W7 K" y1 M│  │  │      03_隔行换色.mp4
1 ?  ^: b4 h/ q# O5 y' @6 z' h" ^9 H8 c│  │  │      
! Y( D7 S9 W% G% u; Q│  │  ├─6 案例_全选全不选
! U. O( L7 V- G│  │  │      04_全选全不选.mp4% N6 U  [3 j' B) r% n4 ~, n& F
│  │  │      ! u6 P) @7 `' k; x0 n1 `
│  │  ├─7 案例_省市联动4 S( b$ m8 A- m/ L
│  │  │      05_省市联动.mp4
0 _, w" K3 m" X8 H3 W8 t( E│  │  │      
% h5 V3 y4 T, }7 Z5 T│  │  ├─8 案例_左右移动1 m* k. w' s' l6 F# ]. h9 K
│  │  │      06_左右移动.mp43 B: t  g- T2 B  g
│  │  │      ) a8 X5 u& ^; c; e' ~. M
│  │  └─9 github的使用8 n& B( M% p2 ]( S4 v' F
│  │          07_github的使用.mp4/ t% x6 w3 o! E' @
│  │          ) g9 }3 _2 h$ a
│  ├─4-5 BootStrap/ W6 q+ P+ a1 `/ V7 O! C
│  │  ├─1 简介
9 a# N" C' y  b3 I0 z0 x9 h! W│  │  │      01_简介.mp4
" b1 \( |5 F& Q3 P1 ?. @│  │  │      8 L: [2 j' Q# ^+ K: ?; v3 R
│  │  ├─2 全局CSS样式
5 g% ^: Q% |5 a3 B- p9 y1 d6 S2 J+ e- H│  │  │      02_使用步骤.mp4  X; P) ^5 F1 C; A
│  │  │      03_排版样式.mp4
- M' Y" ]5 O* V7 f: m; T' O, D│  │  │      04_代码样式.mp4+ z! h+ j. k' t
│  │  │      05_表格样式.mp4
3 ?$ o+ |$ y# ~1 Q│  │  │      06_基本表格.mp4
* S6 n% H$ `, J% o% u7 `9 n│  │  │      07_内联表单.mp4
3 ]1 o. k* O* c7 |& n│  │  │      08_栅格系统.mp44 v6 d. o' {5 m/ L; r/ x2 ^% d
│  │  │      08_栅格系统.mp4.baiduyun.p.downloading9 K3 p( h2 \* M( f6 }1 D: ^
│  │  │      09_水平表格.mp4
* E0 n& {' g/ ~% j( D5 S│  │  │      10_移动设备优先.mp4
; M% C, g" l" |3 }- L│  │  │      11_表单的其他使用.mp4
$ O, w- _* Z% d; o+ C( A# B$ e│  │  │      12_情景表单.mp4.baiduyun.p.downloading. A+ J& h" \3 f0 _
│  │  │      13_其他样式.mp4
3 Y$ K/ h6 a5 ]$ I% B4 N│  │  │      
) j* x# ?. X! _0 C# O8 P│  │  ├─3 BootStrap组件  }+ I! h8 b! S6 ~$ y1 v
│  │  │      14_下拉菜单.mp4
, g9 Q3 u  J; |0 C, j│  │  │      14_下拉菜单.mp4.baiduyun.downloading
& s+ N4 m! |* w) ?8 ]6 q+ G│  │  │      15_按钮组.mp4
2 ]5 P! e7 B  p│  │  │      16_按钮式下拉菜单.mp4( @4 d; m% b4 w. w' E
│  │  │      17_导航.mp4
: x! ]+ O8 C1 f7 c4 Y, A: B" g# L│  │  │      18_导航条.mp41 R; j5 d& E+ `% K# D3 W
│  │  │      19_固定导航条.mp4
5 R8 L% O, y1 w% h! }. z│  │  │      20_路径导航_分页_标签_徽章.mp42 G3 z* P) k. k7 ?5 `1 v
│  │  │      21_巨幕.mp40 {2 o* e. q2 ^* d
│  │  │      22_缩略图.mp4$ q% l! p1 ~$ r6 D3 z% t
│  │  │      23_警告框.mp4
) b1 v+ K+ m3 S! B. h$ ^2 N│  │  │      24_进度条.mp4
) v; a5 a" z4 _8 B- \# o7 _│  │  │      25_媒体对象.mp4
* `4 k% ]/ H" C; D$ @, F5 ^4 q│  │  │      26_列表组.mp48 ?6 [( |" R9 g
│  │  │      27_面板组.mp4( o6 |& e9 n' G7 h
│  │  │      28_响应式嵌入内容.mp4
2 c. X9 t8 I% a, j│  │  │      % J3 _- N) ]- O) }+ g( Y7 d
│  │  └─4 JavaScript插件* F* @; r) h% h  B" ]
│  │          29_模态框.mp4
( t8 a- \: y4 i. V│  │          30_轮播图.mp4
  n! s$ a) {3 _3 B│  │          30_轮播图.mp4.baiduyun.p.downloading0 Z! {1 D$ r' e% l
│  │            |$ c: M8 e1 @- T6 ]- b
│  └─4-6 Kotlin与HTML0 U* C  x) {7 \& F1 |" G
│      ├─1 Kotlinjs的入门
3 _# E' P! Q6 }│      │      01_kotlinjs的入门.mp43 O: y. q% `* [; k$ S! E0 \8 o7 f
│      │      ' |% l' y8 ?/ \
│      ├─2 案例_轮播图
9 S) E. A& V" A7 Q# x. E│      │      02_轮播图.mp40 Z, ~" R* s/ x; F% O6 H4 I+ c
│      │      
. v- a/ p+ Y% t8 g& E( j/ N+ {9 [$ g│      ├─3 案例_弹出广告
, K9 H& ^7 y# u  p# Q+ U8 I│      │      03_弹出广告.mp4
7 D2 T: M% [" P8 y3 n│      │      
; j, ^9 V- r6 K( z  U3 ?0 `; W│      ├─4 案例_隔行换色
0 v7 u( f7 m5 F│      │      04_隔行换色.mp4% d1 @" F7 @" h# X- e# u: d
│      │      
3 K3 A2 `0 S/ ^% i3 x. }│      ├─5 案例_全选全不选" Z# D% G% v$ c
│      │      05_全选全不选.mp48 I: b: _5 Q7 w5 F2 g
│      │      % u* P, c) s; j9 _
│      ├─6 案例_时钟) r4 g* }' N. n( m0 f) _8 X( [% {
│      │      06_页面初始化.mp4/ k4 ^4 H) S7 ^. {( F' C
│      │      07_绘制线条.mp42 j' `) c. ?- g: Y! t4 w6 A6 x* m; c5 }
│      │      08_圆的绘制.mp4
1 X! l6 u6 y- e# l, r! T" ^' y│      │      09_填充.mp43 [) Z, d. P3 v9 d( N( r
│      │      10_绘制外边框.mp4
8 v9 A2 Y, d& r│      │      11_绘制60个小点.mp42 ^5 \& R( l; \9 m4 Z
│      │      12_绘制12个文本.mp4
) }9 o4 K* H/ X9 {& i5 ]: X│      │      13_绘制时针.mp4
# r- a8 Z& n- V7 N" b( ?. u│      │      14_绘制分针和秒针.mp4
5 A' s5 s" t* w+ d% \; J( X+ ^│      │      15_绘制当前时间.mp4, O* C& N# w; x0 ?
│      │      16_优化.mp4
7 @. M' G5 h2 L│      │      
7 b0 m8 n: E+ {) P2 g- B: }│      ├─7 kotlin入门
" N4 U/ k0 `: P2 l( Z│      │      17_kotlinx入门.mp4
& b5 u6 ^' w1 U& Q1 P6 A│      │      0 z, C# J2 \, g$ J: |2 M5 D
│      └─8 案例_主页
3 \2 [& ~" h+ x, v2 m5 s│              18_主页页面.mp4
( P8 G- e4 X5 I: Q! E( i9 T│              " V/ l" P2 M4 F8 a
├─5阶段 区@块链后端基础
) G; t: {0 |6 j5 J, D& Y- K: y5 h│  ├─5-1 SpringBoot基础
# |, L" x4 G" z│  │  ├─1 MVC设计模式+ E; n" ]1 {, O2 A) ~0 O- @/ z
│  │  │      01_软件架构解释.mp4
7 _% @5 K4 p% Y│  │  │      02_MVC模式介绍.mp4
# @" U- q: g; s; M' y│  │  │      03_MVC模式具体实现(三层设计).mp4
4 o9 N# l) M! k+ P! B! `6 e│  │  │      ) K/ e% g' o8 L, E$ N
│  │  ├─2 基础搭建  W; {$ j0 x$ x: U3 S) u
│  │  │      04_web常用框架介绍.mp4
3 `2 p  C. [3 a, b2 u; @+ {! I│  │  │      05_SpringBoot环境搭建.mp4
' O, @; r) q( V( a/ Z│  │  │      06_服务器软件介绍.mp4' y5 W5 J6 H/ B
│  │  │      07_tomcat 演示.mp40 E" i0 }2 [" P$ H9 a
│  │  │      
6 S% c; @: ?: y2 U. ?│  │  ├─3 Controller详解, a5 t+ R$ [* z9 ?4 f6 ~7 q2 `& H
│  │  │      08_第一个controller.mp46 ^5 J+ y1 O& R. D/ g$ c
│  │  │      09_第一个Controller(细节处理).mp4
  G7 L9 i0 f1 T2 D/ i5 ^│  │  │      10_postman 介绍.mp4$ I0 M$ C7 b- @4 F& n5 N
│  │  │      11_答疑 - 包的问题.mp4
8 k! f# T/ P, \0 W' u│  │  │      12_参数处理 - 接收简单参数.mp4
, o' J2 u3 ^- i( _│  │  │      13_参数处理 - 接收对象数据.mp4
4 a3 \  x! f7 W8 G+ f; [. S│  │  │      14_controller crud (添加学生).mp4
5 b6 F; T+ N$ T8 z9 f" Q9 |│  │  │      15_controller crud (添加学生 二).mp4. v; h( T6 S: o! |
│  │  │      16_controller crud(删除学生).mp48 j8 B8 K, P9 {( Z0 ~- y
│  │  │      17_controller crud(修改学生).mp4
8 `3 T  ~7 Z2 v6 k  h+ ]│  │  │      18_controller_crud(查询学生).mp4$ s0 h  q& b, Y9 b3 H' y% o" {
│  │  │      1 n0 U( p& o) }
│  │  ├─4 部署应用( a+ s7 c. d9 ^* b; f$ Q$ [8 y" W
│  │  │      19_打jar包.mp4
# P/ |# G4 x( h% B* Y│  │  │      20_部署云服务器.mp49 Y5 w4 {3 X. q
│  │  │      
" Y2 I8 D' R" ~9 X3 Y$ J│  │  └─5 自定义toobar
8 G' c/ R: {$ T/ i1 c│  │          21_idea自定义toolbar.mp4% a# H8 u! {2 r$ n) b9 i
│  │          6 N% E( M! E3 o6 w* `& K2 r* B2 v
│  ├─5-10 H2数据库" w3 P% A9 l3 l4 C8 _7 z- W4 R# r
│  │  ├─1 事务详解% k& ~6 P9 F6 w* c, }. j1 ~* |
│  │  │      01_事务 介绍.mp42 v" j9 }2 ?' q. z5 [2 L# E
│  │  │      02_事务 入门(命令版本 一).mp4
2 M$ G1 d8 h- j" D. M│  │  │      03_事务 入门(命令版本二).mp4) C' u: P: L5 r
│  │  │      04_事务 入门(代码版本).mp4
, ]5 B% R2 |& E$ s" n│  │  │      05_事务 特性.mp4
  ~, i$ {; Z' i0 M7 ^1 {: @│  │  │      06_事务 并发执行的问题.mp44 O" e! m: o. u
│  │  │      07_事务 隔离级别(读未提交).mp4
. @6 ?. |6 H+ P! g2 c, l$ {+ g5 l: S! a│  │  │      08_事务 隔离级别(读已提交).mp43 N. P5 U. t8 K$ W) u2 n, ?
│  │  │      09_事务 隔离级别(可重复读).mp4
2 {5 R; F' W; T" g3 N│  │  │      10_事务 隔离级别(序列化).mp46 K* \' C, G+ s: {" e& _# t
│  │  │      11_事务 写的问题(丢失更新).mp4# B% q, ?6 d. H& O2 H: d
│  │  │      
+ p4 K4 C9 y  s: F3 R5 m│  │  ├─2 事务案例% o/ O2 A6 j4 X
│  │  │      12_事务 - 转账业务(三层结构 一).mp4
9 F3 F! n+ A+ j, }│  │  │      13_事务 -转账业务(三层结构 二).mp4' L8 ~" p; p4 k8 }& N9 X& b
│  │  │      13_事务 -转账业务(三层结构 二).mp4.baiduyun.p.downloading
7 ~$ v& K. {* v, H- s, w/ |2 {│  │  │      14_事务 - 转账业务(事务位置).mp4" h- L5 H" d- m! M- A# V
│  │  │      15_事务 - 转账业务(使用事务 一).mp4' r) m2 H9 d3 G5 V- |& T7 G: A" Y
│  │  │      16_事务 - 转账业务(使用事务 二).mp4( o1 h/ L$ L! l2 I) ]
│  │  │      17_事务 - 转账业务(ThreadLocal).mp4
" l% w2 k' w/ w! C0 U│  │  │      18_事务 - ThreadLocal解释.mp41 }- [! `+ S* K2 x9 W" A
│  │  │      
0 r4 ]/ Y/ k: d+ j) ]1 \( a│  │  ├─3 H2数据库0 J! W9 n' v# \, I  [
│  │  │      19_H2数据库 介绍.mp4, G9 H! a, j/ t2 C. Q5 H# H
│  │  │      20_H2数据库 运行模式介绍.mp4, `% V) x+ A7 J
│  │  │      21_H2数据 java操作(内嵌模式).mp4
$ p1 l% B- w6 t│  │  │      22_H2数据库 java操作(server模式&内存).mp40 h5 ^  S  a3 _5 {7 z
│  │  │      ) O' N9 C  S# _7 \% \& w3 ^
│  │  ├─4 基础增强_反射, l: V. @0 x" e( r8 T
│  │  │      23_反射 - 介绍.mp44 j% \7 I: |1 [" M# i) H: f9 A  A' h; D
│  │  │      24_反射 - 字段操作.mp4
, o5 x9 `7 K6 o│  │  │      25_反射 - 方法操作.mp4
! K8 V: F, @+ _; g│  │  │      
" Z5 C3 |+ W, |  w│  │  └─5 基础增强_代理
0 W, r: Q3 N1 V( x3 G$ b% k& `+ c│  │          26_代理 - 介绍.mp4
, N3 ^* X. p' v$ k: C4 D│  │          27_代理 - 静态代理.mp4
: {) g* V' ^- D9 A, r3 k│  │          28_代理 - 动态代理(JDK方式).mp4" ?  S$ v. B0 M, B
│  │          29_代理 - 动态代理(cglib方式).mp4
1 B6 D  a: Z' U/ I# Z6 I4 X│  │         
2 I" L, q! v& z5 @│  ├─5-11 Spring
: w3 a5 Q9 c. u+ r/ q│  │  ├─1 IOC简介8 j. }6 i, b* s) f
│  │  │      01_Spring 介绍.mp43 H. Q  u- u* s
│  │  │      02_IOC演变(一).mp4
. J+ H* `6 M' X5 _4 {. T+ B│  │  │      03_IOC演变(二).mp4
. z; z# ]( ]2 s- y5 r. Y│  │  │      04_IOC演变(三).mp4
( p7 L3 u4 D; }2 f; Q│  │  │      
+ p4 x" x. y' X! w2 w│  │  ├─2 Spring入门
4 G, R" i' X0 g, D' Z* n9 ?) j│  │  │      05_Spring 入门(一).mp4! t7 d" U7 O, {' @
│  │  │      06_Spring 入门(二).mp4
7 v7 Q6 h9 U  v5 O- o% [│  │  │      07_Spring 入门详解(xml解释).mp4- R; m9 d6 E( r
│  │  │      08_Spring 入门详解(代码解释).mp4
7 J( m7 j$ C$ T│  │  │      
7 Q/ {9 v$ }0 Y/ s- }7 D│  │  ├─3 IOC案例6 S! L1 `, }, G, U. j- T7 C
│  │  │      09_IOC xml版本.mp4
1 t" U9 L  I, B( M: F│  │  │      10_IOC 注解版本(一).mp47 \' T7 W+ C3 X) x: K) e
│  │  │      11_IOC 注解版本(二).mp4
, K! m3 i/ D$ ~8 a$ u- X) Y│  │  │      ! C. p& l* p% I7 z( ^, j; n
│  │  ├─4 DI详解3 [# h# Z; h% e! h; i! O' u0 R0 y5 `3 y
│  │  │      12_DI 介绍.mp4$ |% Y  D3 x9 ~2 ?8 Q
│  │  │      13_DI 注入方式(有参构造).mp4
4 j+ I) x- y; w; O6 b& B4 i│  │  │      14_DI 注入方式(set方法).mp45 y5 p, s, |$ y9 O# w
│  │  │      15_DI 注入数据(集合类型).mp4
* o+ d7 e4 J0 I2 ~/ M  ?│  │  │      16_DI 注入数据(对象类型).mp4; `' }* V1 H8 q1 S8 e. Z  K
│  │  │      17_DI 注解方式.mp4
& Y# |" p5 W  Z" `│  │  │      
/ [+ W+ ?( D+ Y1 A│  │  └─5 AOP详解
3 _' g" e" @+ H) i' U5 F2 e$ Z│  │          18_AOP  介绍.mp41 c( k; D1 D) ?. M3 E" e7 k; V! ]
│  │          19_AOP 底层原理.mp4, D7 y" O! P5 M- u9 |
│  │          20_AOP 动态代理(JDK方式).mp41 {, a4 F0 ^, i3 T, M
│  │          21_AOP 动态代理(cglib方式).mp46 v- r0 h. b9 y5 t- k# G/ d5 Z! V% d
│  │          22_AOP术语.mp4
% q! N. Q- [; ]) m' f7 ?4 H0 |│  │          23_AOP 入门.mp43 q+ i1 p# v& k9 r+ G# D# V; n
│  │          24_AOP增强.mp4$ g( |6 C0 \% n/ t4 l' T$ P" Z0 b
│  │         
: a" j6 m: ?( Q7 P/ V! r4 @  ~- c2 B│  ├─5-12 JPA与DpringDataJPA
- g3 @1 I% x' P$ R) v│  │  ├─1 JPA详解
- {& K/ s& B3 z! ~$ t0 s│  │  │      01_JPA  介绍.mp4# ^8 e; i; T/ x0 J* d+ X
│  │  │      02_JPA ORM思想.mp4
+ {& i7 ]  v- c% N% e" I5 r│  │  │      03_JPA 入门(实体类).mp4
  x" l" Q6 o) b; w2 C. P* K) Q! ]│  │  │      04_JPA 入门(配置).mp4( X, k" ?' X4 E  i0 P
│  │  │      05_JPA 入门(测试).mp4! ]) r& C& X+ `0 G9 _, Y2 V
│  │  │      06_JPA 入门详解(实体类).mp40 n+ _% Z% g" Z" j3 J# r* z2 ~
│  │  │      07_JPA 入门详解(配置).mp4* t! o5 B7 R9 ^! ^4 A
│  │  │      08_JPA 入门详解(代码).mp4% W- T9 `4 f/ @' ~
│  │  │      09_JPA CRUD.mp47 `1 ]$ `# Q# s& C$ }4 t
│  │  │      10_JPA 对象时态.mp4- j4 y/ g' @4 Q! W& r  _* ]
│  │  │      11_JPA 多表关系(搭建环境).mp4
. ^7 V. @4 t- v  f  u│  │  │      12_JPA 多表关系(多对一  int类型).mp44 r' D. I0 H# L; ^, m
│  │  │      13_JPA 多表关系(多对一 对象类型).mp4
; c9 r2 x$ u! }# w│  │  │      14_JPA 多表关系(一对多).mp4
" ]9 w; ]# p+ I6 e7 w/ |* q│  │  │      15_JPA 多表关系(对象导航查询).mp4
5 H6 J: s- M! u/ J- U1 i: R│  │  │      1 k3 P2 Y! E7 ~/ C/ [8 @; |- r
│  │  └─2 SpringDataJPA详解
$ {' b$ v- S8 r4 q│  │          16_SpringDataJPA  - 介绍.mp4
9 M9 N) e' b3 C0 W! v6 v! I│  │          17_SpringDataJPA - 入门(一).mp4
4 \  g, T6 G8 T│  │          18_SpringDataJPA 入门(二).mp4" |7 s( {: h& g' n
│  │          19_SpringDataJPA 通用接口介绍.mp43 v8 l% C1 N6 t; T
│  │          20_SpringDataJPA 自定义方法名.mp4  Y2 l4 ]) @. Z9 k5 z5 ~3 l/ J
│  │          21_SpringDataJpa crud.mp4
4 r0 k9 z0 ^& Y' {( ?! E0 ?│  │          22_SpringDataJPA 分页查询.mp4
: O+ o( S0 x8 S! C9 Z5 g$ j( |6 y│  │          0 A  j) k& K. n4 K& Z1 w2 r+ P) |
│  ├─5-13 彩票项目-墨刀使用3 Q. ~4 @( A3 r3 m% X1 w
│  │  ├─1 博彩项目介绍: V5 n' Z# e4 i% b3 {, J9 r
│  │  │      01-项目的介绍.mp4) h% s) c2 t8 Y  [. O
│  │  │      02-友情提醒.mp4/ a! a. Q3 ^! K1 n  k
│  │  │      
+ Q# r3 P* F' O" x, Q5 Q│  │  ├─2 墨刀软件基本操作
- @( d- D2 ?8 H; E4 E+ O$ j  a│  │  │      03-软件开发流程.mp4
9 L3 Y& r, G  G5 R' m' ]% A│  │  │      04-产品设计介绍.mp4& z+ X) k, I2 ]% l) F3 d
│  │  │      06-墨刀软件的基本使用.mp4* |8 F1 B5 ~# S. N4 i+ u% I
│  │  │      07-分享软件.mp4
; |( q4 ]" b, C; r7 a│  │  │      
& o1 r& J4 N; d1 s. i! C6 L( f4 J│  │  └─3 使用墨刀设计博彩项目( r" U+ v9 ^, l  l
│  │          08-新建项目.mp4
1 q4 X8 n6 \7 X4 F│  │          09-首页-创建轮播母版.mp48 N! I/ b9 l8 ]$ @1 v
│  │          10-首页-博彩讨论区.mp44 n0 y/ B6 [. r: Y8 G  h3 z  T* C
│  │          11-首页-彩票条目.mp49 q  `1 j2 N$ g( u: v
│  │          12-首页-封装菜单母版.mp4  {, M6 Z3 \+ s" t9 T) s
│  │          13-首页-母版链接跳转.mp4. k# K% P8 D! i8 B( o' Z
│  │          14-首页-选号页面搭建.mp47 |( p( _0 Z1 p/ L8 E8 j
│  │          15-我的-需求.mp4
+ c- F. t# E  m" D2 {" @, D# @│  │          16-我的-设计.mp4
6 A3 ]. |" p/ g% i│  │          17-头像上传.mp4
5 @* Y) m  G5 c( A4 A% k& p│  │          18-注册页面.mp4
3 q- ?& L& Q! z3 k│  │          19-小结.mp4$ T. R$ C1 Q* e/ h9 z- s3 z1 k
│  │         
8 Q1 j+ r7 N+ K* p│  ├─5-14 彩票项目-前台页面
3 c, ^% L2 q7 F) y) s! v/ \│  │  ├─1 bootstrap编写博彩首页
7 q5 X9 J$ ]* `( z% m│  │  │      20-使用Hbuilder.mp4
  v) k5 r  o: {8 V) w+ {! u7 L- ]3 U│  │  │      21-回顾bootstrap.mp4
7 N0 `* k+ {* l/ t│  │  │      22-补充bootstrap.mp42 j4 }& ?3 z5 r/ Q
│  │  │      23-拷贝轮播图代码.mp4' r- _& g% M: t4 N# \! R: y0 @
│  │  │      24-封装彩票条目.mp4
! B$ U' d% [# Z; [2 @│  │  │      25-封装彩票菜单栏.mp4
( p% ~, T& B$ S3 c# y. V│  │  │      4 r( ?  D( V/ H0 Q+ ~; U
│  │  ├─2 bootstrap编写博彩详情页面2 }8 B  J+ W# K6 |
│  │  │      01-今日课程介绍.mp47 c/ u- G( c/ D  x# ?$ r$ R
│  │  │      02-彩票详情界面.mp4  j- o& c' D, k% W% E" e. q
│  │  │      03-解决页面显示不完整的bug.mp4
* F: q* E2 a) Q5 X# v│  │  │      04-页面跳转.mp4
( l5 f( e( L0 b│  │  │      
4 L+ s' F0 I: E8 o6 ?% f& Y│  │  ├─3 bootstrap实现登录和注册6 {2 _. I% r6 P' h- [: v& ^# T
│  │  │      05-完成注册页面.mp47 f8 L$ |" M% s. @7 ~/ d: W
│  │  │      05-完成注册页面.mp4.baiduyun.p.downloading
+ w3 ]- v5 M' y3 @6 g' w6 G│  │  │      06-完成登录页面.mp4
7 b7 D. p# R& ]. J│  │  │      
$ Z) i) T( X) F. G│  │  ├─4 css,js,jquery实现选号页面逻辑; v9 f% S4 c- _# P
│  │  │      07-完成选号页面-布局.mp42 A: K$ O: q) `0 I# E" D4 V
│  │  │      08-球的选中样式.mp4
- X, A) t& F0 q$ T) R│  │  │      09-红球选中的逻辑.mp4
0 Q! p6 d: g+ x/ ]│  │  │      10-蓝球被选中的逻辑.mp4
9 b# q. ^  [# r3 B│  │  │      11-随机选中红球.mp4
3 @$ U$ l( [" c% q! U. K. g│  │  │      12-随机选中蓝球.mp4
3 u* z! \$ B5 @6 ]# Q+ E  w6 }│  │  │      
% r* q% o& D, Q5 G3 `# M│  │  ├─5 bootstrap实现购物车页面8 o7 Z3 q( [; u4 Y) x; G' q: W
│  │  │      13-购物车页面.mp4
# l5 _# R! j' D5 {4 E" [* u│  │  │      14-订单详情页面.mp4
8 ]' a! _3 D6 v. T& H│  │  │      15-订单列表页面.mp4
; \6 A( A& w2 _/ c5 n  P8 o5 y│  │  │      
: l: P6 _. U& G│  │  └─6 快速实现后台管理系统
! F7 S4 I: A  n2 X│  │          16-使用轮子.mp4+ V' U1 S. y) [9 Z! I
│  │         
) A2 t, l* ?8 i; P6 O$ |│  ├─5-15 彩票项目-后台数据展示0 V8 h7 ?3 K6 J' _9 P
│  │  └─1 thymeleaf模板引擎学习  ^3 `! s4 }9 V" P3 i
│  │          01-课程介绍.mp45 A0 G7 y! G9 ^" p9 o% \
│  │          02-thymeleaf介绍.mp4: G' M$ a- I' y# ^; r- b1 y
│  │          03-搭建thymeleaf演示工程.mp4
2 _8 r  e/ O; p$ K: T│  │          04-入门案例.mp4
" I" r4 [" B& M7 \$ g. H% P│  │          05-thymeleaf特征.mp48 W0 r5 o4 F. b
│  │          06-url标签.mp4
0 q' m2 U/ O1 _7 R5 U/ m) J* \, [│  │          07-代码段标签.mp4
: B3 \4 m% s1 U$ r3 }" J4 d2 D│  │          08-条件表达式.mp4! l$ O' D4 C( @' w  n
│  │          09-循环处理.mp4
% k; e& Y: X. P- W" m│  │          10-js拼接数据注意问题.mp4
0 s# y4 z1 V* p* W& \) S  m│  │         
! S3 ~+ D4 x0 ^! q$ k9 E│  ├─5-16 彩票项目-项目结构分析
3 F- p' o0 N# b4 f( ~  u" @│  │  ├─1 高效开发的准备工作
: _; D+ N+ V9 x0 ]& ^5 m│  │  │      11-代码的热更新.mp4; N! A# q& o; B, @9 N
│  │  │      12-lombok插件安装.mp4" ]% _& z8 ]9 g* r) z. b
│  │  │      12-lombok插件安装.mp4.baiduyun.p.downloading
. W- K/ A) \3 U! {/ [7 N│  │  │      
  i0 S* w0 X3 ~! }$ Q" r% R│  │  └─2 认识项目结构0 T1 }, T% U; }+ d: s/ |
│  │          13-数据库表的关系.mp4
9 X1 K# n! [: E4 @0 _' ~0 b3 [) Z7 E│  │          14-分析项目结构.mp4" P( n/ W' ~( C$ Z( w7 m* `0 j
│  │          + c9 ^3 J4 g1 o9 I" o
│  ├─5-17 彩票项目-首页模块
6 t8 F1 F+ Z* t% y1 p6 w: G│  │  ├─1 使用springboot完成首页后台业务逻辑$ G& u' T: [7 x- z: u3 f
│  │  │      15-首页-后台代码实现.mp4
* ?+ J  K5 r# l( x9 c6 j- ]│  │  │      16-首页-前台代码实现.mp4
( I: q! p- Q" Q( ^3 \' S3 m9 o│  │  │      17-首页数据倒序排序.mp4: o! D! K! z9 c& ^* f6 J5 |& R$ ~
│  │  │      18-分页查询.mp4& n9 `! b- ~8 a( B% E
│  │  │      ; K( _6 L' R  P, n3 n+ s4 E7 v) E+ {
│  │  └─2 springboot完成开奖详情业务逻辑" C# ~# @/ E3 {% B1 ?2 K7 `+ X2 x
│  │          19-开奖详情-需求分析.mp4
' ^+ D  S# ~4 z4 u│  │          20-开奖详情-代码实现.mp4* b/ X& X. X" A" \, Q1 e/ n, {6 a6 K$ q
│  │          21-抽取底部菜单栏.mp4
* M0 q  S) T% l3 V% x1 J│  │          22-小结.mp41 e+ P% e; i* Q5 s* U7 A# \
│  │          , Z  _. J8 z9 {1 l0 n0 z
│  ├─5-18 用户模块
+ t8 }! c( ~* f7 y1 |4 y+ Y$ Y: A│  │  ├─1 springboot完成注册业务逻辑
1 U1 E7 P8 J; U! [0 R  k│  │  │      01-注册案例-需求分析.mp4* h8 }1 m" z; A* J' z
│  │  │      02-注册案例-显示注册页面.mp44 a9 Q8 y: \6 Z+ P4 e' o
│  │  │      03-注册案例-代码实现上.mp4
5 [0 T" L+ @! m- ~  u│  │  │      04-注册案例-代码实现下.mp4
* E' r4 K' E' I1 x3 F* c; ]+ Q8 w│  │  │      05-注册案例-刷新重复提交的问题.mp4* J( o% T  s0 f( t% }: I6 ]
│  │  │      + ]$ |+ E' {1 z7 V& U2 f' g
│  │  ├─2 使用java代码发送短信验证码; M6 F( m  {% f# K
│  │  │      06-阿里大于-步骤介绍.mp43 v1 a9 F6 i6 p+ H+ @0 B
│  │  │      07-使用阿里大于发送验证码.mp4! _8 X* ^; _4 V' a2 G/ j
│  │  │      08-注册案例-发送验证码.mp4( q3 ]; H8 @4 s! Q& b4 t
│  │  │      09-注册案例-代码完成.mp4
. P% x2 z8 S  n; Y% Y9 ~* B│  │  │      
! y+ g: p4 q4 x' i4 m│  │  ├─3 springboot完成登录业务并且密码MD5加密8 U. L4 M% ^, y, ?/ ~# M
│  │  │      10-登录案例-需求分析.mp4
1 M4 n6 W; h6 A  t" r  k. n│  │  │      11-登录案例-代码实现.mp4# w) }0 B) ?- j! `& f/ g6 C
│  │  │      12-扩展-MD5加密算法.mp4* f( h/ o  F) T$ x7 c, ~
│  │  │      13-解决页面user为空问题.mp4
+ B2 E# d, ~; N# d+ `1 \& H3 e│  │  │      14-演示加密之后的登录和注册.mp42 A4 P2 H. R* k) p8 s
│  │  │      ! A3 x' {# X5 |0 e/ b: |
│  │  └─4 后台展示个人信息$ v' x" W; {  B! C) w7 s
│  │          15-我的信息页面-代码实现上.mp4  Z( R1 G1 d! v+ j+ M
│  │          16-您本次幸运号码.mp4
* j/ M9 k" ]2 w4 P1 u, H7 w│  │         
+ K) ], }0 n' p5 {! E- M│  ├─5-19 彩票项目-论坛模块2 T! e& r* i7 w6 R% X" a% d( G
│  │  ├─1 springboot完成发帖功能3 B1 k% {. Z  A0 r# }
│  │  │      01-回顾MVC和三层架构.mp4/ d% x" v! {0 H: y( k
│  │  │      17-论坛搭建UI跳转.mp4
9 L( \! D& M1 |│  │  │      18-论坛首页-需求分析.mp4
  p! W. v3 G9 l6 _- r' w( N8 J│  │  │      19-论坛首页-发表帖子的功能.mp4
- }* h, t5 s  M8 t9 [│  │  │      20-论坛首页-列出帖子后台代码.mp4! T, P9 z; w- v2 I6 k! i8 a
│  │  │      21-论坛首页-列出列表前台代码.mp4/ @8 _: m9 _' D- Q4 \
│  │  │      
1 m' ?8 o8 w4 U1 q& d# b, c5 A. f│  │  └─2 springboot完成发表评论功能
4 {& S% J* o1 u- D│  │          02-帖子详情-需求分析.mp4
1 {/ W/ o/ C- i* X│  │          03-帖子详情-展示帖子的内容.mp4; j4 \3 Z9 O" M) n" X9 V9 w+ G; i
│  │          04-发表评论-需求分析.mp4
, j* T9 j( |+ r) L│  │          05-发表评论-代码实现.mp4; S% J' ^9 k/ p8 W# U
│  │          06-前台展示所有评论.mp4( p' O5 b0 K: i3 f4 V' a/ Q4 E
│  │          07-展示最新的帖子.mp4
  k/ N3 W) w2 R6 ?' N" Q│  │         
+ D" ?  t, j# P0 R1 A│  ├─5-2 HTTP协议
5 }( i* q4 s4 O. @; B: U│  │  ├─1 环境搭建
0 G* y: f/ N) N6 \│  │  │      01_今日内容介绍.mp48 w$ ?- s" U3 A& b  c6 P$ G% q5 G
│  │  │      02_http协议介绍.mp4
* `& T" X' s4 v) k+ s( T. W│  │  │      03_PostMan 抓取数据.mp40 }& ^- w3 ]2 M: a) }
│  │  │      04_firefox &  httpwatch 安装.mp4
9 K" @* Q* o8 w│  │  │      05_搭建环境 - 编写controller.mp4; g0 w1 e; h8 t. f" V9 {, K
│  │  │      06_搭建环境 - 编写html.mp4
' q: y+ E$ Q! e│  │  │      
. j" }- f. a& y│  │  ├─2 协议介绍
4 ^7 H* [' h! X! M6 {6 K: t│  │  │      07_Get请求数据解析(一).mp4$ y% t9 |% Z: _3 o& J
│  │  │      08_Get请求数据解析(二).mp49 ]( y* e3 U: G# X
│  │  │      09_Post请求数据解析.mp4
, S) P' C9 y9 G│  │  │      10_Get请求和Post请求的区别.mp4
. i) r3 m; v( j' |7 ~" Q& L) \│  │  │      11_request对象介绍.mp4
1 i6 A. R- Z2 y- H* F: N& K│  │  │      12_response对象介绍.mp48 G; d8 P2 ~* W5 S
│  │  │      
) E: f* r# t$ K+ U1 `│  │  ├─3 静态资源配置
$ W! }* T3 m. g! |9 y9 H│  │  │      13_静态资源目录位置.mp4
7 W; ]; R: _% f% ~/ v" M$ U6 T│  │  │      14_自定义静态资源位置.mp4
  h4 c- J" J# [6 v# p' \7 ~2 I│  │  │      5 w# a$ P, P1 I3 f: {0 c  ?
│  │  ├─4 转发和重定向) q" q, i0 h' l2 z) I* Z% B
│  │  │      15_跳转页面 示例.mp4& V1 _% P  I- u
│  │  │      16_跳转页面 请求转发.mp4! {& z7 S8 {2 m" k, \4 Y& I
│  │  │      17_跳转页面 重定向.mp4
3 {; @# ^. C# _+ ]. o6 q* _│  │  │      18_请求转发和重定向区别.mp4
, v4 w6 {% W6 O4 E│  │  │      19_请求转发&重定向 使用时机.mp4
: q( p* W2 U1 ?│  │  │      
' ]/ ?8 V2 `- w7 }& q  `- a8 u) Z│  │  ├─5 Thymeleaf使用
& T. z, p' V' M7 h( B( C% v5 j│  │  │      20_Thymeleaf 使用 - 环境搭建.mp4
1 q  m" U% p  v( y( ]│  │  │      21_Thymeleaf 入门.mp4- C/ R# P' ]: f6 u; W1 Z2 ~9 c5 v$ P
│  │  │      22_Thymeleaf 取值.mp4
& ~) \" p! b9 k: l+ ?; Z  V4 B│  │  │      23_Thymeleaf 存值.mp4" c" V  g/ a# s- P2 J, m
│  │  │      
1 r' e! [7 i' U+ s5 w3 {" U, n│  │  └─6 案例$ y, i' N' p: F
│  │          24_注册例子 - 失败细节处理.mp4
/ F6 l. A+ k  w& J, B│  │          25_注册例子 - 成功细节处理.mp4
6 y4 F/ ]* x. n. A0 F│  │         
1 b  y) L- c) n  r  Y5 {│  ├─5-20 彩票项目-购物模块
; P9 v. s' v% B. Y  k+ i( n│  │  ├─1 使用filter过滤器过滤未登录请求! c9 ]# o# ~, z$ Z$ ~/ \
│  │  │      08-校验登录-需求分析.mp4' {7 d; i0 {2 n% ?
│  │  │      09-校验登录-代码实现.mp4
# `4 d3 z% F: r, z: y3 o# X& u9 W│  │  │      
* ?% b, I8 Q5 r1 g5 U2 |│  │  ├─2 代码完成选号逻辑! S# d' W2 B3 x) i  s
│  │  │  │  10-选号前端逻辑-代码实现.mp4
6 m8 C% y- }9 Q2 M3 R│  │  │  │  11-前端发送异步请求逻辑.mp4
* D8 J/ G6 a9 d3 F5 f+ k│  │  │  │  12-前台发送注意转成json字符串.mp4
5 u% l: L7 T. d& X4 O│  │  │  │  
" {2 P# H- k3 X" Z│  │  │  └─4 实现购物车功能6 `& J8 Z: H# Q+ n3 Y" o) v5 M4 n
│  │  │          01-回顾购物车前端.mp45 I/ z2 Y9 Q+ T2 N
│  │  │          18-购物车页面显示所有购物项.mp4
( K' p" U3 P( E- U. `" A│  │  │          19-删除购物车中的某一项.mp4/ P- h; q# W, i  x3 s: x, S4 h. o
│  │  │          20-清空购物车.mp4
/ _. m5 b' W  U& w. e│  │  │          21-机选一注彩票.mp4
" A5 S* R( X) V# u7 X│  │  │          22-机选一注彩票的小结.mp4
) X' B; q* ~2 @# @" Q$ c│  │  │          23-手工点击添加一注彩票.mp4
! o- ~- Y7 i' q: y│  │  │          4 g9 y1 ~; @, A7 G
│  │  └─3 购物车分析% R( J4 n3 _* M. J9 w) J$ k
│  │          13-封装购物车和购物项对象.mp42 v! p2 _9 w8 t3 H( D/ p
│  │          14-上午内容简单回顾.mp4
# e' n1 E- S0 j│  │          15-使用fastjson.mp4
  P6 j) T2 N, b, c! e& G$ Z│  │          16-购物车Controller逻辑.mp43 f- i0 g  n; q4 ~
│  │          17-购物车前端显示badge.mp4
4 @9 K* F" p3 ~. v" }│  │         
) q- }+ E& _  ^$ g3 h/ t9 V; e; o" e│  ├─5-21 彩票项目-订单模块3 F# p6 X; Q7 ~: P
│  │  └─1 实现后台合成生成订单功能, N9 p8 w# {) V: w' [
│  │          02-分析订单项对象和订单对象.mp4* l3 B3 w4 K& a# {
│  │          03-生成订单-需求分析.mp4
' i$ f2 E- M9 P( b) k8 t8 a" _) B- F│  │          04-生成订单-代码实现上.mp4
; x$ b) d4 w  p5 w, M% t│  │          05-生成订单-代码实现下.mp43 O. o+ a" X3 ^& B4 l
│  │          06-生成订单-前台展现.mp4
& V2 W; ?2 U/ @" C! {( d+ H│  │          07-遗留的需求.mp4
% I; [; J: Q; k$ y│  │          08-我的订单-需求分析.mp4% P. K: |" Z/ R% [' S: o4 d
│  │         
' D) Z, @3 Y8 f* d& O$ [│  ├─5-22 彩票项目springcloud2 {  Q* ]: Z! u2 l9 u$ k
│  │  └─1 springcloud
- {% r" d" n# R│  │          01_微服务介绍.mp42 m! r( J$ n) O8 s8 {
│  │          02_单应用框架的介绍.mp4
0 r/ y8 l2 z0 P: \│  │          03_微服务框架的介绍.mp4
2 H/ T0 l$ R5 p: b2 k6 W) }* h# U│  │          04_服务注册中心.mp47 V$ l! Z" t1 X7 b
│  │          05_服务注册者.mp4
! \, h$ c4 `. ^* @3 _1 w1 W5 w│  │          06_注册中心高可用性.mp4% U. s6 k% |" `1 d7 S$ c
│  │          07_profiles配置开发和部署.mp4' H* Z9 z. F3 Z) z! u  N
│  │          08_feign-注册的实现.mp4
* q0 m6 m  o% v% Y1 n# \│  │          09_feign-服务间的调用.mp4! ]9 w% h# R" e2 I6 L
│  │          10_feign-高可用的实现.mp4
/ G( T! S* d6 N│  │          11_Api网关准备.mp4- T( w4 h9 V$ H! B
│  │          12_Api网关实现.mp4
. y& I8 c9 Q  U$ L0 Y" f│  │          13_彩票项目介绍.mp4
6 A7 H6 M+ ~4 X' g+ d│  │          14_彩票信息相关的服务创建.mp4
& a" G$ Y% z8 Q1 S! w8 `│  │          15_info服务 数据实现.mp4, U* n) j" U) j
│  │          16_info服务 接口实现.mp4
; q9 X3 t$ V6 s% Z( n& D+ `5 b│  │          17_前端项目部署.mp4
" }- V4 E# Q# w) X/ D% L│  │          18_user服务 数据和接口调通.mp4' ]$ x* I# O) J6 U. E; O
│  │          19_user服务 逻辑实现.mp45 t+ J, R& h- o3 v$ ?' Q5 m
│  │          19_user服务 逻辑实现.mp4.baiduyun.p.downloading
. L4 r+ F" j1 J│  │          20_订单服务 接口调通.mp47 L( L4 D- e* m0 l
│  │          21_订单服务 逻辑实现.mp4# [! r0 p3 P* O! H( l
│  │          22_静态资源服务实现.mp4
% P; |, C! U2 n, F│  │          23_微服务整合.mp4
5 ~0 ?. U$ A0 l+ h* ]│  │          Thumbs.db
: s% @4 L$ Y' x; }! r, ~│  │          9 _8 ?; M6 M+ c! W" f
│  ├─5-23 密码学3 r1 ]+ ?4 e/ a( d; V/ n
│  │  ├─1 密码学基础/ L7 i; K1 l% E0 j
│  │  │      01_ASCII编码.mp4
' o" R0 r( Y6 I5 X% C- g│  │  │      02_凯撒加密.mp4
- P! @2 u% B' G+ {. K│  │  │      03_频度分析法破解凯撒加密.mp4: i3 L8 v/ [- S- G$ p
│  │  │      04_byte和bit.mp4
) h' P1 o9 Q9 B  A│  │  │      1 p1 P2 w- _+ j' }/ [9 c
│  │  ├─2 对称加密
( C2 I9 H* m0 ?# V) k│  │  │      05_加密基础.mp4
4 y  V; i  C  L; Z2 U5 t+ c) U│  │  │      06_DES加密.mp4
) J) q/ `* M9 {& t; Y1 f" @& z│  │  │      07_DES解密.mp4
/ J- l/ r8 \  Z. @) S│  │  │      08_AES.mp4
' x- j; O2 n' r: l' o2 ?" p4 r; z│  │  │      09_加密模式和填充模式.mp4
9 P3 Q9 s9 r7 x7 F4 {9 [+ {1 b│  │  │      
- H! |! R/ H- w9 B) Z│  │  ├─3 消息摘要
4 [( n" `9 m' H/ u; p- K" Z│  │  │      10_获取消息摘要.mp4
& @8 U9 r; B5 E, H" p│  │  │      11_消息摘要的其他算法.mp4
9 |; Y6 v# G# \1 i) }│  │  │      12_获取文件消息摘要.mp4. r9 y* Q6 X2 e) [( Q4 n7 ^' m
│  │  │        v1 A% k1 v) [7 f
│  │  ├─4 非对称加密# p% L8 D% ^, ~
│  │  │      13_非对称加密的概念.mp4
' B$ Y* J- P4 V) V9 K4 C' Z│  │  │      14_获取公私钥.mp4/ J; Q' ^2 l4 \8 @( m* u) V
│  │  │      15_非对称加密解密.mp4
: I3 ?/ t9 v! d) F6 G; w- I5 B6 p8 r│  │  │      16_保存公私钥.mp45 o0 T& R8 n! _- D8 F, f1 H2 E
│  │  │      17_获取私钥.mp4
, [+ u, O5 h& x) E# @# f) N: F4 Q│  │  │      18_读取公私钥.mp44 v' v( x* R; l6 P  \  s# \7 i- q
│  │  │      19_分段加密解密.mp49 f+ F1 |" [# S3 P& _
│  │  │      20_生成签名和验证签名.mp4
0 ?5 g: x, z$ ]/ q│  │  │      
, H- i8 r; k' H* d│  │  └─5 实战案例
1 E+ r$ @, [/ B/ F6 `  L& N│  │          21_搭建项目.mp4
% B% B( F! S) @$ ~( x│  │          22_集成Swagger2.mp4
" `) K) D  @4 Q0 b8 H: D│  │          23_解密数据并缓存在本地.mp49 |1 k. Z% H9 ]3 P6 X, Z0 L$ ~
│  │          23_解密数据并缓存在本地.mp4.baiduyun.p.downloading+ u: w8 W$ j/ R& l5 |4 L
│  │          24_模拟登录.mp4/ v0 a0 o* u3 I. e
│  │          25_验证签名.mp4
$ r( _5 d) D4 I* K& h, I% ?. t│  │          $ e( z( X) L( Y
│  ├─5-24 比特币java版本: }) o& Z3 e/ i( M( ]- O
│  │  ├─1 传统技术实现区块链
$ ]7 N5 Y7 p# I# e* m│  │  │      01_第一版增加功能的实现.mp4
: g% y, S& N9 P! x│  │  │      02_第一版保存功能的实现.mp4
& G- y- m& c+ ]- t+ E│  │  │      
* V# ]# u- _4 O9 j  d│  │  ├─2 增加网络接口
' @! T1 e3 ]( w7 k2 M: F$ j6 }│  │  │      03_第二版后台的实现.mp43 H, M: c& E& b
│  │  │      04_第二版前台页面的实现.mp4
* W: [; k$ P8 x' e8 t4 Z: }│  │  │      05_完善页面.mp4
/ Z$ m: H/ U. @6 c│  │  │      
8 O$ H0 e. t+ i' w& o5 t4 P2 k│  │  ├─3 增加Hash校验
+ S/ X1 n7 U! @│  │  │      06_增加Hash值.mp4) R, ~9 Q  J/ P" Z2 i8 w: ]
│  │  │      07_校验hash值.mp4, L  V! [( N1 l( R8 M( D9 [
│  │  │      
! `2 d$ h# w7 n9 G  R/ t│  │  ├─4 增加工作量证明
0 [4 P+ e7 U- u; H0 B0 s* l│  │  │      08_增加工作量证明.mp4
( \% s0 k7 N. k, G│  │  │      09_修改校验的方法.mp4: n7 v6 X9 f9 F& [7 j- ], j$ z
│  │  │      5 E; |2 u8 L+ y4 g
│  │  ├─5 增加PreHash0 B/ J" x6 W6 e; N
│  │  │      10_增加preHash.mp4
3 T! M& R# E7 u1 ^: p│  │  │      11_校验preHash.mp4
: M4 ^" Y1 `$ A" c- w│  │  │      
8 s$ L, K, K- A/ A; U$ ?2 F$ f│  │  ├─6 增加钱包功能% w) I2 d# @3 t# _, j1 x
│  │  │      12_定义钱包.mp4
, ^, W" U+ C' y│  │  │      13_钱包功能简介.mp4
2 _& x6 Q/ j8 h  p' R3 M│  │  │      14_转账页面的搭建.mp4
. V: f  P1 ~9 N: X# |: W8 n│  │  │      15_转账后台的实现.mp4; S, y9 N$ K8 I9 T* U5 p0 {) n
│  │  │      
, U+ z& H) e$ H/ n- C5 }* E: b3 t│  │  └─7 增加WebSocket功能
7 ?# O9 p8 M: U+ ~5 O7 A│  │          16_webSocket入门.mp4
5 P- I4 j1 S+ @$ c│  │          17_模拟节点之间的通信.mp4
) ~3 H: Y- [& `3 s# `' [: [) a│  │          18_本项目集成WebSocket.mp4, j# Y9 m7 U  Q$ w6 s2 L( R5 ?: {
│  │          19_请求同步区块数据.mp4! ?9 B( C3 f2 I( Q2 _
│  │          20_修复同步区块的bug.mp4
' `4 i8 O0 l! A- ?│  │          21_广播交易数据.mp48 V* J/ ?; P/ ^, s
│  │          - F- c8 t7 e- I  `7 ~
│  ├─5-25 比特币kotlin版本
4 r2 q, _; b2 ~3 X  C$ c│  │  ├─1 传统笔记本- C# S- w+ _  M! G" I/ T6 A
│  │  │      01.区块链知识点简介.mp4/ q1 ?; g& t" O% ^2 U2 T0 ^
│  │  │      02.笔记本1.0版本a.mp4
" m0 `+ P3 [3 P# @' e# G│  │  │      03.测试笔记本1.0版本a.mp4
, i( w/ u) [' p, n- F│  │  │      04.笔记本1.0版本b.mp4. v3 u* `1 e3 t' P
│  │  │      05.笔记本1.0版本提交到git仓库.mp4& ~8 p* F. }/ c8 u$ j2 d, ^, f
│  │  │      06.消息添加id属性.mp4
7 s& P' l" s9 o/ Q8 B) }│  │  │      5 T" ]/ V4 R* g0 F* I6 }" H$ M
│  │  ├─2 服务端搭建1 Y$ H* G3 j7 ~' [" n
│  │  │      07.ktor库使用.mp4% d- [' _+ e5 |" L# t$ ~
│  │  │      08.接口搭建.mp4, L4 \  R* v% i8 k
│  │  │      09.前端界面提交更新.mp4
  @2 D( H3 C" }( E: Y$ t│  │  │      10.静态界面提交数据.mp4
% v/ w$ `; W+ q│  │  │      
; c; g7 L$ n8 v│  │  ├─3 校验和区块链  t& a9 \6 c. J; Y( M7 H9 B
│  │  │      11.数据篡改.mp4
  ]& S$ w& s8 z7 T- R│  │  │      12.hash校验.mp4- m5 y4 g  ]% |5 D( R
│  │  │      13.工作量证明.mp4
% }0 C& O* _/ W+ Q/ h$ R- a│  │  │      14.增加preHash.mp43 J4 Q% D) R, n6 o# H6 `7 K/ y" {6 C
│  │  │      15.篡改数据修正后面每一条数据.mp49 T# a8 \' A. u; F8 u- G
│  │  │      
9 S) l# h3 k( T3 I│  │  ├─4 转账操作6 J; a% X* b% D7 _
│  │  │      16.转账流程.mp4
* v0 T( T' u2 b4 Q│  │  │      17.转账界面搭建.mp4
6 y! }; f7 n$ w( W* W│  │  │      18.转账信息签名.mp49 @& N, Q; x+ a9 j7 |
│  │  │      19.ajax发送转账请求.mp4; C; [9 d# F$ {7 g0 j% c: O
│  │  │      20.节点服务器处理转账请求.mp4  S6 Y% N- l( E8 p0 U: z5 [
│  │  │      3 @$ v3 `8 {$ G3 Y
│  │  └─5 节点间同步4 |1 s( B$ T0 T. |  I& Q
│  │          21.websocket简介.mp4
& Z. N8 Q, Q6 B% y' v3 p8 g│  │          22.节点间连接流程分析.mp4
9 ^# b0 ]$ T: \# F% c│  │          23.节点间相互连接.mp46 o* x! r! {* M- c
│  │          24.节点间任务广播.mp49 p* i9 n! ~) k. S  ]) D
│  │          25.节点收到任务广播处理.mp4+ c$ H% r. N* z7 K
│  │          26.节点更新.mp4
; r: h; U5 Q) F7 t0 \: G! \1 T│  │          26.节点更新.mp4.baiduyun.p.downloading
9 m+ d$ B9 S) L3 I│  │          27.总结.mp4% I; y0 J! p* `& ?9 Y
│  │          & O/ j/ j& }. _, ?" k
│  ├─5-3 会话技术
9 m9 W" g( z# Y│  │  ├─1 简介
" Q  n2 M( J4 u+ V8 g│  │  │      01_会话技术介绍.mp4
9 B7 a9 A8 j  S* @3 @0 P- I6 e│  │  │      $ j2 h0 p& V: P, E, B$ O
│  │  ├─2 Cookie详解
+ Q, q$ N/ E5 y, p! H, H5 c) J│  │  │      02_cookie介绍.mp4
6 g# b0 M" P! I- t# L: w( E# r│  │  │      03_cookie入门.mp4
" d% J  U. G0 k: x6 n! E│  │  │      04_cookie 分类(持久性cookie).mp4
" C; ^/ q8 j7 T8 I8 M: w; ?│  │  │      05_Cookie 存储在哪里.mp4
5 {" t2 O& W. y' K$ w% y│  │  │      3 ~2 n8 E* K( k0 ^
│  │  ├─3 Cookie案例
5 f/ T; N* N/ ?/ F/ l6 o: h│  │  │      06_Cookie 示例 - 上次访问时间.mp4. K! c# |* z3 u' ]% v
│  │  │      07_Cookie示例 - 上次访问时间(一).mp4
: ]& H7 A4 }1 X2 a) F6 E7 B│  │  │      08_Cookie示例 上次访问时间(二).mp4
; V: A9 c% P1 X" j3 U6 \│  │  │      09_Cookie示例 上次访问时间(格式化时间).mp47 v! U. p* B; O1 p% L
│  │  │      8 E2 O- B% |% k9 y6 l" g9 N
│  │  ├─4 Cookie细节
- B, G: @# @) o( T3 P│  │  │      10_Cookie 细节.mp4
7 ]+ H- `- w0 D/ c& }│  │  │      11_Session介绍.mp4
5 ~4 a/ z; Q: }8 \) ]5 Y│  │  │      12_Session 基本能使用.mp4. A4 G( a+ i8 D# E
│  │  │      13_Session的细节(没关浏览器).mp4. c5 S8 h5 N. T( }2 F0 p
│  │  │      14_Session的细节(关闭浏览器).mp4
  b7 r4 s. ~! z2 W. g0 C+ b5 _│  │  │      14_Session的细节(关闭浏览器).mp4.baiduyun.p.downloading$ f# s& e( T+ i5 I( ]
│  │  │      15_Session销毁的细节.mp4
; w8 A5 o- i5 X- l  f│  │  │      16_Session生命周期.mp48 ]  u4 n  G: K8 e
│  │  │      / t; [( l. E5 N
│  │  └─5 Session案例
4 \$ M6 W  J8 i# Z│  │          17_购物车 - 需求分析.mp4" ]( I, D% @8 v6 q* n7 A( Q4 w
│  │          18_购物车 - 后台准备商品数据.mp4
: f; Q& b# I7 f( s2 F: n  n3 q│  │          19_购物车 - 页面显示商品列表.mp4+ g. p; K3 G% g! u' }
│  │          20_购物车 - 添加商品到购物车.mp4
* W7 D8 w, ~( ^# Y2 o2 g4 s│  │          21_购物车- 添加商品到购物车(二).mp4
1 z5 n- L; [4 Y) @, H. o│  │          22_购物车 - 显示购物车.mp4
# q: Q& w: a5 D- {│  │          23_购物车 - 持久化cookie设置.mp4
4 J; a; N3 ^( `) m1 `; d│  │          . g8 i% t. Z- A, V) b# E$ ?
│  ├─5-4 过滤器RestFul* B0 M4 a" j: i
│  │  ├─1 过滤器详解1 I( D' x' d0 q6 x' x% {- I* W
│  │  │      01_Filter 介绍.mp4
# Y8 M9 X8 @0 B& F│  │  │      02_Filter 入门.mp4
# K; `/ Q% ^: x7 }( }! T# A" I+ o# Y0 k│  │  │      03_Filter 特点.mp4
2 @4 q9 \: T! ^) G$ U1 Y8 w% Z' L│  │  │      04_Filter 忽略请求.mp4
( Z: y" R3 n( t; B6 T7 q3 }│  │  │      05_Filter 特点(放行后执行代码).mp4
. F4 v% \4 T1 e2 M│  │  │      06_Filter 生命周期.mp4% C4 d( y1 X  u) c' t6 N- w3 y
│  │  │      07_Filter 过滤器链.mp4
2 T( @- T1 F8 j/ l4 x. `│  │  │      08_Filter 自定义过滤器顺序.mp4. H! A& V' g4 N0 [% z) P
│  │  │      09_Filter 总结.mp4
- O5 F; k, _" X& B4 g5 Q3 I│  │  │      ' O4 p! S! |4 Q: C
│  │  ├─2  过滤器案例6 t# ^2 ~% u: n, w
│  │  │      10_Filter 自动登录(分析).mp4
3 R. t7 l2 K' J: f/ I0 _5 s│  │  │      11_Filter 自动登录(登录环境).mp4
5 ]5 i1 r# N, L! w; ^+ c0 q2 T│  │  │      12_Filter 自动登录(成功&失败的细节).mp47 V' l( p8 e8 p& [) H
│  │  │      13_Filter 自动登录(勾选自动登录).mp4
4 M$ E, }7 D& q│  │  │      14_Filter 自动登录(会话有效).mp4
8 @( S6 u! }) M6 v│  │  │      15_Filter 自动登录(强制跳转登录页面).mp4
2 i$ H+ [5 m" U+ V# x│  │  │      
5 |' `; L4 |) l" f│  │  └─3 RestFul详解
" ^, F! r0 t: I& Z' x│  │          16_RestFul 介绍.mp4. g/ I7 C4 @8 O2 _2 o
│  │          17_RestFul 使用的必要性.mp4, c$ m6 p: N* S- W/ [) r
│  │          18_RestFul 入门.mp4; B3 I0 g0 @5 h
│  │          19_RestFul 命名特点.mp4
+ Z- T, ]. }9 A# g" Q7 |( P│  │          20_RestFul 保存操作.mp4# ^$ K; y$ q6 \) h. y7 I; M
│  │          21_RestFul 删除操作.mp4
( @+ q/ {! V( Y8 L% f: J1 c│  │          22_RestFul 更新操作.mp4
. p$ i, H' f( y) z6 U│  │          23_RestFul 查询操作.mp41 q2 p; Q2 ]- k. q
│  │         
- U' ~/ }" G6 Y; F* v" z0 a│  ├─5-5 Linux入门
4 s' ^* k! {6 O│  │  └─1 Linux入门
0 w. P  L" V6 K9 B1 W│  │          24_linux 介绍.mp4/ q+ G4 r9 K# U7 L1 s
│  │          25_安装虚拟机软件.mp4: m* Z' c% g' R( {0 l) M
│  │          26_配置虚拟机.mp4
) T$ E7 e4 d( V# k; A│  │          27_linux安装.mp45 ]* m0 X2 T: L3 G" @1 Z' Y9 e% r
│  │          28_安装SecureCRT.mp4
- ?) H2 y: e6 a* i  O- z: u│  │          6 R; J' S/ a# |$ k
│  ├─5-6 Ajax与JQuery; P; Y2 j! g) Z7 G( i6 i
│  │  ├─1 AJAX详解
5 O1 i* \+ A/ N* U. O, _% Y│  │  │      01_同步&异步介绍.mp4
/ n- x4 n* q7 E: {. {& }│  │  │      02_Ajax 介绍.mp4
8 V( N. p+ n# `* a1 S7 `│  │  │      03_Ajax - Get请求.mp40 d8 b: d, ]" P. @5 K% R
│  │  │      04_Ajax - Post请求.mp4
: ~! {0 a% O) V( `1 `' B8 y4 O│  │  │      05_Ajax - 获取响应数据.mp45 e/ Q! k: R# w8 D% j
│  │  │      06_Ajax - 校验用户名是否可用.mp4
& A4 `* p$ ^8 r* o; U│  │  │      
1 K! G+ K) O* t: _! m│  │  ├─2 JQuery的AJAX; F' Z9 t# A7 C0 D$ c, t% n
│  │  │      07_Jquery 介绍.mp46 P/ F/ @5 e6 _; `6 s8 T
│  │  │      08_Jquery - Get请求.mp4
2 k3 e( v. B7 l2 J│  │  │      09_Jquery - Post请求.mp4
# G! `4 ]5 g3 K│  │  │      10_Jquery - Ajax请求.mp40 R7 |9 i& c2 u+ w6 [
│  │  │      11_Jquery - 校验用户名是否可用.mp4( b) k  x% I1 g
│  │  │      
5 ?4 c) Q0 g3 X6 y2 c( l│  │  ├─3 XML详解$ x% {! N$ @/ N- F6 z
│  │  │      12_xml - 介绍.mp4
( D+ Z3 h2 i5 U" s  `+ W9 h│  │  │      13_xml - 定义xml.mp4( Y+ \" T6 b$ Q% t9 ~/ ~
│  │  │      14_xml - 注释.mp4
5 \( S- f* i; N2 z│  │  │      15_xml -  解析方式.mp4
/ m5 R4 A& z* B; G7 P│  │  │      16_xml - 解析特点.mp4
. V. t7 E5 D1 g* w9 n7 J* x│  │  │      17_xml - 解析xml.mp4
. C0 d, ]6 z( T, e% z│  │  │      18_xml - xpath简单使用.mp44 @! j6 B9 f+ _: F6 F2 j
│  │  │      19_xml - 封装数据.mp4. |0 u- q& g, Q, n
│  │  │      20_xml - 约束介绍.mp4
1 S8 q  L* k0 I" W5 k  \│  │  │      
  `3 i. c2 T3 S, p* g( X│  │  ├─4 JSON详解
9 C# P6 T) `  ^│  │  │      21_json - 介绍.mp4
* O  Q  m8 C& b! q/ ~, P│  │  │      22_json - 前端解析json.mp4
9 A' u7 v! D* P# E; m8 D+ o$ }│  │  │      23_json - 后端解析.mp4
% N0 p. b7 L! S8 Q  q│  │  │      24_json - 后端返回json字符串.mp4
, g: H8 Y) _! M% `9 V1 d0 `│  │  │      
2 f* w6 a+ }8 v- r! l│  │  └─5 AJAX案例) ^# F  v/ K8 \* q, N6 R
│  │          25_省市联动 - 获取省份数据(一).mp4- N5 F! ^% b1 Y% J$ C
│  │          26_省市联动 - 显示省份数据.mp4
: K1 O9 c# w  R8 R, \│  │          27_省市联动 - 省份数据改变监听.mp4
, o+ F9 L" M% s│  │          28_省市联动 - 显示城市数据.mp4
5 j3 m) z- ?9 _) C9 w7 n# j& J- N& v│  │         
. @7 B" p" p9 U' E8 I' `│  ├─5-7 数据库7 V* F2 T! I% x' [5 C
│  │  ├─1 环境搭建和软件使用
7 E+ t# m0 y) {8 O* r│  │  │      01_数据库 概述.mp4
8 r9 j' ^9 Z) V│  │  │      02_数据库 常用数据库.mp4
; ~9 _7 i4 S" m! V# R( }6 l│  │  │      03_数据库 安装mysql.mp4
/ \7 S& U+ e* D; `' |4 b│  │  │      04_数据库 - 可视化工具介绍.mp42 d) o  w  m* n( J1 r2 h9 k
│  │  │      05_数据库 - CRUD操作(命令版).mp49 W. n* p9 H) H3 _3 w+ \4 a1 n
│  │  │      06_数据库 - CRUD操作(工具版).mp4
! G9 H  E  [6 X) d6 r│  │  │      07_数据库 - 字段类型介绍.mp4* I0 |( @6 W, y/ t$ I; O3 |. n% q
│  │  │      
. w5 v$ v9 Y  B, G│  │  ├─2 表的操作! L  g' Y4 p" r9 f* I
│  │  │      08_数据表 - 创建表.mp4
/ A6 N% V1 c5 P: I  n8 [│  │  │      09_数据库 - 查询表.mp4
6 B  H; C/ P; W1 ?/ d│  │  │      10_数据库 - 删除表.mp4
1 r! I/ ?. m- g& C$ V8 \) D, x, U│  │  │      11_数据库 - 修改表.mp4. m! b+ B* m% u- l3 ^6 `! i
│  │  │      12_数据库 - 修改表.mp4
" y1 J' K" Y+ ]│  │  │      13_数据库 - 约束介绍(主键约束).mp4
/ B) f- L6 \) L9 R2 C& \│  │  │      14_数据库 - 约束介绍(唯一&非空约束).mp4- O5 [" g& T6 Y7 x) ~; ?, n
│  │  │      15_数据库 - 主键约束演练.mp4
1 S: z3 x1 `5 z; e( T! Q) H0 M│  │  │      ) f  V) P/ j" D8 U! ^' G
│  │  └─3 数据的操作1 J% L' D8 \$ y1 u5 V- G
│  │          16_数据库 - 添加记录.mp4& C  W# z9 o8 h6 L
│  │          17_数据库 - 删除记录.mp4
) \, [7 r6 o6 z' e. c│  │          18_数据库 - 更新记录.mp4# ^0 H, A" Q; F2 q0 }
│  │          19_数据库 - 查询记录(简单查询).mp4/ Y& z; l! _3 R+ R6 B" P! V
│  │          20_数据库 - 查询记录(条件查询).mp4
+ L1 \4 n0 b+ r3 Q│  │          22_数据库 - 查询记录(分组查询).mp49 y1 _: |0 U+ C4 S$ ?* u
│  │          23_数据 - 查询记录(分页查询).mp4
" n7 V) b4 C5 j2 X* `3 @; J│  │         
: `4 b  D8 N/ z5 V) F' r│  ├─5-8 数据库和Linux/ u2 U5 }. r6 d' K- I$ h
│  │  ├─1 表关系介绍2 k1 o2 s# {0 [( V' s0 \
│  │  │      01_为什么要有表关系.mp44 A9 q0 m3 Y0 D4 |
│  │  │      02_表关系维系的点(外键解释).mp4. `, W3 x/ k# Y% Y
│  │  │      03_表关系维系的点(二).mp46 ?8 E2 v8 r- {! ]9 i( i1 q0 E
│  │  │      04_表关系提问.mp4* r; B1 K7 t# b4 q6 e8 L: |' Y
│  │  │      4 t5 d  N9 k! ]6 Z7 Q
│  │  ├─2 表关系分类! h; d6 F/ ?. _3 i
│  │  │      05_表关系的分类.mp4; I' g) Q% H8 r* e5 z# B  N( Z
│  │  │      06_表关系-一对多关系.mp41 c. ?& h/ s+ l" ]: M
│  │  │      07_表关系 - 多对多关系.mp4' o2 H; r8 O0 S7 p3 B
│  │  │      08_表关系 - 多对多关系建立.mp4
( z: w7 y) T( k. }8 [5 o│  │  │      0 O: T+ e; N  M' {2 c7 r- k* A
│  │  ├─3 多表查询
7 W# m6 [( B/ ], [│  │  │      09_多表查询 - 子查询.mp4
+ n8 A' X5 T' F% K& ~/ K2 a7 t│  │  │      10_多表查询 - 内连接.mp40 H! s) U* L! D' i: R/ q/ q
│  │  │      11_多表查询 - 显式内连接.mp4
' l+ L# x% a* M9 P, m│  │  │      12_多表查询 - 外连接接查询介绍.mp4
5 H8 P& r9 Y  P5 r3 N0 n- n0 V│  │  │      13_多表查询 - 左外连接查询.mp4  M4 G# Z: L8 R- M2 J' \1 B
│  │  │      14_多表查询 - 右外连接查询.mp4
! V. T+ `) S9 D. H9 Y. s  ]- C│  │  │      15_多表查询 - 练习.mp4
2 g+ r7 ~. {& R* J│  │  │      ' m5 k  h3 F/ d  Q+ v+ t
│  │  ├─4 Linux常用命令$ r1 Z- g9 U( s* U. Z) {; N$ G; y
│  │  │      16_linux - 常用目录.mp48 M& }, P2 {8 n2 t& G. L+ M) t* M
│  │  │      16_linux - 常用目录.mp4.baiduyun.p.downloading: c, o  A% R6 E" W& r
│  │  │      17_linux - 基本命令.mp4- {# \" [: x2 ]' q9 p
│  │  │      18_linux - 操作目录.mp4
$ \1 m, X) B1 O3 t$ q& m' @" V│  │  │      18_linux - 操作目录.mp4.baiduyun.p.downloading
9 Q. c( ^% x' y( P│  │  │      19_linux - 文件操作(一).mp4
. e6 |, E  N' {" T8 U│  │  │      20_linux - 文件操作(二).mp4  T) e' g/ B9 @2 M" z/ v
│  │  │      21_linux - 打包压缩(一).mp4. ]+ A2 h2 {- ^  D2 t
│  │  │      22_linux - 打包压缩(二).mp4
2 G- B) G4 r% P% |│  │  │      23_linux - 文档编辑.mp4
. S$ F# a2 @- R! V- ]- O+ m2 K│  │  │      24_linux - 其他命令.mp4% ^$ l& }4 M) B0 U8 ?2 ^
│  │  │      25_linux - 文件权限.mp4' `! w. E. L+ j; i$ `2 b3 A, W
│  │  │      25_linux - 文件权限.mp4.baiduyun.p.downloading" g, M4 {0 U- u( U0 ?  x# S
│  │  │      1 {2 h1 F4 ~$ u4 F$ Y
│  │  └─5 Linux安装软件5 m% W* z3 D6 J* W' a% E* O3 \
│  │          26_linux - 安装jdk.mp4& A6 n* f( M* u. v
│  │          27_linux - 安装mysql(一).mp4  t# M( C- t! j+ R
│  │          27_linux - 安装mysql(一).mp4.baiduyun.downloading
* S  a. H6 X0 }  S, H& s: @" }│  │          28_linux - 安装mysql(二).mp4
" @# Y; s7 k: Z│  │         
* i1 c* U4 S! q9 {1 ?5 n. f│  └─5-9 JDBC
: V; H* k5 X- B& U* A- y3 z│      ├─1 JDBC详解
' d+ B  d% M& b9 T, k" V5 x( y( f│      │      01_jdbc介绍.mp4
# F0 K% o0 X: e8 H7 r/ O" l* {│      │      02_jdbc - 入门案例(一).mp4* A$ t0 I0 q! T- N
│      │      03_jdbc - 入门案例(二).mp4! u. B# H! f+ y; x
│      │      04_jdbc - 注册驱动细节.mp45 z, j4 F. s3 S: c1 q8 W" w! F. l
│      │      05_jdbc - 工具类抽取(一).mp4! R0 @3 v' D  H2 J/ Z: M, K; V
│      │      06_jdbc - 工具类抽取(二).mp42 K4 Y, P" s4 ~% @1 }8 _6 Y$ [
│      │      07_jdbc - crud(sql语句回顾).mp4. Y5 O4 m7 \1 y# Q& U) f; x; J! F
│      │      08_jdbc - crud(添加).mp46 h( [; g4 [: h, O2 ^5 Q" p
│      │      09_jdbc - crud(更新).mp4% _2 i1 `, {! n5 a
│      │      10_jdbc - crud(删除).mp4- h+ a* A% f/ @1 ~
│      │      11_jdbc - crud(查询).mp4
2 z( b; L8 U3 D7 L│      │      12_jdbc - crud(查询单条记录).mp4
! _& g' l: V* q│      │      13_jdbc - crud(聚合查询).mp49 @* \. D7 h4 G+ [) ~; l
│      │      
' d* o+ k) S1 I│      ├─2 DAO设计模式
# z" Z* i) \3 g/ {% `│      │      18_jdbc - dao模式(一).mp4( t8 {& E) u$ X9 C6 i% ?5 ]
│      │      19_jdbc - dao模式(二).mp4$ h2 m5 d; L0 l0 U
│      │      20_jdbc - dao模式(三).mp4- Z  H( F# |6 Q$ T' ^' _
│      │      21_jdbc - dao模式(为什么使用接口).mp4
6 _/ e: m. q# E1 \4 y* Q│      │      
6 d" j/ S  f# L7 V# E│      └─3 连接池技术
! w) S% o' ^4 A4 Y' L│              22_jdbc - 连接池介绍.mp4
5 @0 e6 ~0 |  J8 ~9 C│              23_jdbc - c3p0连接池(代码版本).mp4# ^0 Z# a6 ~1 q: A3 H0 l
│              24_jdbc - c3p0连接池(xml版本).mp48 s( G' u3 p% V/ }3 p6 N
│              25_jdbc - dbutils(一).mp4$ w$ r! Q4 b( m1 ?! c6 w4 d
│              26_jdbc - dbutils(二).mp4
8 h9 M( N4 d& f( L% i│              ' y8 g# W) A  E5 ]) `$ V4 W, L
├─6阶段 区@块链前端加强和中间件开发
! S9 f# D( K$ l│  ├─6-1 NodeJs
, W; t% n5 q, Z6 T0 o3 P% P│  │  ├─1 ES6语法  Z6 }* t" m- ?# N1 e3 a4 s
│  │  │      1.ES6介绍.mp4' R( V( u  S. L2 s5 n% _
│  │  │      2.ES6变量定义.mp4
$ T" P: p' H( s│  │  │      3.ES6解构赋值.mp4
" a+ \; j3 z0 r; X│  │  │      4.ES6函数扩展.mp4
* y; j9 M6 q" J" Q+ U8 g│  │  │      5.ES6class语法.mp41 Z+ `5 i7 G+ p# L
│  │  │      * u1 A2 D3 w$ f2 C; S/ ^* n" v+ _
│  │  ├─10 美女爬虫项目
* R, P' J: y# X/ T: X; s# i$ v│  │  │      5.爬虫项目-获取html.mp4; [5 r4 D2 P0 H+ j6 y% S- l1 K
│  │  │      6.cheerio类库的学习.mp4" ~% O) Z7 A4 j! z! B3 u; I
│  │  │      7.爬虫项目-解析dom并下载图片.mp4# F  v. }, K; k+ c1 s) a' d
│  │  │      8.events模块重构爬虫项目.mp4
0 B; g8 N/ M0 J9 u│  │  │      # V4 T7 s( m7 f6 u
│  │  ├─2 NodeJs的发展和起步IO
& P# B( D5 Y0 }) P│  │  │      6.NodeJs的发展历史.mp4
" }( g; K) h. u: I4 s$ a2 F/ g│  │  │      7.NodeJs异步IO机制.mp46 P$ _* Q: O6 m% S
│  │  │      8.NodeJs功能介绍.mp44 o* A' h: f9 @1 {
│  │  │      
0 [* r# J' {/ g│  │  ├─3 NPM介绍, f9 ?" y/ X6 @1 Q+ x4 D
│  │  │      9.npm包下载.mp45 q+ B$ V0 B1 b: A" \. F( Z
│  │  │      ( e% l' e3 q8 E! I* F+ A; z2 a) z5 Z
│  │  ├─4 NodeJs全局变量
6 g. M1 r1 ?/ o% q( x! b( U│  │  │      10.全局变量.mp40 ~! b% K/ L6 k% v
│  │  │      
8 b3 y4 ~1 j3 f, a( ?│  │  ├─5 NodeJs文件操作
8 _/ U" R7 D9 ]│  │  │      11.path模块.mp49 o) t: P4 t% r7 [  G
│  │  │      12.fs模块.mp4
4 o3 X. G' o" a+ |3 O: v% E! g│  │  │      13.fs模块reader流.mp40 C) m$ I2 A' }, L
│  │  │      14.pipe的使用.mp4* ?/ x& w" }. H7 {
│  │  │      
7 q/ Y9 m8 ?. _) ~0 Q& o│  │  ├─6 NodeJs异步语法" ?' y9 l# X! F
│  │  │      15.promise和async_await语法.mp4- {9 g. c* w# c1 L# I
│  │  │      
: Y% M; P- a; P" {/ o* c│  │  ├─7 http模块学习' M3 U" m: [% ?( J; `
│  │  │      1.解决昨天遗留bug.mp4! w) ]  \; N) u
│  │  │      16.http模块.mp4
1 ~  i6 e& [6 n8 c7 m5 j│  │  │      17.static-server(有bug).mp4  h  b  M7 j! t. a
│  │  │      
. U  k5 o+ r6 Q/ k6 a│  │  ├─8 模块
. q7 Q6 O9 D% h& I│  │  │      2.模块导出.mp4
; c2 J" C1 D/ R* c│  │  │      3.crypto模块hash算法和aes算法.mp4
9 p) g0 X1 F) M3 R9 T. U$ h│  │  │      4.events模块.mp4
% H0 ^9 _. ~* q) T7 V& l│  │  │      $ r7 i' I0 f* a7 M  N
│  │  └─9 crypto模块和events模块5 q# b) }7 l+ w! f% b# ^
│  │          4.events模块_doEbD.mp4
0 N, c+ }& V1 ?; L" k+ s* \9 G' U! s│  │         
- T9 |" `6 r# U│  ├─6-10 React项目开发
  f2 a2 N" m! _│  │  ├─1 Module导入及导出
3 ]" g; h2 o) k│  │  │      09.组件的抽取.mp4' {' `" C) F2 o6 e
│  │  │        h7 A" ]7 x3 p) ^
│  │  ├─2 GTD综合案例
: _6 e1 l$ n% M9 l. U│  │  │      10.条目的添加add和删除del.mp48 t; d# [* V" V5 j# |8 o: Z6 v
│  │  │      11-Props类型检查及默认值设置.mp4$ y) e5 O9 T% }. r+ K6 Z, C2 @
│  │  │      12-配置样式&条件渲染.mp4
) s4 ?+ ]9 Q9 n8 o( E9 D│  │  │      13-在受控组件&非受控组件之间抉择.mp47 \% c& e4 H: |- N& j1 g
│  │  │      14-路由.mp4
$ N- [8 U# W3 q  ^│  │  │      15-组件的组合.mp4' _5 |1 R+ [: t3 ?
│  │  │      0 `3 B0 l5 |/ d1 s' c1 W/ z! q! ]
│  │  ├─3 三方UI设计语言
# o% b3 I5 i, p6 I│  │  │      16-三方UI设计语言antd的使用-0.mp4
0 l  M4 Q9 W+ [6 N! E% H2 y│  │  │      17-三方UI设计语言antd的使用-1.mp4
7 b+ L" S. K* G/ i/ S│  │  │      ) G  t% i7 A. v0 {
│  │  └─4 打包及部署
6 o: j; x3 g4 K" z6 H1 T$ D│  │          18-打包及部署网页.mp4
3 o  |* [, N2 K│  │         
0 x4 c5 _5 y. @4 d│  ├─6-11 ReactNative入门' g- O- T. Z: {- _% Q& H  R
│  │  ├─1 ReactNative入门
/ n" a" U. _' H* E│  │  │      01-知识点&案例介绍.mp4) F& L, A8 e6 b( ^* S
│  │  │      02-了解React-Native.mp4
7 S, b4 D& K9 V; K+ q│  │  │      03-了解React-Native工作流程.mp4
% E' N- D+ {$ U# D; M7 [│  │  │      04-创建第一个React-Native项目.mp42 z- x. i6 z  i
│  │  │      05-了解React-Native目录结构.mp4# p( }  O$ y% W6 d) I, p2 v
│  │  │      06-ReactNative开发资料.mp4( X9 z# f2 T3 m2 d# w0 [  `7 t; h
│  │  │      0 t) V" u5 v4 {, e; a  O
│  │  ├─2 ReactNative 页面跳转
9 l9 d5 _& @! D4 ]; i│  │  │      07-通过react-native-router-flux完成页面跳转.mp4
$ M: i. Z% O7 X" L3 R: u2 ?6 e│  │  │      
% Q5 n2 y. Y' H7 [4 n; \' B- A│  │  └─3 ReactNative组件
3 K# d# i- C% B. R3 R6 Q. ]" g│  │          08-开发组件(swiper).mp4% s7 F; `/ r% O0 v; Q9 h
│  │          09-长列表FlatList入门.mp44 a; Z, W; W/ s# o8 u
│  │         
+ o0 T; A7 \; D: c: W9 N( q│  ├─6-12 ReactNative进阶
! W0 Z0 w0 ~5 l│  │  ├─1 网络数据加载及展示
9 Q! N6 C: d9 |/ O# Z: s- D" h) O│  │  │      10-通过fetch请求网络数据并刷新页面.mp4
  R2 q# y1 j7 A│  │  │      11-FlatList页面优化&按下事件.mp4. m+ r" `: B4 o" V4 @7 \; @
│  │  │      12-电影详情&Image的resizeMode&ScrollView滚动布局.mp4; y/ t6 J; l, r9 d+ f
│  │  │      
. K( ]/ A- R$ j! Z8 B) `# b; s│  │  └─2 调试&打包应用
3 q& j5 z0 d! K0 ?* S│  │          13-日志与调试.mp41 C4 o: K! i  T) f+ V
│  │          14-打包签名Andriod应用.mp4
) X4 M1 u- M' P$ a│  │          15-修改应用图标.mp4, b% c1 {' R7 x# P
│  │          ! v6 K- q* G' b6 d. `9 T
│  ├─6-13 ipfs基础入门$ w5 e6 l" S' [2 v9 ~* Y- z7 X
│  │  ├─1 ipfs入门介绍
. ^" Q9 ^$ u: a. z+ g' T│  │  │      01-ipfs&音乐播放器课程简介.mp4
# U% k2 L, T0 q% t5 U! a│  │  │      02-ipfs简介.mp4
- G5 R9 K- }  c8 e9 @│  │  │      03-Http协议的特点及问题.mp4
* T$ I& t# k, m$ ?│  │  │      04-ipfs的特点及优势.mp4
6 G" }$ V- }- Z' m! ?0 M│  │  │      $ o$ H6 w- h7 U3 w5 C
│  │  └─2 ipfs的常用命令6 N" R9 S" J9 Q  \; A
│  │          05-ipfs入门&基础操作(上).mp4, S3 t* ^' s$ [; \
│  │          05-ipfs入门&基础操作(下).mp4
- @" b) v6 B( d& U, Q│  │          06-ipfs数据传播方式.mp48 W( J5 k* {7 m& q% m; a' d+ a
│  │          07-ipfs的files操作.mp4
7 B' |0 e# J* E# d│  │         
4 ]) G: ^2 o( t4 z' @│  ├─6-14 ipfs进阶技能
. F9 C4 D+ M2 ~: z5 h│  │  ├─1 ipfs的配置
- H) M+ q2 x3 o4 ^& g│  │  │      08-网易云音乐的API.mp4" h' F: e! t5 R/ S; `7 k
│  │  │      09-开放网关&修改默认IPFS存储目录(上).mp4( d5 g# w2 x! v3 \. d! n4 J8 j
│  │  │      09-开放网关&修改默认IPFS存储目录(下).mp4! Y$ o5 H8 {* B) ~; I2 h* h! U
│  │  │      10-ipfs添加&访问图片数据.mp4# C' T4 ]9 \; _! S" b
│  │  │      
; F$ ~& z+ X6 b) X3 l│  │  ├─2 使用js-ipfs-api
% s6 |: P( [4 ~" m" ~│  │  │      11-使用ipfs-api获取网络数据.mp4% e. S/ J; `9 U
│  │  │      12-使用ipfs-api上传网络数据.mp4
( h# u  D: p3 `5 o( \& Z; ~│  │  │      : Y: O4 s; p3 H
│  │  ├─3 ipns# j" [2 i2 M9 i$ _2 C; i
│  │  │      13-ipns绑定hash数据.mp4" Q. q1 v6 _: o) @
│  │  │      2 X8 j1 W' Y7 ^3 B
│  │  └─4 ipns的其他常用操作
" M8 t- \9 U+ ]- F( p! {1 {- y% ~, j/ N│  │          01-课程介绍_2EbFP.mp4
. C( q3 v: e6 T9 p  D# D│  │          02-ipfs其他常用操作-pin.mp4
- r$ {' E4 ]- D4 g│  │            J, h4 q0 T& o2 G# c$ _! T5 q
│  ├─6-15 ipfs-api案例项目
2 h9 H' s4 K: |7 e+ M│  │  ├─1 ipns-api案例开发: o' Q9 N: H0 S$ I! t
│  │  │      03-ipfs页面路由.mp4
9 A$ j' r0 i/ H│  │  │      04-ipfs-api文本的上传及获取.mp4# ^0 R8 ?1 C% c, ^6 z+ M- a8 L8 P
│  │  │      05-ipfs-api多媒体文件上传.mp4* V4 M0 K0 S  m1 u) h: y0 ~7 }
│  │  │      06-ipfs-api图片文件上传&Promise封装.mp4* s+ U0 G& f) z8 |
│  │  │      07-ipfs-api文件files的使用.mp48 Q* h4 B9 Q4 X3 e! G
│  │  │      
6 K/ P: \4 t+ m# A1 j│  │  └─2 antd设计语言+ ^  [4 v' c6 L7 q' i
│  │          08-引入antd布局.mp4, _5 H5 ^; ^5 r8 x0 [# u
│  │          09-配置antd的布局路由.mp4
, {4 T2 ?1 S6 `; v  S; _7 x. p│  │         
9 F/ v1 g( @! |! Y│  ├─6-2 mondodb
" i. S8 W" v( c. B6 v│  │  ├─1 mongodb
7 l3 ]& V, y9 F6 K0 l│  │  │      10.mongo命令行增删改查.mp4
1 {+ m! U/ ?7 G│  │  │      9.mongodb介绍和安装.mp4: b/ b% [, `( _" p
│  │  │      
8 i7 }6 {. m# L3 h9 {│  │  └─2 mongoose
& C3 n4 O" G$ g" s0 _, t2 z( P│  │          11.mongoose连接数据库并插入数据.mp4, f$ W7 @' a! _5 S
│  │          12.mongoose基本CRUD.mp4) R- Q6 g9 H3 w- X( U
│  │          13.mongoose高级查询.mp4
+ E' ~) O- N( P$ n( j│  │          ' U$ S0 O4 m2 m5 U
│  ├─6-3 Web框架
3 n1 C5 @4 D/ d( a5 [│  │  ├─1 express框架  e7 o3 n' z, Z: h: {2 d; H
│  │  │      1.Express简单使用.mp4
1 V" `# l( D8 d% d│  │  │      2.静态文件托管.mp4
' z/ k; X2 Y  J* a0 d│  │  │      3.路由的简单使用.mp4& G* `' K; v5 R! I1 l4 K
│  │  │      4.强大的路径匹配.mp4
9 o2 X; ~' }5 t│  │  │      5.模块化的路由.mp4; r7 I& v3 ^' C! G( m" b1 K
│  │  │      6.中间件系统.mp4( G' ?- n. _7 w9 h
│  │  │      7.全局错误处理.mp4
  V1 g9 N4 e5 A7 I- y  k# f│  │  │      8.模板引擎.mp43 p# p' l: W# B) E
│  │  │      ! x' l+ k% N% j  S6 q2 n$ c% Z& S# _8 T
│  │  ├─2 pm28 z( V3 w) B$ b5 }: x
│  │  │      9.pm2进程管理的使用.mp48 [5 n+ H. ?5 D1 k6 S* K7 ^
│  │  │      4 `+ n  z+ L$ ~( \9 L- v
│  │  └─3 Todo项目' @" ~! U$ a* [% V3 q7 E! r1 g/ z2 P
│  │          1.Todo项目service的编写和单元测试.mp4: m% l+ L6 Y$ z1 G' [6 w4 F7 Z- T
│  │          10.Todo项目的架构搭建.mp4& g) i4 }1 [7 R& P& N; ~
│  │          2.Todo项目router层的编写和测试.mp4
; v9 X) t: z3 e- y% \' b, t5 `│  │          3.异步异常的捕获.mp4
3 b( w0 G% ], w0 j4 X" U│  │          4.日志中间件和config文件的使用.mp4
. e$ Q3 X) j( x5 t7 q" h1 n│  │         
% w0 R. @' O9 U. ~. ?│  ├─6-4 Web开发
9 \5 @: g$ b, B! T. _│  │  ├─1 RESTFul API设计和前段端分离
4 n: J# x+ U1 R6 e│  │  │      5.RESTfulAPI的设计.mp4
: z% d* g+ n* Q5 A- r; a; w# C* q; r│  │  │      6.前后端分离的概念.mp4
+ f3 k4 t, f! l& [# h; h' Q3 c│  │  │      
8 [9 }5 O. ~" V3 b+ B# J│  │  ├─2 电商管理后台项目架构搭建4 D* w- |* T- \: b6 f6 |
│  │  │      7.电商后台系统介绍.mp42 Y# I( ^3 Y8 L
│  │  │      8.搭建电商后台项目的MVC架构.mp4/ r) }/ A; c+ y$ {3 ~5 |. b
│  │  │      9.config的动态切换.mp4
/ o. v' [2 h! a* B$ @- m7 T) |│  │  │      7 W2 }/ z3 `: X# a# E0 Y
│  │  ├─3 用户模块
7 O  H) l- X* ?- s9 I│  │  │      10.res_md中间件的封装.mp4
+ S! c1 f! Y3 c" ?│  │  │      11.userService的编写和单元测试.mp40 b' s" ?1 R$ m3 c
│  │  │      12.使用token来实现用户的认证.mp41 t9 ~0 l' ~8 f
│  │  │      13.user模块的router层.mp4
" v  C- R6 v6 H8 y│  │  │      
* l8 z1 Y+ u3 J  |; ?/ N│  │  ├─4 分类模块. ?6 G. p/ w6 t; o1 {( S
│  │  │      1.category的service层编写和单元测试.mp4
3 h. `+ `5 b, R. N& k│  │  │      2.category的router层编写和测试.mp4
7 ~0 g4 F+ a% n4 Q│  │  │      
1 N- W! Y8 E& L  x( p: }2 R│  │  ├─5 商品模块
% d$ d' o# ?" ^( {1 z: f) C& q! y# M│  │  │      3.product的model层编写.mp4
# a+ O; S& p1 V: `3 n1 J│  │  │      4.product的service层编写和单元测试.mp45 k/ d9 z+ n# j2 e: w' s
│  │  │      5.product的router层编写和测试.mp4
  P+ g( X; [- N* x8 J│  │  │      
# W3 A0 c: F; f* c* ?│  │  ├─6 订单模块
' }; D  g% ?( F│  │  │      6.order的service层编写和单元测试.mp4) L+ k# e  I' w: K
│  │  │      7.order的router层编写和测试.mp4
1 F) u( B* i4 n9 L8 E- n, P  I2 X+ {- H│  │  │      8 D7 w2 o" I7 E4 @3 @/ n- r8 b9 L6 H
│  │  ├─7 token认证和权限管理% o0 s  R  y5 Z& N3 z# a6 D
│  │  │      10.permission中间件.mp4# x$ w1 ~" Y: c0 x
│  │  │      8.token认证中间件.mp4
. R: a# }3 {8 M) o, Y2 }4 ^│  │  │      8.token认证中间件.mp4.baiduyun.p.downloading
8 Z. D8 T1 ^/ v$ r│  │  │      9.完成token认证的中间件.mp42 T/ c1 W& J% T& y' a+ J
│  │  │      # [2 O$ S  d- w
│  │  └─8 集群搭建和线上部署& a6 e' j0 k: }7 F4 z* N  H' K
│  │          11.pm2集群搭建.mp4" T$ ]: t, @% b$ s: @8 v5 f+ {
│  │          12.线上服务器选择.mp43 Z6 R* ]" G. Y: l" P
│  │          13.阿里云部署工作流.mp4" f* ]9 F7 X$ i7 A. F) I( C1 [
│  │          - U" ~+ X1 @+ n, n
│  ├─6-5 高并发解决方案
0 J4 \' L- {0 `! q# G│  │      1.高并发的硬件和软件的解决方案.mp4
- K( s' T! c7 J% b│  │      2.Redis介绍和命令行操作.mp4
4 i, |- Y1 w9 D- K$ t1 A9 A│  │      3.Redis在项目中的使用.mp4; A& u& p  b/ g3 o! Z4 t5 k" t4 t
│  │      Thumbs.db& t- c/ Y/ [4 y0 `8 T+ m
│  │      
  j( V6 s( e/ ^! j: V9 k│  ├─6-6 Vue的基础语法5 O, T/ u2 r3 D8 O0 J
│  │  ├─1 Vue的入门
( C* |% _$ N2 e9 T! [% f│  │  │      01.课程介绍、.mp40 H9 c& R; ?  `9 T
│  │  │      02.vue的介绍.mp4
# A9 M& q( h* U+ q) u5 z│  │  │      03.vue的简单入门.mp49 j, E* f9 |% N" \- _9 F6 |
│  │  │      04.vue快速尝鲜.mp4+ X7 d& v& ]3 R: i% ~
│  │  │      
  D% `+ y( `3 d/ s+ `6 F4 h0 o3 X│  │  ├─10 结构和路由
: f, f- _! u) f│  │  │      26.工程结构.mp43 B, M0 Q. s8 l/ n
│  │  │      27.vue-router.mp43 N" s- u) E; m: E
│  │  │      28.总结.mp45 y! q% L4 ?' R7 M! i: i
│  │  │      
+ z& V' c" K+ |- M' \3 J) Z│  │  ├─2 Vue的实例
' M1 A" u, P- Y7 X( e│  │  │      05.数据和方法.mp4( u6 j: D/ K4 d
│  │  │      06.生命周期钩子.mp4/ A- S; M5 b$ J+ d
│  │  │      07.计算属性.mp46 n1 Z# M$ \' Y) x. [) ~
│  │  │      08.侦听器.mp4/ a. O2 O( e: F3 r  e/ N( z  w
│  │  │      
7 n/ j; j( E! W' y3 g/ j% l│  │  ├─3 class的动态绑定
. m/ A6 x/ I) O0 h# E# A: F3 `│  │  │      09.class的动态绑定.mp4: P9 K& L0 F! [% G) W
│  │  │      
# Z* c) S1 B' P+ s% `│  │  ├─4 vue中条件判断
5 F2 o9 y5 v/ W0 r3 N│  │  │      10.条件渲染.mp44 g. D/ d. @+ Y. s/ K
│  │  │      ' z' @1 w' \) s& s( a/ ^0 M
│  │  ├─5 vue中列表处理( w$ U- ~1 f0 L+ y" E6 v* q) Y3 q' D( r
│  │  │      11.列表渲染.mp4
3 t* y+ u) U6 K2 f│  │  │      12.演示数组中的操作.mp4- }1 M2 q/ f( L3 Q! N
│  │  │      13.遍历对象.mp4! ^& ^! Z6 e( f0 n
│  │  │      14.修复数据-注意事项.mp4
9 v0 x& H/ }; y7 k" ~; Q│  │  │      15.完成todos案例.mp4- _8 @* a, k$ O* N1 Q* b
│  │  │      
4 A$ l. n% P, }# A6 S│  │  ├─6 vue的组件4 K8 l- Y4 F* e2 X1 D2 y0 [
│  │  │      16.全局组件.mp4
3 B; t/ V  E$ N6 t. d│  │  │      17.局部组件.mp4
1 Z: s' j7 d* u  O! C0 w3 Q7 ]- l│  │  │      
1 I9 Z5 J8 F4 v' r4 G7 [  n( {( X│  │  ├─7 vue的组件通讯
- a, Q5 w+ m( A+ C│  │  │      18.父子组件通讯-父传子.mp4
5 d% l8 t1 N0 u3 _│  │  │      19.父子组件通讯-子传父.mp43 _1 L1 c4 u/ t+ a3 l( Q* M
│  │  │      20-注意-子组件不能修改父组件数据.mp44 M9 U8 O6 ^+ Z; ^- ?; u) C
│  │  │      
, T# T; L7 Y# n. i, m2 |5 X" `│  │  ├─8 vue的插槽1 ~. b2 ]9 n  M) f. X0 I; V
│  │  │      22.组件的插槽.mp4' _' A% S3 ], H/ }. e
│  │  │      23.具名插槽.mp4
% v8 {1 [9 X$ T  i( O; w, m1 K│  │  │      24.动态组件.mp4
; `6 D2 L1 p5 h* \) s│  │  │      6 o' c8 T! \" f7 _( _! U
│  │  └─9 Vue的脚手架工具
4 K. V' U9 ~# ?) ~1 j" r│  │          25.vue-cli脚手架工具.mp48 [% f  H& B3 n4 v( N
│  │          " |2 K8 b# ?  J. N+ T* X
│  ├─6-7 彩票排项目重构
- S% l; h1 f$ [+ C7 ~# ~│  │  ├─1 搭建项目结构* N* @8 W* I" L% K/ C* C
│  │  │      01.上次课内容回顾.mp41 U0 q  @# c% R! \
│  │  │      02.今日课程介绍.mp4/ H( P" e2 d/ v0 L8 i- |5 y& F
│  │  │      03.搭建目录结构.mp4
8 v% |! }% L5 @4 ~│  │  │      04.引入bootstrap.mp4
  ]; V$ |) L7 c* Q" p│  │  │      2 f& y+ E- L3 i5 l! [
│  │  ├─10 完成选号组件的业务逻辑6 O2 G. C* J3 {0 y
│  │  │      01-今日课程介绍_gTKQW.mp4/ {9 k. p) W! d$ a
│  │  │      02-搭建选号组件.mp42 }0 B- y% a: R* H
│  │  │      03-初始化所有红球.mp4; r+ i: g) o1 P  O
│  │  │      04-红球单选的逻辑.mp4
; G8 }0 r$ M4 s# |, n) j) A* p│  │  │      05-selectpage获取选中红球.mp4
+ K. B% j* d2 ~5 d7 Y* X│  │  │      06-初始化所有蓝球.mp4
. T9 Z% [9 R  L5 R  W2 k' N│  │  │      07-蓝球的单选逻辑.mp4: R/ O( S, T. X* I* ^
│  │  │      08-selectpage获取选中的蓝球.mp4
: e2 ]& U& \0 |2 h, M3 X│  │  │      1 |7 F* w, d7 V+ m' l% c
│  │  ├─11 添加数据到Vuex中
+ m* N0 j( _& c  h│  │  │      09-添加数据到cart中.mp4
. |7 K. N- S5 T* I+ S& A9 `│  │  │      10-上节课遗留问题.mp4# [1 U+ N5 `6 R. }
│  │  │      11-修改数据为购物车定义的格式.mp4
# }  s3 d2 u3 C+ l│  │  │      
) ]# ~4 e' m9 w/ M& V% z6 W+ \│  │  ├─12 完成购物车组件
) P1 K0 r+ I1 _. u- Y( ]) m+ ^7 R4 r│  │  │      12-显示购物车中的数量.mp4
* z% e- {% b0 L  c% v. P│  │  │      13-购物车组件.mp4
7 q6 V9 K7 g$ S3 `│  │  │      14-显示购物项信息.mp46 H! V" \- V* E8 B
│  │  │      15-完成机选功能.mp4
# k9 X9 F! S7 q7 o/ ~* ~│  │  │      16-完成清空的功能.mp4: M+ @/ p8 ^; K
│  │  │      17-完成删除单个购物项.mp45 r$ G5 \; C$ p- _1 G
│  │  │      18-显示购物车总金额.mp4
% O- {9 ^6 A% ~; e5 O/ g5 O│  │  │      3 O6 L- I1 Z6 a0 V8 @; w
│  │  ├─13 将数据保存到浏览器中1 S$ J& E( x. m
│  │  │      19-使用localStorage改造项目.mp4" c1 r; o8 Q$ y/ e# p$ I. l1 J
│  │  │      
$ b, p8 [; Z' m/ X6 ]4 ~3 x│  │  ├─14 机选逻辑( e  m" f; X- x9 u
│  │  │      20-红球机选的逻辑.mp41 N) I/ X/ i0 O) y, S
│  │  │      21-蓝球机选逻辑.mp4
' I' X, b  U  M- ~; n│  │  │      22-机选逻辑完成.mp4
4 M& g/ C; u  g# K' m. p8 n9 h7 ?│  │  │      : R9 U8 u3 y0 J6 i  e
│  │  ├─15 总结+ z0 _; D1 [9 G( j. {/ `% A
│  │  │      23-打包.mp4
' d. T# B2 @7 d9 }' U│  │  │      24-总结.mp40 D# t; J/ E1 Z4 g9 a& ]& R8 s
│  │  │      
3 T# _/ c6 f  ?% G8 G6 k  }│  │  ├─2 完成首页模块
( S9 z- d  W6 q│  │  │      05.TitleBar-上.mp40 ?: t' s* Q4 V0 {
│  │  │      06.TitleBar-下.mp4
4 t! K/ E. g; x( p│  │  │      07.抽取Carousel轮播图组件.mp4+ y  E/ l0 v5 g! p
│  │  │      08.抽取HistoryList组件.mp4
- y3 P" O& n8 M' |: d" P7 @│  │  │      09.发送请求分析.mp43 Q% `6 o  H0 a. c* W: _
│  │  │      10.发送请求获取staic中的数据.mp4
+ z% z% o6 w  V: t- C8 q│  │  │      11.完成首页-列表展示.mp47 m8 o) R7 Q) n" U
│  │  │      12.回顾首页案例.mp4
$ @& ^- M2 F6 [" W; s6 Q│  │  │      
& f; }* d+ s& M' L│  │  ├─3 调试配置
, @6 K# N4 N" j/ u1 t6 S│  │  │      13-pathRewrite前后端代码联调.mp4
" f# h  I7 S: h/ n│  │  │      # l9 n' G: s) F+ y1 Y
│  │  ├─4 重构menubar和titlebar' h0 i+ m! s- a2 ~4 Y& k
│  │  │      14-抽取menubar组件.mp4
' H. `8 [$ z) I6 M1 n│  │  │      15-组件之前的跳转.mp4( ?& a  [/ y1 g; O4 B& q
│  │  │      16-修改titlebar中needback为布尔类型.mp4
* N" B- ~9 o, [8 x$ B│  │  │      3 f0 N# ]& e. h! a6 K. |
│  │  ├─5 完成彩票详情组件
+ f, J* h& G8 t# E, c  w│  │  │      17-完成彩票详情组件.mp4
7 ^* ?6 @; W4 i5 @% H│  │  │      
, C3 H' B3 X; L& y/ C│  │  ├─6 解决遗留问题& V& E4 M  `& J4 V
│  │  │      18-上午小结.mp4$ J2 Q# z- M& t6 K: K
│  │  │      19-创建登录组件和用户组件.mp4
, ?( {9 l4 d7 N│  │  │      20-解决menubar跳转问题.mp4# x8 \5 H5 h& W: u) L. {
│  │  │      
" w& Z) d7 U7 P8 o8 J/ h& Y, B/ m/ F│  │  ├─7 Vuex的介绍
2 R# I6 }: e& t; A; f) c│  │  │      21-保持用户状态问题-非父子组建共享数据.mp4
# G5 n9 F' C' q8 m6 H0 }│  │  │      22-Vuex中的简单实用.mp4, X- ~4 l" P. {# V. M- K1 G
│  │  │      23-vuex中getters的使用.mp4
- G  v3 f1 z; H) ]2 h/ p$ c│  │  │      24-vuex中抽取模块.mp4
+ p5 s5 i2 l7 k. p, a│  │  │      25-总结vuex.mp4. X2 y0 q! g' Q4 h6 q5 h
│  │  │      ; v: c# l2 M. {/ y" u$ A
│  │  ├─8 使用Vuex
4 d* R( M7 M( f8 ^. O* P' W' f4 W│  │  │      26-封装一个user的Store.mp4
$ S/ s+ E) @5 ^- [0 B" k│  │  │      
4 P% ~8 `' \/ V( [0 {  d│  │  └─9 完成登录和用户组建共享数据. ]: j: \9 D8 l2 k, v
│  │          27-完成登录和用户组件.mp47 u* G3 g; h  T) p
│  │         
* a; }! Y; I+ e0 Z/ P4 Z│  ├─6-8 React基础入门
* w. G1 D) |9 M8 Q3 S' G. {# `│  │  ├─1 React介绍与入门
9 A6 b; m) x) A- ^8 t│  │  │      01.react简介.mp4
: N( f2 B: ?8 Y+ J) Q* l+ G( \: p│  │  │      02.通过脚手架初始化React.mp4
! X. \6 k/ |' p( X% `: x! W│  │  │      03.配置npm淘宝镜像.mp4
3 v7 i+ s4 R9 Y2 M│  │  │      04.通过ReactDOM渲染元素.mp4: F2 j/ a) S; n" b' M5 ^
│  │  │      
5 @; N, c+ H1 c. y2 p; v│  │  ├─2 React属性&状态" p3 O4 ~2 R  k) q1 T" K. N$ l
│  │  │      05.组件的声明及组件的状态.mp4& t) S2 B2 `3 F2 T( c% B. x
│  │  │      06.组合组件及props的特性.mp4
& t: U6 S; @+ k4 Y( @, O│  │  │      07.state状态及更新.mp4
' g! M. f- t3 j' Q9 u1 O2 \" u7 [│  │  │      08.state状态的特性回顾.mp4; ]( F7 c& M/ P2 _4 O1 J4 A6 k& B: h5 T
│  │  │      ) ^8 F3 V, ]9 j- o/ L. Y4 \
│  │  └─3 生命周期- k8 w9 q9 ]: |0 m2 d4 y9 r1 d
│  │          09.react生命周期.mp4: j7 e" r) u( z
│  │          10.多个组件的生命周期和状态维护.mp4
1 ]% q0 Y+ ^8 Z- V# d│  │         
, s' ]8 ~, r' t1 N8 @% e( H1 p│  └─6-9 React进阶知识' z. @1 T/ N5 P* e& u2 D- N% N& E
│      ├─1 React事件
# t9 y  f) C: q+ U, s$ r% B# V& Z│      │      11.event事件.mp4
6 ~. x+ {( o3 C( f4 d5 A│      │      12.event事件传递参数.mp4
" I/ o' ^7 F+ a3 v/ E│      │      13.计数器游戏.mp4) A- f' S  n2 h2 A
│      │      13.计数器游戏.mp4.baiduyun.downloading
0 _. s* K% u8 f; C% `, l. Y│      │      1 j0 \* n. y! i8 u/ C# N" l$ t
│      ├─2 style样式) q; j" Z- j2 R5 {. s5 t8 K
│      │      0.通过文件引入.mp45 Y% Y$ m6 O, B, D
│      │      00.yarn及翻译插件.mp46 N9 e5 Q- W) N& F: T
│      │      14.style样式写法.mp44 ~# D* h' r% O1 v+ p# W9 u- d8 |
│      │      
# T5 M1 N8 \6 X1 M, \" a│      ├─3 受控组件5 o. w  }# M( d* @( [
│      │      01-内容回顾.mp4
' f& g& z- X6 y│      │      02-付款计算器页面搭建.mp4" {4 q/ x2 I" U3 e
│      │      03.受控组件.mp4
: [; |3 o! ^. w2 o" W/ P" T) w# t│      │      * Y9 E6 Z, o4 C1 B
│      ├─4 状态提升& w+ O8 C5 T, `, E
│      │      04.状态提升.mp4, s" f0 G0 `/ Q, H1 _
│      │      05.状态提升-组件数据流.mp4, m) {8 N2 c0 ~% `% V3 ^1 A
│      │      06-状态提升-付款计算器代码优化.mp4
3 o, g# a5 S* a% G│      │      9 C3 \, ?& V9 ?. q
│      └─5 非受阻组件; s- T: r, t8 Y) |* L' F) z
│              07-非受控组件-refs.mp4
) a' c: a, `: l3 p2 }: G│              08.非受控组件.mp4) ^8 H- P4 H3 p2 E
│              
4 d  S7 G! V9 I2 N* q% }3 A: ]├─7阶段 以太坊区@块链和智能合约实战
. j+ O! t* e0 \; [: B, T3 X│  ├─1 以太坊入门. K( V- Y$ ]  R4 a+ F6 F1 s
│  │  ├─1 区块链市场价值# u6 p( _2 \' u1 X
│  │  │      01_课程安排介绍.mp4
% j5 M; A% J( d+ [% v) w│  │  │      02_区块链10年.mp42 X7 m! s" J& \9 |
│  │  │      03_区块链的市场分析.mp4
: x$ Y7 P0 ]) S+ n7 Q  i2 k│  │  │      04_区块链的项目机会.mp47 p. C" `% z* K' R+ i  \$ i* E
│  │  │      05_信息互联网和价值互联网.mp42 ~6 `- C2 d. E3 _4 B7 {" I
│  │  │      
" r$ h0 i) `. h6 |+ @. [│  │  ├─2 以太坊介绍, @' F* L# n. B
│  │  │      06_以太坊的历史.mp4
# @, b* f& N2 R5 T& M% Z│  │  │      07_什么是以太坊.mp4
5 C5 c5 |* J& D# A. u. n│  │  │      08_如何和以太坊网络交互.mp49 `& ^$ r$ t' M
│  │  │      & A; D7 Y' |6 g' j' e2 z8 z
│  │  ├─3 以太坊钱包安装
+ p* \7 d& H$ J6 E│  │  │      09_metamask的安装.mp4/ Z; u9 ]: {& ~! m) U& @/ q+ E  U
│  │  │      10_如何安装metamask.mp4" Z1 f8 K; k4 c* \( y
│  │  │      
% q5 q% y. F$ Z1 }│  │  └─4 以太坊常见概念
0 |! v( ?+ G3 T' l& o│  │          11_以太坊网络介绍.mp4
; F, `) m( S+ j3 W3 ^0 _│  │          12_区块链工作的核心原理.mp4! q( D- D# e- c* a0 e5 _
│  │          13_以太坊的账户系统.mp4- \. n6 J: X3 Z: m* y% J8 F' }
│  │          14_演示以太坊转账和账户的概念.mp4
' F. J8 I8 O4 K/ B! j│  │          15_为什么转账需要一段时间.mp47 X( ~& _; W  @6 x6 g) W) I8 R
│  │          16_交易打包的过程.mp4. C/ A8 i. N1 O3 O/ c: k0 s- Y7 P
│  │          17_区块时间和难度调整.mp4
3 ]& ?4 M- l! T! E. o/ C/ E/ V. [# \│  │         
6 m! i! y: |. `. u│  ├─2 solidity智能合约
/ \3 i" z% ?6 u5 O+ ?│  │  ├─1 soliddity智能合约编写: z2 v) _8 j7 I' i& R" ]
│  │  │      18_什么是智能合约.mp4- ?1 \6 j+ B/ Q& ^. _
│  │  │      19_solidity特点和工作流程.mp4  @+ m5 ^$ U2 W! {
│  │  │      20_智能合约的源码和实例.mp4
  y2 `6 V( D# x- E│  │  │      21_智能合约的helloworld.mp4
9 q5 E. |) I  e2 H│  │  │      22_自己搭建remix的开发环境.mp4
# h3 V) L& B* s7 l│  │  │      23_solidity函数关键字.mp43 U! m$ d0 a9 E
│  │  │      24_以太坊的call和send.mp4; |- ]6 S  Y1 O7 M; P
│  │  │      25_以太坊的单位.mp4  g4 q5 C; c( L7 u7 o
│  │  │      26_gas和gasprice.mp4
# X  Y% J: Z+ [" N1 Q# e6 l0 t│  │  │      27_助记词bip39协议.mp4/ A* i' Q, g. Z
│  │  │      28_更多以太币的获取.mp4" Z- x& e" Q7 m' x1 x" y$ ?
│  │  │      谷歌浏览器使用.mp4
1 G1 n5 {6 u4 _  _* _5 w5 k  ^│  │  │      
0 \9 D! h; r4 S8 V4 L& ]% |│  │  ├─2 soliddity智能合约编译- E9 A% h" p( e% M( v4 {9 _2 d
│  │  │      01_开发环境说明.mp4$ |* F& `) T0 g2 D, z/ D6 o; `7 ~
│  │  │      02_项目的目录结构.mp4$ j4 t! v  s2 @, C
│  │  │      03_编程简单的智能合约.mp4
: G( `1 w  O0 E* q9 T7 M% ^7 l+ _│  │  │      04_智能合约的手动编译.mp48 [9 q  r2 X( `
│  │  │      1 U3 l1 h, z% Y' t9 b0 |8 f7 e
│  │  ├─3 solidity智能合约框架
2 F+ }1 [# R$ T# g, P* ?* B5 m│  │  │      05_智能合约的安全问题和软分叉硬分叉.mp4
: s/ X4 i' z; M8 P│  │  │      06_mocha测试框架入门.mp4
: e# V7 `% H. o; n! K0 [; y: P  D; A│  │  │      07_安装ganache测试环境.mp4' z/ h, M; y: O0 `5 h
│  │  │      08_web3js的安装.mp4
8 r. N3 i- Y1 x0 X) {6 s│  │  │      09_web3初始化和版本检查.mp42 R5 Y1 }9 @5 o5 Q. n5 C
│  │  │      10_web3一些常用的api.mp42 A, I- ?2 p# [
│  │  │      11_web3与账户相关的操作.mp4
- d( u9 r6 q8 {% [6 T' Q* v- ?5 E│  │  │      12_es6的新语法async和await.mp4- u$ v* B2 [8 M! e- m
│  │  │      - \0 J) c' W: s, o" _2 ^
│  │  ├─4 solidity智能合约部署8 N1 W0 Q! K6 c8 X- h( p+ g6 J$ k" S9 }
│  │  │      13_部署智能合约到ganache测试网络.mp4
% ?1 B) I8 m4 y  y9 d! ?/ ?│  │  │      14_智能合约的方法调用.mp4# C0 F, u& @; ~4 k1 U
│  │  │      15_部署智能合约到真实的网络.mp46 Z% O: o2 D& @0 J
│  │  │      
3 Y) C0 @' Y' B9 u1 _! G│  │  └─5 以太坊水龙头开发
) J7 g+ C1 t; x8 B1 _/ I9 d│  │          16_智能合约开发流程回顾.mp44 }8 j) O5 T. Z2 b" @
│  │          17_以太坊转账逻辑.mp4- t  E; v3 u3 L) i) U
│  │          18_以太坊水龙头的开发.mp4$ a3 K( v( n1 Q
│  │          ' p% `& }$ I3 V* g3 M$ [
│  └─3 区块链项目实战
: S& a9 w  j! I' L1 W8 P. s0 ^│      ├─1 区块链彩票业务分析, ]. u% S  ]$ H
│      │      01_传统彩票业务痛点分析.mp4
" J% D7 n/ b- C4 `7 _│      │      02_传统彩票业务的信任危机.mp4) ]% n7 x- u5 X8 _0 F
│      │      03_区块链彩票原理分析.mp49 {  x2 \. q7 T- z0 F/ y# Q
│      │      0 H( E+ J, k! w, R  V# Y
│      ├─2 区块链彩票业务实现0 X7 i. \9 I# f& y! _1 A
│      │      04_solidity的基本数据类型.mp47 }" c$ c; i; @! Q
│      │      05_彩票逻辑的构造方法&msg全局对象.mp4; Q; l3 J  L: t1 V
│      │      06.solidity数组入门.mp44 n& K$ G% Y. t! V: R& d" p5 T+ E' s
│      │      07.solidity数组长度和方法多个返回值.mp48 B, z& P% o+ T* ?7 K/ ?$ ^
│      │      08.solidity的复杂数据类型.mp4  Y  `9 H; o8 i1 F, e- W
│      │      09.solidity二维数组的小细节.mp4
1 f0 S- d; t, c  ?" u) v% _! n│      │      10.不同版本的细微差异.mp4
$ V3 R) N0 _! v. j% G8 c│      │      11.彩票投注的流程.mp4$ T9 J, J. O0 L, b/ Z; c. ]/ z
│      │      12.智能合约的debug.mp4: d. Z+ u9 }& a# [. Y/ d
│      │      13.奖池金额的查询和参与人的查询.mp46 E! y) S: D# @
│      │      14.彩票随机数生成和开奖.mp4" S# ?1 Y! s5 U3 k' P4 u4 S
│      │      15.彩票的退款逻辑.mp4. s2 e% ^. d! K+ ?. J; }: M
│      │      
+ K# H4 n" S3 }  }* q0 ^- `: r# o5 |│      ├─3 modifiner使用
" N) U. S5 `" ^! w. S% r8 h3 A9 t│      │      16.modifier的使用.mp4
) ?, i8 C* S. e( z│      │      # Q9 o% E6 ]) y
│      ├─4 fomo3d原理
# r2 r) L" f9 S+ w8 ^│      │      17.fomo3d原理分析.mp4) w  X3 [. J5 V. z
│      │      18.fomo3d的漏洞解析.mp4
9 t/ g) u' G& V4 w! g+ u% J, b│      │      
) `* F$ X: s: l: q; b│      ├─5 智能合约测试6 a- U( ~! A- t$ }
│      │      19.智能合约的测试(上).mp4
1 e. _+ |6 ~( |% V. O2 I& }% D. Z2 r│      │      19.智能合约的测试(下).mp47 J% G3 S# W1 E3 w
│      │      ( p9 I5 c* m& h. j& X
│      ├─6 彩票项目实战
& _5 g8 F  K# o* l/ e│      │      01.dapp的架构分析.mp4- f/ C+ F) r$ n
│      │      02.react开发脚手架搭建.mp48 K8 ]" a4 A% U
│      │      03.react的ui开发.mp4
2 f! @5 C1 E9 Q3 ^, ^( T8 A│      │      04.彩票智能合约的部署.mp4
6 J" q% }& V& x│      │      05.web3版本的问题.mp4- O7 a7 R+ ], z* g% R
│      │      06.获取rankeby网络的信息.mp4
7 ?/ v+ l) ^( ]+ B, N( U│      │      07.获取以太坊的数据和react的生平周期.mp49 g2 T0 r7 A" [) r2 _$ N9 _
│      │      08.从以太坊获取其他的数据.mp4( {6 M/ }7 P- ~0 n( ]% C5 N
│      │      09_前端的点击事件&购买彩票.mp4! m0 ?. H7 O" V, E# `* H& I# p
│      │      10.开奖逻辑的完成.mp4; g- }6 H4 a4 c; m# H
│      │      11.智能合约的send方法是不能有返回值的.mp45 X" q+ x9 Z5 a9 k
│      │      12.智能合约的安全问题.mp4, O0 o/ t3 l! J3 K; o) c+ [
│      │      * w/ V1 f$ |# \" E5 S
│      ├─7 众筹系统后端智能合约实战2 T$ l" a1 E8 I! N
│      │      01.众筹模式简单介绍.mp47 Q" S, p: h% w: ~& w& C! g
│      │      02.众筹的痛点分析和区块链的解决方案.mp4
2 ^* u0 }. L5 p% V' m& r│      │      03.众筹智能合约的结构分析.mp4
5 ^% d+ x/ N6 @5 c+ R% Z│      │      04.众筹智能合约的构造方法.mp4; x% c' ^$ G" B3 O5 F
│      │      05.众筹智能合约数据的获取.mp4
2 J% ^3 R+ ]+ U* p│      │      06_付款申请的结构体和逻辑编写.mp4
- ~2 R( e5 j; r2 N6 ?│      │      07.智能合约中storage和memory的概念.mp4
8 B3 \/ e1 _! a  t  M│      │      08.memory和storage关键字.mp4
6 n  ~4 Y* k& T+ D) K* o. D* L│      │      09.付款请求Request函数的编写.mp4, g4 h" Q6 d: ~# |/ M" m
│      │      10.付款批准的操作编写.mp4
: H" A& P+ T% P. @9 ?9 n│      │      11.批准付款的操作(严重的bug分析).mp48 Q7 ~8 N& b# M
│      │      12.优化批准支付的操作.mp4, h+ Q- N* h4 w, ^  F( ~7 ?. Y
│      │      13.众筹业务的完成.mp4
, x$ J6 P) g" R7 Z. j  M5 ~, U│      │      14.部署逻辑分析.mp4
% ?8 c8 t' w6 ~* Q& _9 ?│      │      15.使用智能合约部署智能合约.mp40 F! _' n, z% D! Q- Q
│      │      
0 R- ]$ O. H( l, m8 A│      └─8 众筹系统智能合约前端开发/ R* v: h& @" [  ]
│              01_项目功能演示.mp4
9 j  x& f: E. }; r7 A│              02_众筹项目需求整理.mp4* V/ e+ T) I# E1 W* y
│              03_众筹项目合约完善.mp4
; G5 |! O4 C$ r8 F9 N* C│              04_智能合约及测试(web3.js)需求.mp4' z/ D' w* w) [  z% i8 S0 G
│              05_通过web3-使用Factory创建Funding众筹合约.mp40 d" P( p8 f7 [- v
│              06_众筹项目api操作的封装.mp4; y! x1 K/ _) w0 f  n4 ~5 {- l
│              07_外部函数调用demo.mp41 `* O6 M" e" V  k; C( E. W
│              08_获取所有众筹地址&获取众筹详情.mp4; G# g: m2 H5 `& s3 z; s- @
│              09_众筹项目合约列表加载展示(上).mp4
/ s3 t5 g' q9 s9 v" ?( A6 T│              09_众筹项目合约列表加载展示(下).mp4
6 G8 N, y. r7 X/ m" D4 v$ A' F│              10_获取发起人&参与人的众筹项目.mp4$ J2 W3 I$ S1 \
│              11_创建众筹项目.mp4) K& @% [( s+ l9 y2 z
│              12_参与众筹.mp4- t/ A( K% L1 i" G; i% V: Q
│              & G  U- h5 j4 Q! W  H
├─8阶段 hyperledge区@块链项目开发+ J( W4 ?7 v" j+ e+ M: I
│  ├─8-1 hypeledger基础+ T- e; m% @" l) U
│  │  ├─1hypeledger基本概念3 z% m# I3 {3 q) W
│  │  │      01.hyperledger简介.mp4% O- q0 v+ ^; J; F5 D8 z
│  │  │      02.hyperledger的参与人和合作伙伴.mp4
! H; F" f/ p0 ?) }* `6 h│  │  │      03.hyperledger重建任务.mp48 H: m+ j1 V6 ]: {* J$ k" O1 ?7 _/ Z7 O
│  │  │      04.hyperledger的重要概念.mp4
, o+ n. G# g* t, Y│  │  │      / x& O' w) ?! S# y: S& T5 f" c% j
│  │  ├─2 hyperledger常见组件# v- x1 R0 X4 Z
│  │  │      05.资产链码和账本.mp4
% j9 }7 |' M, c│  │  │      06.hyperledger解决现实问题.mp4
2 h! x7 q) u4 u│  │  │      07.msp和fabirca概念入门.mp4
3 M; I0 B/ H& ]6 N7 S+ i/ x│  │  │      08.hyperledger中的peer、client和orderer节点.mp4' j6 p% I0 h9 a  M
│  │  │      2 }9 |) e! U3 S
│  │  └─3 hypeledger智能合约和各种流程
4 k2 R& l7 a9 n, {7 K│  │          09.hyperledger业务分析.mp4  g9 H8 E) |: I6 _; |; L
│  │          10_channel详解.mp48 y  B% `% i, v
│  │          11.chaincode详解.mp49 X1 c% C$ q" B( R6 y# ?) r7 d
│  │          12.hyperledger的工作流程.mp4
/ x+ M6 g2 f& O│  │          13.术语回顾.mp4
6 i# J2 ~3 b" K5 F& T│  │         
5 b6 {6 M/ t$ e; I$ D│  ├─8-2 hypeledge进阶) D& \) Q& z8 W5 u
│  │  ├─1 fabirc环境搭建6 h1 h+ Q; u/ ]: ^. i9 G, q
│  │  │      01_开发环境复习.mp4/ v) X3 y8 x& i2 k( x: x
│  │  │      14.渔业系统业务复盘.mp47 S' Z: N* g) V! L0 v6 h, f
│  │  │      15.docker简介.mp4" [: B6 U. S3 c. ^9 R; ?+ v
│  │  │      16.docker的原理和工作模式.mp4. ?' {$ J; @6 V& ~* X
│  │  │      17.docker的安装.mp4
! p) O; Z- c+ L. c* Z│  │  │      18.docker常用指令快速入门.mp41 Y: o/ F7 |' R& N' }. B
│  │  │      19.hyperledger的环境搭建.mp4
6 a, [- ^5 S7 ~' H' z/ [│  │  │      20.hyperledger fabirc end 2 end案例分析(上).mp4
, Q6 o) _' E- ~; y7 r0 n3 N│  │  │      20.hyperledger fabirc end 2 end案例分析(下).mp47 `. x0 f& `6 G8 C! h
│  │  │      21.hyperledger的end2end业务复盘.mp4, {& i" S# V& S
│  │  │      % K( G/ B, `+ t/ v( Y
│  │  └─2 fabirc脚本分析和链码编写
7 B& Q3 Z6 j5 S+ o. f! l9 p│  │          02_hyperledger开发环境脚本分析.mp4/ A' _& F+ l# @  M
│  │          03_byfn脚本分析.mp4, C9 c) R% X; O. I+ j" ^8 J
│  │          04_cryptogen的配置(定义谁是谁).mp4% ?0 t4 s0 @9 U! g. i
│  │          05_在创世区块里面声明orderer和peer所在的org.mp4# C/ q" v( J1 K! e. h# L
│  │          06_orderer节点的配置(性能调优).mp4
# u$ z: `2 D5 b2 e( ?/ ~│  │          07_创建orderer节点的创世区块和channel.mp4" J# P5 s# n0 A
│  │          08_更新通讯的锚节点.mp4
% ^8 V8 j3 B$ o( N7 M│  │          09_手动创建网络手动执行e2e的逻辑.mp4
! J$ A: ]# B! [0 `│  │          10_手动创建channel,加入channel.mp49 V% A& x: ~- V5 `' ?$ ^
│  │          11_chaincode的编写和部署.mp4
& N( T* Q2 d- W/ A' S3 `│  │          12_invoke逻辑的编写.mp4( L( D2 C5 v- l) o+ |
│  │          13_开发环境nodejs搭建.mp4
* K; C4 r1 m( b8 X  X/ F- H4 c│  │          14_nodejs开发调试环境的搭建.mp4
0 T% K9 f. q: q; [# f5 R0 f│  │          15_nodejs 链码的架构.mp4) b( S$ W' p# K+ N( ]+ ]
│  │          3 D1 @: w4 m" T7 Z" k0 n: [, i+ k
│  └─8-3 hypeledger项目实战
+ N. v8 z' c. s! Q0 T│      ├─1 fabric项目业务分析
. Y& }+ T# z6 n" c4 L│      │      01.hyperledger的工作流程.mp4+ T6 S# I0 b+ L
│      │      02.fabirc架构流程分析.mp4, N7 O3 f! l; M, C5 X3 @3 w
│      │      03.hyperledger的其他重要概念.mp4
# z) t8 h. B0 o5 U│      │      04.hyperledger前后端开发环境搭建.mp4
* l* E4 f5 ^9 h1 d│      │      05.区块链技术的使用场景.mp4) c6 h9 t, z- z4 U7 ]
│      │      06.fabirc项目分析和简历书写.mp4
" W9 F3 \" w. H3 m( k. \│      │      07.渔业管理系统智能合约的编写.mp4
5 O7 J4 c! U4 n9 f│      │      08.nodejs链码和go语言链码的类比.mp4
5 n: g2 X& M# n. C5 k6 L│      │      , e( s2 j' b* \
│      └─2 环境搭建前后端联调
3 A6 \/ p( T; j  A, e│              09.网络环境配置.mp4
/ n2 N5 d1 ]0 P│              10.网络的docker-composer文件讲解.mp4
$ p" a7 \0 g5 ^7 l9 w# I│              11.环境问题的debug(上).mp4
$ j' p6 t( S* z) ^" h$ m│              11.环境问题的debug(下).mp4
* d7 W8 e8 V" \$ V! a+ Q1 Q│              12.hyperledger的环境搭建完成.mp42 r+ i8 V2 q% o9 l
│              14.nodejs的sdk演示.mp4
) N* o* X! v1 x8 R│              15.nodejs中间获取服务器数据.mp4
3 {" z3 m: \0 A3 g4 k1 q" Y8 L│              16.coachdb的配置.mp4( h9 C# P( z2 j2 o5 {: ]' P+ |2 ]8 ?
│              & s. a3 t8 E& ~1 B+ a0 l
└─BlockChain-master9 N. A) R* w6 x5 L
    │  .gitignore2 X' s4 c+ Z. {
    │  LICENSE
' s$ a% c2 j* E    │  README.md# g6 N( N3 v+ k7 |6 o) O
    │  
+ |9 w5 J! o% o6 `4 M: d    ├─01_开学典礼-区块链理论基础
) B: R' d  e4 D/ o4 {# |! t( g3 A    │  │  readme.md
" t6 \+ F1 `3 |! R8 B0 \    │  │  视频下载地址.md1 x9 g5 B3 ^- s0 E8 A
    │  │  
0 @$ N, L$ Z) ^7 {* ^    │  └─ppt& a& p/ T4 ~5 N2 T6 a
    │          01_什么是货币&货币的发展.pdf' f3 `  V! V/ W7 N' y
    │          02_分布式账本演示&台币.pdf
' c0 h4 x0 H/ Q* K3 G( Z    │          03_哈希函数.pdf
5 S3 q0 p$ i; ?% x3 o    │          04_hash的安全性.pdf, t+ f* G/ l/ N
    │          05_数据一致性问题.pdf
  I3 s$ x8 H: j* N1 e# C  A    │          06_通货膨胀和比特币.pdf% T! _8 c7 S5 ]0 {+ @  u
    │          07_区块链技术演化.pdf  m5 {& q+ ?" j. M+ M) b5 j1 T3 B+ S6 L( {
    │          08_区块链的应用场景.pdf; Q1 ~- J! o: N! G" m
    │          09_我到底需不需要区块链技术.pdf
& X* N: T" Z/ ^5 z) o! ]    │          10_区块链风口的猪.pdf
; \' q$ L+ W) U- ~/ z! j    │          11_ico和ipo和daico.pdf: z; g5 M4 G1 ~, x1 w) ^
    │          12_区块链的一些疑问.pdf
% U# O3 M; `7 ]9 Q# `: B    │          13_分布式系统核心问题.pdf- J. k9 Y( e2 |+ I$ D2 D
    │          14_区块链技术栈和学习线路图.pdf8 Z0 m) P: u! P
    │          15_区块链技术现状.pdf' o& R) S4 `3 _* {4 K
    │         
5 Q# o5 q8 u  ?1 h8 L    ├─02_第一阶段-java加强-kotlindsl-函数式编程-gradle-git-高阶函数-lambda表达式
# i# J0 p* Q4 |    │  ├─day01! \' a5 g5 r# U& ^# F$ M) {
    │  │  │  readme.md& B7 E2 `5 ~7 q' I
    │  │  │  4 }3 G  T0 z) w" A
    │  │  ├─code
2 ~7 p- ^, Y& M9 _) T. v    │  │  │  └─src% W3 ?- w, z9 `' t: K( s
    │  │  │      └─com
& b0 `: n6 u6 [+ R$ \6 Q: h8 G. R% C    │  │  │          └─itcast
; y  I3 a( M+ |    │  │  │              └─day01
! J+ u) b/ f/ X/ x' U' ~9 k5 r    │  │  │                      01.Helloworld.kt
! p2 i% Z/ U* \, {    │  │  │                      02.基本数据类型.kt
  N  T0 w& M2 E/ ]  v) q    │  │  │                      03.kotlin基本数据类型和java对比.kt  \! v# R2 [4 B# V
    │  │  │                      04.基本数据类型取值范围.kt
  s/ \) G. J& K. e' w2 q    │  │  │                      05.kotlin调用java.kt
- s- \9 U; J) K/ S/ w    │  │  │                      06.智能类型推断和类型转换.kt
0 y' S% ]. n6 A0 f$ j( c3 N- Y1 C    │  │  │                      07.可变变量和不可变变量.kt
0 G% I# H( ^4 I& m* ?. C+ c- U    │  │  │                      08.字符串.kt
; x% E/ p6 b( b9 o- h    │  │  │                      09.字符串删除空格.kt
# Y! }8 a+ u2 e3 u, ~: V    │  │  │                      10.字符串的比较.kt0 K: j5 \8 c% N, \* h) e+ ~' R
    │  │  │                      11.字符串切割.kt
4 |/ ?7 @1 a& ?9 U% t; U) |    │  │  │                      12.字符串截取.kt
' x1 u- B1 m8 N2 n8 _: h1 T    │  │  │                      13.二元元组.kt
: L3 _0 Z" E  [- t    │  │  │                      14.空值处理.kt
' f! s; i9 P$ L$ g4 Y    │  │  │                      15.人机交互.kt
& f" D. _& G% s- y6 A2 o    │  │  │                      16.自定义函数.kt/ d# L3 @9 f) P( I8 @
    │  │  │                      17.顶层函数和嵌套函数.kt5 ^# J* p6 T7 ~3 F9 b8 G; m
    │  │  │                      18.字符串模板.kt
# m# Q5 _0 i. [6 N" s0 k    │  │  │                      19.条件控制语句if.kt
: I" k/ t4 z/ A5 X! ~* N+ ]. b    │  │  │                      Test.java, U! |2 X+ V* |/ i5 y- j
    │  │  │                      8 ?2 b9 D1 Q- z1 ?0 v' k
    │  │  ├─ppt; U/ U) {8 V( D) a) ^
    │  │  │      第一天.pdf& U/ T' u4 ?2 J4 Z: M# x
    │  │  │      
% A* }% ?7 z' M/ B3 i' H! C    │  │  └─video( j) W1 p+ ~5 |- t% G
    │  │          info.txt4 F9 p! d. M( U1 i' V+ ?- N( W
    │  │         
5 [9 Q9 b8 [  [3 C6 n& x    │  ├─day02
$ ^8 m: X3 K, J& s6 f    │  │  │  readme.md
: ~& \6 E7 b- |. }5 u3 k6 C    │  │  │  
1 x+ `3 B& m4 q: _  V( [: M' ^# T    │  │  ├─code
: e0 S% [$ s  }" ?: l# W) K    │  │  │  └─src
! j. g  J: |  q. \$ f" j% `    │  │  │      └─com3 Z3 r1 a$ V5 A% H3 V
    │  │  │          └─itcat7 d  I( K  l2 f2 Z0 m6 R
    │  │  │              └─day02
: c9 s. i3 Q' D7 X/ x6 v    │  │  │                      01.for循环和foreach循环.kt
. d) l+ M- [* l- |    │  │  │                      02.continue和break.kt7 X2 Z0 N0 @/ n! q
    │  │  │                      03.标签处返回.kt
$ L: W) X& {' C2 s' y, p9 L    │  │  │                      04.while和do while循环.kt& Y1 o, S, Z4 P6 s+ m+ m: Y
    │  │  │                      05.区间定义.kt
: V, W* R6 J  J2 j; l+ P9 }    │  │  │                      06.区间遍历.kt
2 h9 {- X' r" ~$ y# p0 M    │  │  │                      07.反向区间和区间的反转.kt
* c  t% J0 m9 _- |, R2 x    │  │  │                      08.数组的定义.kt+ s8 ^2 \7 N/ e* u
    │  │  │                      09.数组的遍历.kt
8 V8 a! V/ c+ s: f" k    │  │  │                      10.数组元素的修改.kt0 c, `3 T. Q" U# o; g3 ]5 q  A) F
    │  │  │                      11.数组元素角标的查找.kt
' |2 {2 h- e! D5 q0 {# ]! N    │  │  │                      12.when表达式.kt
: U2 Z  S1 x( c4 T! ]    │  │  │                      13.when表达式加强.kt9 C# R! K1 j( @' u( S
    │  │  │                      14.when表达式不带参数.kt
0 X( S0 w! y( b" y: K    │  │  │                      15.when表达式返回值.kt
" a1 L# j* Q. \+ [% E* F8 {, X* c    │  │  │                      16.函数表达式.kt! _& l' g! ]: e* [2 ~  g; o# G- ?
    │  │  │                      17.函数表达式补充.kt" P8 A0 j9 ~# e5 p8 ~% o
    │  │  │                      18.默认参数和具名参数.kt
7 D9 l! w" P! x2 f9 I+ W. C    │  │  │                      19.可变参数.kt
2 [; ~2 s0 s5 D! V/ [    │  │  │                      20.异常.kt9 A0 P; ]  e: ]  i2 e$ @
    │  │  │                      21.递归.kt
  j; B. f# d( l+ ~2 u( q' j/ ?    │  │  │                      22.递归和迭代的对比.kt
1 m6 W% P7 ]8 O8 x0 z    │  │  │                      23.尾递归优化.kt; Z- q& S' H7 E( N/ m
    │  │  │                      24.面向对象.kt
- `: J  _# _; ?    │  │  │                      25.运算符重载.kt" N/ w( _/ R( E9 V8 H
    │  │  │                      NetUtils.java! O) B7 e* W! B0 Q
    │  │  │                      Operator.java
7 s+ u+ r  o. z    │  │  │                      SwitchDemo.java
: c1 `5 T7 j6 t$ x9 |    │  │  │                      Test.java
# y4 B% x2 _: y7 k  M. D1 Q/ h    │  │  │                      判断用户名是否合法.kt
) P8 m# a+ E" }2 @    │  │  │                     
9 n; d' r6 c' E/ i    │  │  ├─ppt0 l* {% C) j% Q
    │  │  │      第二天.pdf8 A! H2 c0 D! a
    │  │  │      % q; q$ ^2 m# O: g! v8 H
    │  │  └─video
" c  }9 _$ X$ Q/ f6 e    │  │          info.txt
% y/ T% [1 v* I/ o    │  │          * s+ _) z! T- c4 L
    │  ├─day03
: G0 [, U+ N" W6 w0 Z  [    │  │  │  readme.md
& ~0 g) n1 x0 K4 i1 \" N8 [    │  │  │  8 \8 |4 ]( F7 @' D/ ~
    │  │  ├─code
; G, ?4 t5 r2 N" Z4 _    │  │  │  └─src# O( _- B: P3 S- b& X
    │  │  │      └─com
& P; Y- g/ j9 Z2 T5 s. E    │  │  │          └─itcast
' Z: {' A& g* l    │  │  │              └─day03' p1 C* K4 q- R0 l
    │  │  │                  │  01.get和set.kt( Y5 P- I# Z5 F% H/ `
    │  │  │                  │  02.访问器.kt
( {( K% u* j' W+ E0 n; |8 S6 V    │  │  │                  │  03.自定义访问器.kt
6 M& l3 l! b0 R1 K# ?% M    │  │  │                  │  04.构建函数.kt
( E+ c$ m) d0 {    │  │  │                  │  05.构建函数参数使用_init.kt
1 h$ y; \; ~" q& y! P: G. S8 Q    │  │  │                  │  06.构建函数参数使用var和val.kt4 e4 ~+ R  y& w- ~* Z- Z4 O- F
    │  │  │                  │  07.次构函数.kt
5 r9 f# l, K  C( C    │  │  │                  │  08.init和次构执行顺序.kt9 j8 m; W5 g' W; W7 ~/ j
    │  │  │                  │  09.继承.kt9 F# z$ k/ ~9 s3 ^' R# Y( X
    │  │  │                  │  10.抽象类.kt
/ p. ?3 L) X  Z3 \( D) t* d% p4 s    │  │  │                  │  11.接口.kt
$ U1 g) j: x) F( |2 M9 j    │  │  │                  │  12.接口细节.kt
; s1 y+ j- d! k  y6 ?; J    │  │  │                  │  13.接口细节2.kt
  P! J2 b0 n% d    │  │  │                  │  14.多态.kt7 l* A, y) v& r; l* x
    │  │  │                  │  15.智能类型转换.kt! `' A* x9 j6 o
    │  │  │                  │  16.嵌套类.kt. T/ {; M& x$ i
    │  │  │                  │  17.内部类.kt9 o0 p& J! B1 q6 I( N" ^
    │  │  │                  │  18.内部类使用this.kt& r' _: b- U& L! @
    │  │  │                  │  19.泛型.kt
# K0 @4 [) D, ^" P3 O& K! X# F    │  │  │                  │  20.泛型函数.kt
! E5 n+ n$ a- }' t3 C7 l* |3 I% R    │  │  │                  │  21.泛型上限.kt$ `9 v/ F( e7 w$ g2 [1 U! k- n
    │  │  │                  │  22.泛型擦除.kt
- e7 |  `8 F0 \; w- x% Z9 Q) c0 s; P- C    │  │  │                  │  23.泛型类型投射.kt
1 Z5 L9 }) ]* I- |( H$ I5 h& V    │  │  │                  │  24.星号投射.kt/ X( D( v1 m0 S" \) l! U- P7 p
    │  │  │                  │  Dats.java, a: e0 s% C$ L+ D. c3 A3 J5 v' ^
    │  │  │                  │  News.java
5 m% c, q" f6 i5 `; v    │  │  │                  │  Test.java4 ]6 q$ u# c4 h/ `: N1 {
    │  │  │                  │  运算符重载练习.kt5 v) y: p  J1 v. g$ M
    │  │  │                  │    S- q) R+ T! M. s. P$ s! U
    │  │  │                  └─封装
- `- ~7 I+ B$ i5 O$ f  X( U1 a0 O    │  │  │                          Consumer.kt5 C5 u/ T* t5 r# \& z! T
    │  │  │                          WashMachine.kt
3 _4 w8 s( }5 R: i$ P* J0 u, n    │  │  │                          
8 N; I9 w& S! l/ S( |    │  │  ├─ppt1 m( L. u1 h' V# _3 O9 g6 P
    │  │  │      day03.pdf5 j3 ]1 M, k+ p
    │  │  │      $ q6 z8 k! C: e  Y7 k6 N
    │  │  └─video
* N: O/ |5 x" l3 a) `+ @! l0 L    │  │          info.txt9 G& s7 }3 R$ ~# b1 w+ @0 V$ b
    │  │          6 r9 q$ |$ P3 _) W( N8 |% h
    │  ├─day04" O  v6 h8 n, q* g" y# W
    │  │  │  readme.md
7 o' r* ^; e4 q    │  │  │  $ Z5 r* k) K5 R5 q
    │  │  ├─code
$ [0 q. v- ^+ i9 @7 Z8 \    │  │  │  └─src
  o7 R& K8 f# m$ E    │  │  │      └─com
: J. e" v( v, D  T1 Q    │  │  │          └─itcast
% @& t& Y& e0 ~; M' S    │  │  │              └─day04; w' ?8 J3 X4 V0 E0 e4 k
    │  │  │                  │  01中缀表达式.kt  C+ d- @  _4 f, q( W: o. R
    │  │  │                  │  02.类委托.kt
' ]+ ^6 l( H1 ]- t6 N  r    │  │  │                  │  03.类委托实现二.kt
4 H, _, A# n, B& k: x: E    │  │  │                  │  04.类委托功能加强.kt' b' L4 X9 U8 J7 z" W
    │  │  │                  │  05.属性委托.kt% U2 |6 |) [, C; G1 u
    │  │  │                  │  06.惰性加载.kt
3 l# N+ u! A" ]/ f( S: [/ h    │  │  │                  │  07.延迟加载.kt) I9 k7 z0 M2 C& [% g
    │  │  │                  │  08.扩展函数.kt
4 f$ k' n6 ~  j    │  │  │                  │  09.kotlin的object单例.kt5 B% n# j: L/ H+ u8 }. k- Z; e
    │  │  │                  │  10.伴生对象.kt
( J+ t4 L, i% S  ^% `    │  │  │                  │  11.和java一样的单例.kt
  A! U" G  V7 b  x; o    │  │  │                  │  12.枚举.kt
: z* z' _; v4 C/ s% x9 n    │  │  │                  │  13.枚举加强.kt+ K; a- a. b# l3 e% Y3 |2 K
    │  │  │                  │  14.数据类.kt" a; p1 h( C+ A  o
    │  │  │                  │  15.密封类.kt8 }" Q% _: Z$ W2 ?3 L; h; X; [
    │  │  │                  │  NetUtils.java
; i( X- x" U  r# S( A  I    │  │  │                  │  SingleInstance.java
" m8 ~! C( X0 ]2 C    │  │  │                  │  / W# E5 s& s& m4 k- n
    │  │  │                  ├─bean类
! A/ D, }! A8 b" v! I$ F6 \- p    │  │  │                  │      News.java
9 g, K% p' g" p: {& w    │  │  │                  │      % j+ [! `2 {: m% q
    │  │  │                  └─java的util
1 t* J* Z) y8 Q/ o  F3 y    │  │  │                          StringUtil.java
, z; F5 y% n, G4 d) ~% |    │  │  │                          Test.java
9 X3 g! c& ]( s5 H1 y' L    │  │  │                          0 l* D$ p7 T, M. j& S* Y$ t
    │  │  └─video
! H7 j& J& d0 o& T! k% m    │  │          info.txt
  i! I- b2 [  J. F, b- d, p+ E    │  │          * [4 z" h( l' h1 t
    │  ├─day05* G# |; G- x. S+ {  I
    │  │  │  readme.md! g$ c1 {# f8 |8 {- n8 I* |: e- r
    │  │  │  4 x$ w) y$ |! x/ A7 o/ U
    │  │  ├─code
. M* w- V" @+ W9 R3 T1 f; j, Q    │  │  │  └─src
3 h2 y4 V" e1 S    │  │  │      └─com' V# F5 `6 J! ?6 E$ x6 M
    │  │  │          └─itcast# v2 }0 {1 f0 m& A* l
    │  │  │              └─ay05
& S& }$ G* _- q    │  │  │                  │  01.List集合.kt
, G2 N% {- ~$ R1 G& k    │  │  │                  │  02.List集合的遍历.kt1 k0 s, x. h/ n2 V! _0 f% O! J
    │  │  │                  │  03.Set.kt5 `& h# Q. U, R. L& Z+ R
    │  │  │                  │  04.kotlin的set集合遍历.kt  L8 E% S: X. f( c
    │  │  │                  │  05.map.kt
3 m4 ^, h4 X+ O& @0 |+ I    │  │  │                  │  06.map遍历.kt
4 b& J2 Z) ]" t" `$ ?/ R' L    │  │  │                  │  07.闭包.kt  h) Z& x# t' o( Q* q
    │  │  │                  │  08.高阶函数.kt" A' h1 X; V; X% u; U) U% V
    │  │  │                  │  09.lambda表达式.kt
3 m  ]0 S0 H/ ?  c9 t/ @- q  T8 I& @    │  │  │                  │  10.lambda表达式去().kt) r$ r# W0 z' D# F& e+ m
    │  │  │                  │  11.lambda表达式单独存在.kt
: ~9 g; D; k* c4 c' @1 K! U  @7 c    │  │  │                  │  12.有参的lambda表达式.kt2 e/ @- g+ l0 F
    │  │  │                  │  13.保存lambda表达式.kt0 ~  z- N* \: j
    │  │  │                  │  14.lambda表达式使用it.kt
" a% \$ \3 Y' w- k; M    │  │  │                  │  15.lambda表达式返回值.kt
5 W; {$ j8 B# ^; l: P3 N    │  │  │                  │  16.常见的lambda表达式.kt
2 _8 R2 t% N* m4 d: F1 p    │  │  │                  │  17.非诚勿扰.kt7 _  G# F- I8 e$ c0 k* i
    │  │  │                  │  18.过滤.kt
' ^; S6 b: ?! Y$ u  d    │  │  │                  │  19.排序.kt
+ C! o9 u/ m5 t( n% r    │  │  │                  │  20.分组.kt
5 s6 |( l1 H+ Q* V6 d0 V    │  │  │                  │  21.最值.kt
3 L$ E6 z- G# ~, {& ~    │  │  │                  │  22.去重复.kt: ^: @& M4 H/ c
    │  │  │                  │  23.集合拆封.kt
* J0 t# d/ |3 F0 s    │  │  │                  │  24.集合重新组合.kt
7 |) q5 W4 ?1 h4 Q    │  │  │                  │  25.集合相加.kt
  G8 S* W+ ]2 i    │  │  │                  │  26.四大函数.kt2 L: z2 x6 q7 w% t
    │  │  │                  │  TestCollection.java: t1 U6 X$ w7 e/ C. W$ g
    │  │  │                  │  4 d% m, P# }7 U5 f( \4 V  r+ Q
    │  │  │                  ├─函数回调
" w1 E- Q8 V, P4 i    │  │  │                  │      Mother.kt+ ]1 ^( b. h8 C+ t
    │  │  │                  │      Soy.kt3 T' L, w  V% r' N% ?$ q3 D
    │  │  │                  │      SuperMarket.kt1 o, D# M, E+ r  x# ^8 H
    │  │  │                  │      
1 M% t5 I8 S# e1 c8 F5 q  x( l& [8 q    │  │  │                  └─接口回调
3 B! {. k+ d. I5 D    │  │  │                          Mother.java3 M9 X0 ^: A0 k) i
    │  │  │                          Soy.java
$ |, R7 [2 y4 T; ?5 L6 Q3 G( V    │  │  │                          SuperMarket.java. c8 p' M# J; B5 x6 E7 _3 g% f
    │  │  │                          . Z& o# F* H- m4 f
    │  │  ├─ppt* r7 f  ]9 u" M( P2 j1 g  K
    │  │  │      高阶函数.pdf6 |! @  a* M* Y$ W1 i0 b$ E
    │  │  │      
& Q- T5 r/ e: L    │  │  └─video* X! }& o( m5 r( |- S& h
    │  │          info.txt
" |! H" y, `/ B* p7 |/ |8 w' ?( ~    │  │          4 n$ g/ [" }- b' S1 f/ t5 {
    │  ├─day06
# a4 N" E* ~) Q& b6 s9 ~% R. t; y    │  │  │  readme.md
1 y2 h! \% X0 W6 o/ L0 J) V' q9 O% @    │  │  │  2 a& x0 G& Q* e
    │  │  ├─code" v/ N0 F3 I" g1 u2 G
    │  │  │  └─src: m. x# I. C7 H, ]) d/ `
    │  │  │      └─com6 l/ B) u- Q: |% s! I0 g$ k0 g: g$ U
    │  │  │          └─itcast; B* i# l" T, k+ T
    │  │  │              └─day06- G8 x5 g% T/ [
    │  │  │                  │  01.StandClass.kt
0 G+ E' G3 f+ N  e    │  │  │                  │  02.DSLClass.kt8 M7 C9 r- }% j' [4 [/ R, q# x
    │  │  │                  │  03.StandHtml.kt0 f0 v& z0 J1 G6 o9 I
    │  │  │                  │  04.DSLClass_构建器.kt
" K$ @: x4 l/ S* ]8 Y8 R8 H    │  │  │                  │  04.StandHtml_缩小作用域.kt# E2 g, d! I  F3 I$ D- S+ q
    │  │  │                  │  Test.kt
8 B+ \3 k, r* B6 |$ M    │  │  │                  │  $ K1 U! ?0 b0 Y
    │  │  │                  ├─构建器模式! m& I7 S5 f* P) Y. p1 {8 x
    │  │  │                  │      Notification.java$ Y# `8 t3 O) i7 M% B1 l9 V$ `0 v+ S$ }
    │  │  │                  │      Test.java! v3 O" S# e2 y# U
    │  │  │                  │      
- f6 T) _" N' V    │  │  │                  └─练习
3 Y4 d$ }$ v5 [. D2 j    │  │  │                          网络请求DSL.kt
2 m: b- A; ~/ f    │  │  │                          8 E' q1 {; j* c  C4 P) _
    │  │  ├─ppt; J) E# P2 j9 P
    │  │  │      DSL.pdf7 H4 ]$ e% A* U: W
    │  │  │      
6 t- ^6 [& G1 S% ?5 \2 G: y# Z; o    │  │  ├─video
4 n* y; A$ i1 b5 v2 l; S    │  │  │      info.txt
" ]6 @# J6 u8 f9 C. S) `6 D. q: I2 q    │  │  │      3 x7 ]5 X! c, e
    │  │  └─资料
) p5 Q" s0 O4 \7 H$ E    │  │          网络请求DSL.kt
! ]$ [7 M; d5 W2 D: G! e    │  │          ( y- q5 J; _: O) e4 k$ H$ c+ P3 `
    │  ├─day07
  Q( m1 e4 ~5 G. y    │  │  │  readme.md; ~9 k3 ?/ {7 v1 q
    │  │  │  
9 ]8 Z) J/ R2 x* q8 {* G1 p    │  │  ├─code3 d4 H, N: M5 A
    │  │  │  └─gradle
' W4 \7 p6 E1 m% `8 N5 e6 b$ j2 a    │  │  │      ├─GradelDemo01
/ q: C/ r; k+ h8 ]% y& C    │  │  │      │  │  build.gradle.kts' O) Q/ f5 h! u, j" ~" B4 y; q# M
    │  │  │      │  │  gradlew, |, B3 ?4 [+ \; I0 n* T  A
    │  │  │      │  │  gradlew.bat
( n# J* v8 U$ T: Q( R    │  │  │      │  │  settings.gradle
& i, g2 A9 d/ J' Z1 k' s    │  │  │      │  │  2 }  g% w) Q# W$ E0 N+ x: @3 I
    │  │  │      │  ├─.gradle
3 o& ]: B5 s" H( z$ X3 k    │  │  │      │  │  ├─4.1( g+ B0 n8 L1 \4 P! w& n. H' ~
    │  │  │      │  │  │  ├─fileChanges6 ]" l  [( N) S& }9 A
    │  │  │      │  │  │  │      last-build.bin  u. [7 k& I* P4 u, l
    │  │  │      │  │  │  │      
  t/ r- G# }0 I    │  │  │      │  │  │  ├─fileContent. |% w9 f& [) Z! f* U
    │  │  │      │  │  │  │      fileContent.lock
, g! i& P! ~( h  H% r5 y, \    │  │  │      │  │  │  │      
* m9 g+ c$ o+ d0 p+ [    │  │  │      │  │  │  ├─fileHashes
) _! M2 g% X* @! j3 y- `    │  │  │      │  │  │  │      fileHashes.bin' [8 |/ b3 M2 w2 u1 b3 S3 J
    │  │  │      │  │  │  │      fileHashes.lock0 }# ?9 E) ?2 `- v2 s9 I
    │  │  │      │  │  │  │      
0 B7 H# d( C: L8 y; x; L  ~& M    │  │  │      │  │  │  └─taskHistory- A! d1 V/ q* i: [- \  [& `" t
    │  │  │      │  │  │          fileSnapshots.bin% @5 ~" ~$ E% D; d, D6 k/ D
    │  │  │      │  │  │          taskHistory.bin4 v9 |5 X$ a8 f
    │  │  │      │  │  │          taskHistory.lock4 M9 J, B& k/ U9 w
    │  │  │      │  │  │          1 q6 E! ^) p  q& f/ }# v7 S
    │  │  │      │  │  ├─4.48 u9 C1 x- h; w, k: U
    │  │  │      │  │  │  ├─fileChanges+ L1 E* N. Y( _' o& {" K3 N/ x1 j
    │  │  │      │  │  │  │      last-build.bin* B1 @, C: D. [- R! R
    │  │  │      │  │  │  │      3 u3 a! X1 f( c0 H4 n( I. o
    │  │  │      │  │  │  ├─fileHashes
$ i6 y1 g  R- L9 T! ]% W4 b    │  │  │      │  │  │  │      fileHashes.bin
: {  @9 I; D+ R3 g    │  │  │      │  │  │  │      fileHashes.lock
& |  G5 l, Q2 E" C    │  │  │      │  │  │  │      : W! H" E5 b: `( H2 E+ K, I/ T! p1 O. u
    │  │  │      │  │  │  └─taskHistory, I* b) l4 L. ~: `
    │  │  │      │  │  │          taskHistory.bin
1 |% f! ?- B" i    │  │  │      │  │  │          taskHistory.lock" H+ p, {+ a! q6 S6 ^4 o& D# I+ `2 V
    │  │  │      │  │  │          ; j( }" p3 E6 D' o( o5 b* z3 z7 T
    │  │  │      │  │  └─buildOutputCleanup
" A) A7 y* W1 B, v    │  │  │      │  │          built.bin
) n- p) W  O& n2 O$ U7 `( I    │  │  │      │  │          cache.properties3 o' o7 g# O; s9 H
    │  │  │      │  │          cache.properties.lock$ o7 F+ A5 A- C. X  x' B
    │  │  │      │  │          7 w" ?/ {. F, X( m5 ]& I
    │  │  │      │  ├─.idea
, ?  P1 A. y4 q1 V6 w8 X. ~" H1 i    │  │  │      │  │      encodings.xml& n7 G* p, Y; w1 S9 O* E
    │  │  │      │  │      gradle.xml. `9 }8 r: c) Q' B3 X7 b; C7 W
    │  │  │      │  │      misc.xml- R& M0 Y1 d3 u
    │  │  │      │  │      workspace.xml
- r8 ^4 o0 V+ g    │  │  │      │  │      
/ v% X' H2 O0 c- W    │  │  │      │  ├─gradle0 Z7 q7 V# q- K% w
    │  │  │      │  │  └─wrapper
* L0 O3 m, i& Y) l    │  │  │      │  │          gradle-wrapper.jar$ \0 b1 L) ^9 [0 X* I& H) e
    │  │  │      │  │          gradle-wrapper.properties% W9 p* ~( I& j, e  [, G) \
    │  │  │      │  │          : z5 b# h' K. O/ V4 C# E
    │  │  │      │  ├─out
. M$ A6 H0 k7 x0 G" q$ M* h' L! q    │  │  │      │  │  └─production! R. |+ c4 m! Z2 m# A
    │  │  │      │  │      └─classes
1 x; n  A! G- u2 }4 D    │  │  │      │  │              Girl.class
2 Z; k- g+ }4 V. d    │  │  │      │  │              Main.class
1 r1 ?( m9 c3 ]4 _( K' ~0 W    │  │  │      │  │              
4 Y; ~5 a( |. k1 |    │  │  │      │  └─src" U* Q# }3 v6 o. m/ n, y/ V( b
    │  │  │      │      └─main6 Z+ f7 y& m- q2 R
    │  │  │      │          └─java. S. q( x2 M% m+ N
    │  │  │      │                  Girl.java
5 z+ E  G+ p% A: v* O6 E    │  │  │      │                  Main.java
: L' e! k9 A% \' Q2 q6 r    │  │  │      │                  % r7 o) N- Q4 y1 g' N  u
    │  │  │      ├─GradleDemo02
9 ]* |4 M/ ?2 ~6 w    │  │  │      │  │  build.gradle.kts
0 {7 Z% e8 s* }1 v# y9 o' Y- `    │  │  │      │  │  settings.gradle' i( ?: p$ \" @3 e* I- K& w( r8 l
    │  │  │      │  │  
- x% \8 j8 X0 n3 t% H9 U) C    │  │  │      │  ├─.gradle
2 P" m' N- L, z& }2 {0 T- K    │  │  │      │  │  ├─4.1
+ |% `: z9 [1 w- J0 S    │  │  │      │  │  │  ├─fileChanges: b3 ]( A2 D6 F4 W) ]+ }
    │  │  │      │  │  │  │      last-build.bin/ q9 k, b( J. `& S
    │  │  │      │  │  │  │      8 f$ M  e: {1 C  ?! p2 }2 Y4 b
    │  │  │      │  │  │  ├─fileContent: |, A: u0 [0 x. A% M
    │  │  │      │  │  │  │      fileContent.lock9 L$ X3 r9 I' O$ t
    │  │  │      │  │  │  │      * B8 u9 A- j9 o, _* ]
    │  │  │      │  │  │  ├─fileHashes; u8 I( i( ]5 V) W2 R) G  e
    │  │  │      │  │  │  │      fileHashes.bin3 X4 J- e" |  ?/ ]( `. G
    │  │  │      │  │  │  │      fileHashes.lock1 s' R  \* y3 c: n3 A* P: g" K
    │  │  │      │  │  │  │      resourceHashesCache.bin4 Y% H# n+ U. F2 V4 N5 L# T8 c( }
    │  │  │      │  │  │  │      
4 B/ v% U. _; Z: H/ O0 O& r    │  │  │      │  │  │  └─taskHistory+ t1 v- d# @2 |
    │  │  │      │  │  │          fileSnapshots.bin
" n0 o$ [5 F0 f) _  A' s    │  │  │      │  │  │          taskHistory.bin7 P) k, X% q+ N& W' {) }3 m! F
    │  │  │      │  │  │          taskHistory.lock& R2 h! m5 m; F3 X6 g% O
    │  │  │      │  │  │          - S& X9 d. \8 h4 p) f
    │  │  │      │  │  └─buildOutputCleanup
+ _0 Y. V5 D# h1 Q: Y    │  │  │      │  │          built.bin' s$ u  [( f, }- p$ [& ~: f
    │  │  │      │  │          cache.properties( c6 B) ?; ?& k
    │  │  │      │  │          cache.properties.lock
6 D0 N! g. f: |* c    │  │  │      │  │         
6 Q, Q# J/ F) I& v. p    │  │  │      │  ├─.idea
2 l" y# r! s2 J+ L. Q    │  │  │      │  │  │  encodings.xml
2 Z. D8 H+ x$ m* c: _    │  │  │      │  │  │  gradle.xml
3 A. z' e: M0 Y, ^. q  C1 }    │  │  │      │  │  │  misc.xml; l* A) Y3 J7 Q- a
    │  │  │      │  │  │  workspace.xml# L# p" |6 ^6 E+ S
    │  │  │      │  │  │  ; W; v0 q$ T- B" M
    │  │  │      │  │  └─modules
; Y$ n8 ]# c- z( ?6 U    │  │  │      │  │          GradleDemo02_main.iml
' ?. @# x0 S8 v/ O8 s    │  │  │      │  │          GradleDemo02_test.iml% j$ A& I. z2 k5 i. A# f6 K
    │  │  │      │  │         
  I! Z2 M! p1 H) B7 l, W  R) y    │  │  │      │  ├─build
. ]& N8 h  F: D    │  │  │      │  │  ├─classes
7 d$ n" A9 O1 L! d8 b5 T$ I- }    │  │  │      │  │  │  └─java4 C" c# C/ B1 w" [8 G! {  V, l% ?
    │  │  │      │  │  │      └─main- q; f2 M" M$ i- l4 n6 h7 e
    │  │  │      │  │  │          │  Girl.class' a& w7 q% W! \7 i. a2 f3 K
    │  │  │      │  │  │          │  MainKt.class7 d+ H5 w" C+ Y, x
    │  │  │      │  │  │          │  
6 j  c; r  b6 W5 R    │  │  │      │  │  │          └─META-INF
  `6 N3 B, h; o4 i& ]! @0 ^    │  │  │      │  │  │                  GradleDemo02_main.kotlin_module# v2 _; a8 j" L( V0 a3 u& t2 ]: A
    │  │  │      │  │  │                  
4 D1 D' y; Y8 U1 F    │  │  │      │  │  ├─distributions* L( H2 n2 ~2 B8 I. h5 m
    │  │  │      │  │  │      GradleDemo02.zip; G- ~& T- ~7 |) K
    │  │  │      │  │  │      . p9 v  w. \+ X) v; L' V% h
    │  │  │      │  │  ├─kotlin
5 P$ L, d% ^* I    │  │  │      │  │  │  └─compileKotlin$ J3 I* w6 f8 b8 E. L2 i
    │  │  │      │  │  │      │  data-container-format-version.txt' C& b; x5 F0 N; p5 d: o: I8 u
    │  │  │      │  │  │      │  experimental-format-version.txt& a% v2 ]% n8 o% C7 C1 Q# q" C
    │  │  │      │  │  │      │  format-version.txt5 z& f! Z# q* q# {( Y7 D. Y
    │  │  │      │  │  │      │  gradle-format-version.txt( N1 Y! {0 O$ A! K% K  @. f
    │  │  │      │  │  │      │  last-build.bin. ?6 P1 v3 b$ X6 r9 w1 w
    │  │  │      │  │  │      │  + b! |/ A* U  E* ^% F
    │  │  │      │  │  │      ├─caches, ~; W' `! i$ ~' s. {
    │  │  │      │  │  │      │  ├─increCache.GradleDemo02_main6 e4 U( ]1 X$ E4 ?
    │  │  │      │  │  │      │  │  └─kotlin
! D1 M& [, M( u# F$ G    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab* o, }# |) m/ u, T6 Q
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.keystream
- \$ m: b- z! t/ v5 j& r% _; `+ u# v    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.keystream.len
. R9 a9 S8 r  E1 P7 o4 w  d+ c& E    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.len# [- j9 u( c1 C, ]+ y
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.values.at. x$ n# r1 U: a. l% j1 s3 t) j
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab_i& n% B* |6 R) `# R
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab_i.len
' }, r* q* S2 |/ {5 L    │  │  │      │  │  │      │  │          internal-name-to-source.tab# S+ w& r6 y* |* y& W0 H
    │  │  │      │  │  │      │  │          internal-name-to-source.tab.keystream
" l' y1 ]+ m9 x6 H1 R    │  │  │      │  │  │      │  │          internal-name-to-source.tab.keystream.len
: D" Q) h* [! \; K4 z* S    │  │  │      │  │  │      │  │          internal-name-to-source.tab.len0 Y4 o$ C* D9 V3 n& s$ I
    │  │  │      │  │  │      │  │          internal-name-to-source.tab.values.at, f6 ]1 Y$ {" p# m3 ?% o
    │  │  │      │  │  │      │  │          internal-name-to-source.tab_i! s5 D% z" p# q0 K
    │  │  │      │  │  │      │  │          internal-name-to-source.tab_i.len
- w& L: [6 J. K6 x9 F+ \* R    │  │  │      │  │  │      │  │          package-parts.tab+ X; u$ N) P! q, @  {. D
    │  │  │      │  │  │      │  │          package-parts.tab.keystream# k! p9 v7 W2 K7 u; \+ K
    │  │  │      │  │  │      │  │          package-parts.tab.keystream.len
2 r8 @/ }3 Z) j4 O% D    │  │  │      │  │  │      │  │          package-parts.tab.len
! q& M( X2 d$ x, x    │  │  │      │  │  │      │  │          package-parts.tab.values.at
3 C$ k8 C, Y% T) b" x    │  │  │      │  │  │      │  │          package-parts.tab_i$ x: b7 ~, p9 ~+ r' Q
    │  │  │      │  │  │      │  │          package-parts.tab_i.len! T4 c1 e  b" [: U
    │  │  │      │  │  │      │  │          proto.tab- a# @1 H1 c7 o/ I! y
    │  │  │      │  │  │      │  │          proto.tab.keystream
, h- m- C( [. p4 `" G. |$ ?    │  │  │      │  │  │      │  │          proto.tab.keystream.len, t( N  E; F  N) G  |) Q
    │  │  │      │  │  │      │  │          proto.tab.len! h4 ~; i' t: o6 T
    │  │  │      │  │  │      │  │          proto.tab.values.at; K8 ~) A7 b6 b, t
    │  │  │      │  │  │      │  │          proto.tab_i) v7 J% e. J% j+ \2 [
    │  │  │      │  │  │      │  │          proto.tab_i.len
7 c  R2 N7 d8 @6 G. }2 g0 [    │  │  │      │  │  │      │  │          source-to-classes.tab
8 c: T: a# ~! L8 F  S    │  │  │      │  │  │      │  │          source-to-classes.tab.keystream3 M8 W# e* g5 C8 V& e3 U9 }
    │  │  │      │  │  │      │  │          source-to-classes.tab.keystream.len9 `& b' v1 ~. z/ Y* H- V
    │  │  │      │  │  │      │  │          source-to-classes.tab.len( J# Y( E; Q! G
    │  │  │      │  │  │      │  │          source-to-classes.tab.values.at
/ R6 q7 k, d- V    │  │  │      │  │  │      │  │          source-to-classes.tab_i
: o0 H+ A& k6 y+ A8 C6 V    │  │  │      │  │  │      │  │          source-to-classes.tab_i.len5 y3 L3 x. Q2 o
    │  │  │      │  │  │      │  │          source-to-output.tab) q5 v7 |. T' t
    │  │  │      │  │  │      │  │          source-to-output.tab.keystream& n$ {: T6 a; p7 s
    │  │  │      │  │  │      │  │          source-to-output.tab.keystream.len
6 q) h0 U! q; f( N& R( c( k! O    │  │  │      │  │  │      │  │          source-to-output.tab.len: o% ]" B' j6 y
    │  │  │      │  │  │      │  │          source-to-output.tab.values.at, [$ ]7 U* c5 a6 y7 |' e& z6 |; `
    │  │  │      │  │  │      │  │          source-to-output.tab_i
6 x. Q( ~! u; F$ x* ~1 ~    │  │  │      │  │  │      │  │          source-to-output.tab_i.len- s1 ^3 H; z9 P: Q' M
    │  │  │      │  │  │      │  │         
( P) ^' e8 q" U( }1 Z    │  │  │      │  │  │      │  └─lookups
1 k  q4 F7 _+ a    │  │  │      │  │  │      │          counters.tab! Z& L1 ~4 O* A
    │  │  │      │  │  │      │          file-to-id.tab" ^" I. L" p: t# K
    │  │  │      │  │  │      │          file-to-id.tab.keystream
8 ^7 |5 c4 l4 S! M* M    │  │  │      │  │  │      │          file-to-id.tab.keystream.len
/ P2 {! _9 @* d% Z" H    │  │  │      │  │  │      │          file-to-id.tab.len
0 x9 v# f3 h+ x    │  │  │      │  │  │      │          file-to-id.tab.values.at2 r3 t. e( w9 R. c* T8 [) K
    │  │  │      │  │  │      │          file-to-id.tab_i
  |8 F/ N' ~$ ^3 _& Y: |# B    │  │  │      │  │  │      │          file-to-id.tab_i.len
$ k; V6 a: ^4 t) r/ H    │  │  │      │  │  │      │          id-to-file.tab6 m1 d+ U4 `& f- ]9 M3 x' ^$ k* l
    │  │  │      │  │  │      │          id-to-file.tab.keystream
; Z$ z% N/ U1 c/ K    │  │  │      │  │  │      │          id-to-file.tab.keystream.len
1 z6 Y' O* b3 U( [) N( Q: C4 P    │  │  │      │  │  │      │          id-to-file.tab.len
% X# t! z5 L  P/ Q4 z$ s    │  │  │      │  │  │      │          id-to-file.tab.values.at: |0 ?( C' V: [' S( s" f8 x" X/ O
    │  │  │      │  │  │      │          id-to-file.tab_i5 y" U1 T* t. o1 r3 F% W$ I( x
    │  │  │      │  │  │      │          id-to-file.tab_i.len3 r0 M, ?, e5 P# E  V1 c1 e0 B
    │  │  │      │  │  │      │          lookups.tab
  Z2 O9 x8 ]; X# P2 A" V    │  │  │      │  │  │      │          lookups.tab.keystream8 P: ^+ J6 P/ n- T4 P) ~
    │  │  │      │  │  │      │          lookups.tab.keystream.len
( P; o" M+ E6 c2 N% I9 [    │  │  │      │  │  │      │          lookups.tab.len% X2 _- F6 F0 |+ w7 g3 y+ `/ q2 U
    │  │  │      │  │  │      │          lookups.tab.values.at& p  W; C8 i6 V8 b( `- `7 g
    │  │  │      │  │  │      │          lookups.tab_i& }! i$ `* O# U4 n2 D; L; ?# G
    │  │  │      │  │  │      │          lookups.tab_i.len
/ C& v; K, p- i4 l. k  I' }    │  │  │      │  │  │      │          ( ?. Y5 V/ G% ]- X3 K
    │  │  │      │  │  │      └─sync( Z/ |+ C- m: a& c
    │  │  │      │  │  │              kotlin-files-in-java-timestamps.bin
3 i7 T; p' [: `* `6 s  t* B$ X6 i    │  │  │      │  │  │              ; A) D! \! e/ A6 C) ?
    │  │  │      │  │  ├─kotlin-build
6 p1 O/ E5 |* p$ V' `5 N" h    │  │  │      │  │  │  └─caches. }8 B2 V6 |1 i# [9 V
    │  │  │      │  │  │          version.txt
+ I% H2 m1 Y3 i5 u) z    │  │  │      │  │  │         
$ I5 q1 W. A: N6 H: j  O: Y" k    │  │  │      │  │  ├─kotlin-classes6 O9 \" ~2 B3 T1 _
    │  │  │      │  │  │  └─main
+ {  d% s* X- C8 f4 y6 Q    │  │  │      │  │  │      │  Girl.class2 J% e  J- f( N2 }0 H6 c, o
    │  │  │      │  │  │      │  MainKt.class8 Q' o) s" Y3 U3 s) H5 Q4 S
    │  │  │      │  │  │      │  
3 |; L+ s+ {! S9 k4 d$ u$ ]    │  │  │      │  │  │      └─META-INF
( t8 [) P) a& }( `6 c8 |7 V2 v+ h    │  │  │      │  │  │              GradleDemo02_main.kotlin_module
+ r0 ^# c+ U+ F% s/ s) u  Q    │  │  │      │  │  │              4 B$ V% `- N! K( F! q/ v" Z1 h' F
    │  │  │      │  │  ├─libs
& t2 F" m3 z$ c    │  │  │      │  │  │      GradleDemo02.jar
5 @# h1 {9 z& Z' _/ l( O) B& w    │  │  │      │  │  │      
' h& N5 N" e9 P3 c$ |    │  │  │      │  │  ├─scripts
) v* c1 i0 V1 W8 Q$ I  i+ G" {0 F' R# ~    │  │  │      │  │  │      GradleDemo02
* `' w/ f! \* ^/ s" |7 r& G1 @, ^    │  │  │      │  │  │      GradleDemo02.bat0 t# z5 j2 T$ W
    │  │  │      │  │  │      " n' x$ I  v) D2 T0 ]
    │  │  │      │  │  └─tmp3 ?, _' m' ~; ?8 Y$ |9 j
    │  │  │      │  │      └─jar
# J" J$ p, U! L, }. N8 v" k    │  │  │      │  │              MANIFEST.MF
' {! B) C9 m' Y4 ~    │  │  │      │  │              
0 @3 Z# S& u3 f( r    │  │  │      │  ├─out
* V  |, s; U( _9 U" }, P! [    │  │  │      │  │  └─production
3 J2 b+ y/ C) C1 `' m    │  │  │      │  │      └─classes
+ C/ o2 n- S6 D  H  t6 \5 l    │  │  │      │  │          │  Girl.class: A2 a) N: |( Q
    │  │  │      │  │          │  MainKt.class
5 I9 y5 c$ d; W% D7 m* i5 T    │  │  │      │  │          │  ! R5 X& e, l/ k8 `! R2 n+ r" c
    │  │  │      │  │          └─META-INF
4 d' m; O$ c6 h+ d9 d& |    │  │  │      │  │                  GradleDemo02_main.kotlin_module$ j: F% g- G' A
    │  │  │      │  │                  
# Q& S9 K! K2 b$ C% m% S/ _' b    │  │  │      │  └─src
4 X3 R% B1 k; f" v, \9 z4 M    │  │  │      │      └─main+ s2 t5 h! B( W$ m% \
    │  │  │      │          └─kotlin* {: D# g3 n3 L  R" |% \# }
    │  │  │      │                  Girl.kt
  o% b& H& w0 g- a: H% B% C7 X    │  │  │      │                  Main.kt* Y: t6 }) [+ P' t5 z
    │  │  │      │                    `  c! }" v. y" e
    │  │  │      ├─GradleDemo03# s4 H0 I( y3 L5 D
    │  │  │      │  │  build.gradle.kts
( i! q) u7 n3 ?6 Z0 h9 @4 f* \  U    │  │  │      │  │  settings.gradle
% `; X1 T' Z" Z& q, g+ C    │  │  │      │  │  
" i+ ~* B' b. }; V0 F( w( K    │  │  │      │  ├─.gradle7 h4 ^+ }8 l1 f- k
    │  │  │      │  │  ├─4.17 L8 F7 j" Q$ E9 ?
    │  │  │      │  │  │  ├─fileChanges
" M1 y! e6 R2 a& i9 u1 `    │  │  │      │  │  │  │      last-build.bin% x: @- d+ g5 [% ^3 v( h
    │  │  │      │  │  │  │      
* K' J; t9 w: w* u1 l    │  │  │      │  │  │  ├─fileHashes
% z8 Z8 [1 {9 q* r# J- G+ R    │  │  │      │  │  │  │      fileHashes.bin
0 {" K8 y/ {/ C/ ?4 D( e6 S- P    │  │  │      │  │  │  │      fileHashes.lock+ t1 r1 C$ s4 i/ F5 N
    │  │  │      │  │  │  │      
7 R; f2 O4 w! Z- v    │  │  │      │  │  │  └─taskHistory
6 W1 {, |3 l  C. g( K    │  │  │      │  │  │          taskHistory.lock6 L% u; R; o0 A) u/ A$ f& J
    │  │  │      │  │  │         
) S" V' j' @) M: m    │  │  │      │  │  └─buildOutputCleanup
$ r) K; ^# a% g2 \! M  |    │  │  │      │  │          built.bin% l  W5 t, C9 v2 @: m; V1 ^
    │  │  │      │  │          cache.properties
; {* c0 J0 ^% o( z. _6 J    │  │  │      │  │          cache.properties.lock
% a( J: f1 s+ r' K+ w    │  │  │      │  │         
( U" n' k. O- K" f6 J% n! s4 G    │  │  │      │  └─.idea
  o$ t; \& }# {- }    │  │  │      │          encodings.xml8 F! K1 p8 l8 f  X5 A; b
    │  │  │      │          gradle.xml- [- n2 O) V+ {3 W$ T+ }+ [
    │  │  │      │          misc.xml! ^; R( @) f  R- s' y% c
    │  │  │      │          workspace.xml
/ d1 D" P) }# q- Z3 i    │  │  │      │          8 ?" u! Q0 t( ^2 E8 ?3 _
    │  │  │      ├─GradleDemo04_task_depdence8 C  k! }. T9 W4 B2 }5 [
    │  │  │      │  │  build.gradle.kts& V4 U! V: k, v% ^/ c; Q0 ^
    │  │  │      │  │  settings.gradle$ J$ y6 O/ J/ y" x
    │  │  │      │  │  % C: I" N9 I& v2 ~$ C  v2 P5 Y
    │  │  │      │  ├─.gradle
: b# Z* X+ O. J    │  │  │      │  │  ├─4.15 X- L) Y$ A" q; F* ^5 L. [
    │  │  │      │  │  │  ├─fileChanges
) w2 \9 f; Q6 b1 |3 N    │  │  │      │  │  │  │      last-build.bin
. u7 |" x) [( q+ H    │  │  │      │  │  │  │      
2 D0 Q2 L2 b* g: w    │  │  │      │  │  │  ├─fileHashes" c/ ~9 p" b/ Q3 E8 x- M- O
    │  │  │      │  │  │  │      fileHashes.bin
, c5 A8 Q8 s- s' d* r    │  │  │      │  │  │  │      fileHashes.lock* K  f) A, A& \& Z1 s3 t% W
    │  │  │      │  │  │  │      
" y. Z0 x/ E# v+ ]0 P    │  │  │      │  │  │  └─taskHistory
4 }/ p  v/ u2 B    │  │  │      │  │  │          taskHistory.lock. z0 m& Z) B$ ^8 i  J# F
    │  │  │      │  │  │         
5 q8 h! ^+ r0 R" g" V/ u, a    │  │  │      │  │  └─buildOutputCleanup: B, W' J, s" R/ q$ G" ?" L
    │  │  │      │  │          built.bin+ ~; ]$ ^* ^! w4 w- R6 h
    │  │  │      │  │          cache.properties& d% F: a5 @5 `5 a8 W
    │  │  │      │  │          cache.properties.lock
: Z* k0 d2 V/ o0 N6 Z; m  r+ }    │  │  │      │  │          " D9 s/ ?. J! d+ o
    │  │  │      │  └─.idea
; K' N- e) t( c" D- z. K    │  │  │      │          encodings.xml
. w7 g' A8 T' G: M9 }+ L    │  │  │      │          gradle.xml) {0 Q! i, l0 X+ b  y! D3 _1 t
    │  │  │      │          misc.xml2 `% w, P8 L/ f( N! _. }) i
    │  │  │      │          workspace.xml
! a$ Q; l  F& U    │  │  │      │            S, z# W$ J% p7 T* R% G
    │  │  │      ├─GradleDemo04_task_lifecicle
) r, p& ?. m! \2 a& I    │  │  │      │  │  build.gradle.kts
" {2 F; v2 |" m; W/ ]* n    │  │  │      │  │  settings.gradle0 |; F9 V2 N- f) P& {' l: }
    │  │  │      │  │  9 A. \- H! F" R
    │  │  │      │  ├─.gradle. R0 u4 |, g% X+ m  Z; L3 E6 R
    │  │  │      │  │  ├─4.1
  n7 P2 o( p% M! I$ a, J6 ^    │  │  │      │  │  │  ├─fileChanges
% L2 n5 Z, B- G/ Y" y" P4 g) A    │  │  │      │  │  │  │      last-build.bin# G- ]5 J% Z+ u/ {' w9 ?' }% Z1 \
    │  │  │      │  │  │  │      
0 t! V6 T) f) ~% V    │  │  │      │  │  │  ├─fileHashes* s; K' ]3 t* c
    │  │  │      │  │  │  │      fileHashes.bin
/ `' |$ p5 f7 E$ b    │  │  │      │  │  │  │      fileHashes.lock: c& e6 A8 z# N. ^1 a; r
    │  │  │      │  │  │  │      7 s. C# J5 V' G+ W/ Y7 l4 y
    │  │  │      │  │  │  └─taskHistory1 p6 Z% {* c7 n" I. |: ]
    │  │  │      │  │  │          taskHistory.lock
! {3 I5 e% m" ?' I    │  │  │      │  │  │         
8 s: z! v  L2 p, v    │  │  │      │  │  └─buildOutputCleanup
, j) `+ M; m- Q+ h4 n# m# a* q    │  │  │      │  │          built.bin# i4 v( U$ t$ j5 u, {
    │  │  │      │  │          cache.properties9 s, r: l) P- c# G. E- Q
    │  │  │      │  │          cache.properties.lock
( N; @, X1 X$ z9 M3 ]( H    │  │  │      │  │         
! v/ b6 y' h$ R! M0 T* q    │  │  │      │  └─.idea
' ^0 o% \% E/ z    │  │  │      │          encodings.xml
) o2 v" C% H& B  E. D$ x    │  │  │      │          gradle.xml
+ o1 G' C& c  v# @    │  │  │      │          misc.xml2 `; j  q& [: ^# q
    │  │  │      │          workspace.xml5 g2 h- c" e" |7 z( p7 ^
    │  │  │      │          . Q' r8 P1 P# i
    │  │  │      ├─GradleDemo05_tasks: z: f, N( H6 q; v$ m* N+ l$ Y# w
    │  │  │      │  │  build.gradle.kts
% p$ E/ H# K2 {. w' i* s4 z    │  │  │      │  │  settings.gradle# R0 G) `- Z4 S1 H! N
    │  │  │      │  │  0 t$ A1 t- q: D, [; t' A3 M4 }
    │  │  │      │  ├─.gradle; f' t: V5 u9 ?3 Z, q7 Z: V
    │  │  │      │  │  ├─4.1
) u1 m0 f" \# z  b+ N    │  │  │      │  │  │  ├─fileChanges0 U- ]3 }0 Z- U0 Q' r3 z$ }
    │  │  │      │  │  │  │      last-build.bin/ p0 [  D/ e( M; r/ O
    │  │  │      │  │  │  │      # n3 F$ T2 f  J3 g- J, y
    │  │  │      │  │  │  ├─fileHashes
! N9 ~& z# I6 P/ G6 w3 s& c) p8 _+ _    │  │  │      │  │  │  │      fileHashes.bin
5 r& u" t% S6 ~7 E/ b    │  │  │      │  │  │  │      fileHashes.lock" d1 [7 u# I9 ]3 r% n
    │  │  │      │  │  │  │      
  c1 w& x# O: j. R    │  │  │      │  │  │  └─taskHistory
6 M$ v- E0 d/ [4 M    │  │  │      │  │  │          taskHistory.lock6 U4 t0 D1 k* f6 n, ~
    │  │  │      │  │  │          & ^& `- ^; M1 _  u# I; I8 a
    │  │  │      │  │  └─buildOutputCleanup
, n* m" k3 h9 y* z  N. m    │  │  │      │  │          built.bin
( a6 R# m& T( C9 v    │  │  │      │  │          cache.properties, a) g2 G9 R7 J
    │  │  │      │  │          cache.properties.lock
0 m: \) ?4 T' E5 [3 g' H    │  │  │      │  │          + a' W: d( k* `9 N4 R# [: x! A# a
    │  │  │      │  └─.idea
3 ], W9 w4 i6 ^& m# \: g+ D6 D$ }    │  │  │      │          encodings.xml+ N5 l$ ~" f# D1 p5 i
    │  │  │      │          gradle.xml
0 a2 F& E0 s! ]3 W) {    │  │  │      │          misc.xml
- w) z3 Q, y" J7 M    │  │  │      │          workspace.xml2 ~  X/ M4 V2 V4 C
    │  │  │      │         
2 s# h, o! X( \0 i    │  │  │      ├─GradleDemo07_properties( x$ \' K. X8 F7 [/ J/ r/ i/ z
    │  │  │      │  │  build.gradle.kts. w1 R4 R6 K% X
    │  │  │      │  │  settings.gradle
" ?' g5 O, z7 j3 z    │  │  │      │  │  6 Q" B9 I- I8 `9 Z; Q$ ]2 r% C
    │  │  │      │  ├─.gradle+ \0 v% A+ k( \1 p0 h- p
    │  │  │      │  │  ├─4.1$ x! b8 `5 E5 f, }4 U
    │  │  │      │  │  │  ├─fileChanges
; U7 c  C- s" q5 ?  i6 ]4 g    │  │  │      │  │  │  │      last-build.bin" B( q  j8 H$ O# J* V
    │  │  │      │  │  │  │      
! D* n) m" E) Y2 D" o- R    │  │  │      │  │  │  ├─fileHashes2 V& i- N7 L9 V" `  B, g
    │  │  │      │  │  │  │      fileHashes.bin
* I, l8 `  J$ @: d( w6 W2 P/ J    │  │  │      │  │  │  │      fileHashes.lock
# [! W' I" \) J+ z3 L    │  │  │      │  │  │  │      : F" `. F/ \+ I6 _  U
    │  │  │      │  │  │  └─taskHistory. _: i6 W  b' r& n! T
    │  │  │      │  │  │          taskHistory.lock. a/ D1 J+ V, Q  g, J
    │  │  │      │  │  │          4 y! q! z2 s0 k: X  e
    │  │  │      │  │  └─buildOutputCleanup
  a# U3 i$ l/ v4 G    │  │  │      │  │          built.bin3 T9 ^  @/ A( Q7 b; I1 V: A
    │  │  │      │  │          cache.properties& [$ N: f# b5 c* d- ?
    │  │  │      │  │          cache.properties.lock
, O9 I4 G0 q; Y    │  │  │      │  │          0 A4 P9 ~! S! _
    │  │  │      │  └─.idea
! {  z! d! ?' _& V- t( {    │  │  │      │          .name1 \& X+ z. i/ t% p
    │  │  │      │          encodings.xml
, E  m, Q# Q. ^' m" A; \" U    │  │  │      │          gradle.xml; r9 {. E% S1 j# t: o" i
    │  │  │      │          misc.xml" ^6 E4 G# g. i) k! q! u
    │  │  │      │          workspace.xml
. S4 q0 K0 d* ~, i8 t$ \    │  │  │      │          # p) g! u( Q/ j8 q/ n9 h
    │  │  │      ├─GradleDemo08_update
% F  Z' T7 I8 \8 j1 B    │  │  │      │  │  build.gradle.kts
# ], e. S4 u$ v2 ~: w7 H( x    │  │  │      │  │  info.txt
0 w4 I! [4 q4 P& l5 H: {    │  │  │      │  │  settings.gradle6 W4 n$ _: q/ I8 a
    │  │  │      │  │  
8 m+ [8 }# b- K" s    │  │  │      │  ├─.gradle
* u, i# O3 m+ O! f/ p6 j    │  │  │      │  │  ├─4.1
' p! {1 R. T; l7 l+ `2 v    │  │  │      │  │  │  ├─fileChanges
6 h# K& O5 {1 m- e5 N9 u    │  │  │      │  │  │  │      last-build.bin
9 S3 g( ]4 @$ P0 I2 t! k  Z) e( {    │  │  │      │  │  │  │      3 L1 S' [* B+ U  v" v3 f
    │  │  │      │  │  │  ├─fileHashes
) B% o5 W* G) u* }    │  │  │      │  │  │  │      fileHashes.bin3 S5 b1 d. v  J# m% |; t
    │  │  │      │  │  │  │      fileHashes.lock8 u3 G+ ?. z; i, B6 U. b1 o
    │  │  │      │  │  │  │      " K* y3 H  u5 _* L# \
    │  │  │      │  │  │  └─taskHistory
, ?' W  G7 l! ?* M% q, i" F    │  │  │      │  │  │          fileSnapshots.bin
0 ?+ |/ X- s( M3 T( s    │  │  │      │  │  │          taskHistory.bin; K4 f6 W$ R& ?
    │  │  │      │  │  │          taskHistory.lock9 I& q) L* L2 L0 _; F
    │  │  │      │  │  │         
1 A% I# b' L0 S" g: b0 B    │  │  │      │  │  └─buildOutputCleanup
2 n) X$ ^8 I) F" F  W, z1 N5 f9 P    │  │  │      │  │          built.bin8 E+ |, g/ U$ X/ e8 `7 L
    │  │  │      │  │          cache.properties
- v0 l" j8 @  ]$ W* ?- l) x    │  │  │      │  │          cache.properties.lock
/ W6 m- R! ?4 x, j3 \  I7 J    │  │  │      │  │          7 ]$ P8 p6 ?* r3 x; m1 B
    │  │  │      │  ├─.idea
' s: k& J4 u5 b5 A3 A) ^    │  │  │      │  │      encodings.xml
9 n; a, l8 T, B, L    │  │  │      │  │      gradle.xml
+ d7 l: E+ u/ X1 f) ?    │  │  │      │  │      misc.xml
$ E/ U. p$ U$ i" V    │  │  │      │  │      workspace.xml
& C1 P2 C5 v8 |  M    │  │  │      │  │      & c) G' r0 e3 I; S8 o) S7 X
    │  │  │      │  └─src
" R( a- S8 ]  \/ ^1 y7 [& B8 U, P    │  │  │      │      └─main
* q9 ^6 \* j9 m2 w3 D: v$ S; P    │  │  │      │          └─java% q/ m3 e( @& Y* M4 t, t
    │  │  │      │                  Girl.java
+ X- V8 q+ U- z4 N5 f( E1 w* i. `    │  │  │      │                  Main.java
& |2 ^$ u" v4 f6 ^% w+ _    │  │  │      │                  Test.java. t6 T, }" i2 Z8 V3 T3 B, u$ d
    │  │  │      │                  
# l- k5 f1 t% U    │  │  │      ├─GradleDemo09_plugins- s$ f* E; u7 V1 b; m
    │  │  │      │  │  build.gradle.kts# ~8 _9 `5 U( `! C
    │  │  │      │  │  settings.gradle4 B( q3 I! f% u7 W' r! q: X' c
    │  │  │      │  │  ' {; d* V7 A7 `  H6 Y
    │  │  │      │  ├─.gradle
% C( |& V$ a' V1 k; m0 P0 U& v$ s4 H    │  │  │      │  │  ├─4.1
5 [& l. ?9 p% ?$ i    │  │  │      │  │  │  ├─fileChanges
8 m8 i% H! ~. w0 y+ z4 y3 l    │  │  │      │  │  │  │      last-build.bin
* @' D& }$ n, P( l% l7 T    │  │  │      │  │  │  │      1 L: u5 p! d% Y% `9 g" F$ o: ^7 y
    │  │  │      │  │  │  └─fileHashes
' M% U9 G( B" X! N  a5 S$ b    │  │  │      │  │  │          fileHashes.bin1 G. o& X4 X1 t/ Z9 B; d
    │  │  │      │  │  │          fileHashes.lock
+ @  v: J0 o9 Y+ D" H  d4 a+ ~8 X    │  │  │      │  │  │            x2 @1 s' W; ]8 i6 n- r) g
    │  │  │      │  │  └─buildOutputCleanup
/ p, p. R- F+ }* R    │  │  │      │  │          built.bin9 _- c) h7 b# J) I% Z" _  [
    │  │  │      │  │          cache.properties
' |2 A$ T1 T# }6 W8 V    │  │  │      │  │          cache.properties.lock
% c; z( d6 e. z  x2 I. c( \! V5 G    │  │  │      │  │         
9 f  X3 C& p8 G& F5 Q1 Y    │  │  │      │  ├─.idea9 {% M3 L2 {/ r, @. ^( `
    │  │  │      │  │  │  encodings.xml
1 i% k; V+ k) q, n9 S    │  │  │      │  │  │  gradle.xml
8 ?8 H6 Z" M; H7 D7 F7 R$ N    │  │  │      │  │  │  misc.xml
4 {+ x* ]  H; P- {' P: f5 i    │  │  │      │  │  │  workspace.xml
8 u/ D( Y% q4 [" k) L9 E    │  │  │      │  │  │  - ^: k( _: _* p4 D* O2 N6 I& y) F
    │  │  │      │  │  └─modules: Y% J( e. U$ e9 l. h; t
    │  │  │      │  │          GradleDemo09_plugins_main.iml
9 v; V+ a/ n  D* t) |1 _3 w    │  │  │      │  │          GradleDemo09_plugins_test.iml" O; Q. u, c8 {. i& R5 C
    │  │  │      │  │         
' }  |0 H0 R: k- N3 r    │  │  │      │  └─build2 L& y6 ?5 D, Z- i8 y
    │  │  │      │      ├─kotlin-build
" q6 q5 L4 t: H6 B$ Q2 E( C    │  │  │      │      │      version.txt4 w7 F4 d+ y& o& j6 }
    │  │  │      │      │      $ r# B2 c8 g) _: F$ B5 ~* z1 K# ]; L7 {) J
    │  │  │      │      └─tmp
( R3 n& k! F8 I" K    │  │  │      │          └─war8 A7 T. v, g! v8 @% h! F
    │  │  │      │                  MANIFEST.MF
( R7 X# s; e" J& W4 a    │  │  │      │                  5 m2 C% |- C. j/ S: ^$ ], J; y
    │  │  │      ├─GradleDemo10_TDD# W. f: r5 @9 _, }. S, K
    │  │  │      │  │  build.gradle.kts6 s0 Z9 D' `* K
    │  │  │      │  │  settings.gradle
& P% k" P+ r; L1 A    │  │  │      │  │  + p5 \2 G6 l( c  k. o! m
    │  │  │      │  ├─.gradle
9 Q" D' g. {: \6 a6 K    │  │  │      │  │  ├─4.1
7 V1 y; V( n3 J    │  │  │      │  │  │  ├─fileChanges" C7 X( }! k+ X
    │  │  │      │  │  │  │      last-build.bin
: O: f- m. _) U  O8 F, X! Q    │  │  │      │  │  │  │      
7 O- z8 o0 _) q2 h    │  │  │      │  │  │  ├─fileContent
( G4 E* b  D- A! N) k% B; p* m    │  │  │      │  │  │  │      fileContent.lock" }: w/ Y9 [6 W0 D% H+ r9 ]
    │  │  │      │  │  │  │      
& B! ^7 a/ ]2 ?' e" G    │  │  │      │  │  │  ├─fileHashes; i3 O# E; S6 Y! w1 x9 q9 w& `; V% Z
    │  │  │      │  │  │  │      fileHashes.bin
& \2 ?6 s) @4 [* }6 ?" b8 [6 V    │  │  │      │  │  │  │      fileHashes.lock7 r; x% C9 e7 L- F
    │  │  │      │  │  │  │      resourceHashesCache.bin$ ~! c3 `. ^8 q3 {' S3 Z# d
    │  │  │      │  │  │  │      
* V7 R  u! |% g4 f' F    │  │  │      │  │  │  └─taskHistory# M" A/ w  _/ X  y; ^
    │  │  │      │  │  │          fileSnapshots.bin7 N% B0 R- Z/ B+ K. t
    │  │  │      │  │  │          taskHistory.bin# s  W" {: q6 x% g; u$ b
    │  │  │      │  │  │          taskHistory.lock1 F5 z$ s8 k1 K. N6 N) F8 d
    │  │  │      │  │  │          $ ]; ?& d& h- |, I  E
    │  │  │      │  │  └─buildOutputCleanup
" T2 y" c8 E3 Z& c" C1 ~& {# D    │  │  │      │  │          built.bin# w) `: ]' b6 J9 ]) S, q2 a
    │  │  │      │  │          cache.properties. ]" D9 h1 S1 ]7 H, I
    │  │  │      │  │          cache.properties.lock
3 }& a' V( d$ ^, r    │  │  │      │  │         
6 r. x- C% J( u2 ]7 w1 _    │  │  │      │  ├─.idea0 {. U6 `# b, Q+ ?
    │  │  │      │  │  │  encodings.xml
& F2 U  q# X5 {$ a% H    │  │  │      │  │  │  gradle.xml. |8 [- z$ {5 Z- I
    │  │  │      │  │  │  misc.xml
/ k& ~, [/ x. z' g    │  │  │      │  │  │  workspace.xml! D2 n# W! z3 h; R: V0 t
    │  │  │      │  │  │  
% j2 N/ U" T- ?; O; x3 ]3 v- l" M" X    │  │  │      │  │  └─modules* i# m+ o: _: r; X8 ~
    │  │  │      │  │          GradleDemo10_TDD_main.iml) N2 v. [8 ~4 x7 X5 K; @' C3 N
    │  │  │      │  │          GradleDemo10_TDD_test.iml
$ f% l# V5 @1 u# n# c( e  y9 b, r    │  │  │      │  │         
; \) L$ E0 }( z8 y* x7 t    │  │  │      │  ├─build
7 y' z2 v- o; L; K! P2 |5 }& `    │  │  │      │  │  ├─classes- R+ O- Q( k& l" T- Q0 O6 V) Z% M- c
    │  │  │      │  │  │  └─java
# W: V! P. O! C! G% i! @    │  │  │      │  │  │      └─main5 J+ `* ~  I& h4 h8 o8 T, R0 i
    │  │  │      │  │  │          │  Girl.class
  ~8 s' r0 d5 D    │  │  │      │  │  │          │  MainKt.class5 T7 P1 h$ E: f- |" H
    │  │  │      │  │  │          │  9 e8 A- W& z& p
    │  │  │      │  │  │          └─META-INF
" }8 o! M  |% N2 s  i    │  │  │      │  │  │                  GradleDemo10_TDD_main.kotlin_module: r, d8 B. j) Q0 l( H$ Q  c. S
    │  │  │      │  │  │                  
' H7 Q* O8 A" J    │  │  │      │  │  ├─distributions
3 m' w" {2 M/ c4 [9 Y    │  │  │      │  │  │      GradleDemo10_TDD.zip
3 O% T$ N# Q, Z9 i4 O5 O    │  │  │      │  │  │      4 Q  A+ T/ {. D  w
    │  │  │      │  │  ├─kotlin
% z0 P, m  u8 I8 K9 d    │  │  │      │  │  │  └─compileKotlin0 ~( k; X) s4 {" B* `4 p
    │  │  │      │  │  │      │  data-container-format-version.txt
6 U& W: y  I" I/ \) T6 |    │  │  │      │  │  │      │  experimental-format-version.txt
/ e2 b) l  B& E' M" \" J    │  │  │      │  │  │      │  format-version.txt
1 z- Q/ x( X/ @/ `    │  │  │      │  │  │      │  gradle-format-version.txt" I( Y( B; ~) L+ P0 r
    │  │  │      │  │  │      │  last-build.bin; I% F" `9 {7 f; A
    │  │  │      │  │  │      │  
# e4 ]( h" y# Z0 V    │  │  │      │  │  │      ├─caches+ {( q/ {4 y' q
    │  │  │      │  │  │      │  ├─increCache.GradleDemo10_TDD_main
5 C. ]4 K& _# u( B- i2 x    │  │  │      │  │  │      │  │  └─kotlin/ z' u! L& g7 K+ E7 G2 r4 ?
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab
% B' |" ^' w5 ]* l    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.keystream% H' Y" A& ]$ |0 J
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.keystream.len7 ]& o2 V; e+ k! i& U0 O  t
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.len1 s+ x. K1 P) ~1 b+ W$ Q4 C5 f
    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab.values.at
8 W1 |+ t6 |$ f+ C+ _    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab_i
8 }. o* w$ q* b* a/ R3 y) h    │  │  │      │  │  │      │  │          class-fq-name-to-source.tab_i.len/ F) y$ J6 Q1 n/ c
    │  │  │      │  │  │      │  │          internal-name-to-source.tab7 a9 o7 N! @$ P& g6 l3 e1 c
    │  │  │      │  │  │      │  │          internal-name-to-source.tab.keystream
0 Y% u4 h: C  c, I/ j, i    │  │  │      │  │  │      │  │          internal-name-to-source.tab.keystream.len
! Z1 m7 {& K) Q/ l/ H    │  │  │      │  │  │      │  │          internal-name-to-source.tab.len! D6 X: L' ^. K5 x7 |
    │  │  │      │  │  │      │  │          internal-name-to-source.tab.values.at, v( ?7 D% \, P) t& h3 ~
    │  │  │      │  │  │      │  │          internal-name-to-source.tab_i
& f( m& o4 r8 c5 ^4 p5 f( e+ M    │  │  │      │  │  │      │  │          internal-name-to-source.tab_i.len
% x9 o+ b- E  T    │  │  │      │  │  │      │  │          package-parts.tab' u% f( |( \+ T; P* \* J% {6 J4 ]
    │  │  │      │  │  │      │  │          package-parts.tab.keystream- u" T6 R# c9 t
    │  │  │      │  │  │      │  │          package-parts.tab.keystream.len
6 ~, A; \/ i) D! r1 L# f" D- ^3 K    │  │  │      │  │  │      │  │          package-parts.tab.len* a$ s9 a+ {0 f) d- d
    │  │  │      │  │  │      │  │          package-parts.tab.values.at
1 Z3 S6 b. E1 @" ~" N- l0 a* X    │  │  │      │  │  │      │  │          package-parts.tab_i
3 Z% {0 e3 t/ t( j, g6 Q    │  │  │      │  │  │      │  │          package-parts.tab_i.len6 b5 a' E* a3 V' V* L
    │  │  │      │  │  │      │  │          proto.tab
* {+ ]/ Y8 b% I! x3 c( J5 }! i, a+ Y    │  │  │      │  │  │      │  │          proto.tab.keystream# {; {9 i( I' e* L: T  L
    │  │  │      │  │  │      │  │          proto.tab.keystream.len
8 I" c+ I$ Y8 c1 ~    │  │  │      │  │  │      │  │          proto.tab.len
) o% ]1 b" C4 ?) V; V    │  │  │      │  │  │      │  │          proto.tab.values.at
# {8 @9 D9 F/ u- p    │  │  │      │  │  │      │  │          proto.tab_i
4 Y+ Q7 W& n& L    │  │  │      │  │  │      │  │          proto.tab_i.len) a5 j0 i7 _% f/ a- P
    │  │  │      │  │  │      │  │          source-to-classes.tab6 ?9 x/ B. G5 W8 [$ E
    │  │  │      │  │  │      │  │          source-to-classes.tab.keystream
, v1 c2 t9 o  P+ t    │  │  │      │  │  │      │  │          source-to-classes.tab.keystream.len
% m, \4 ?0 W% \# s9 B    │  │  │      │  │  │      │  │          source-to-classes.tab.len
" U" Q) r" R( L) q+ B. s1 K& B    │  │  │      │  │  │      │  │          source-to-classes.tab.values.at
- @" B. g8 h- g    │  │  │      │  │  │      │  │          source-to-classes.tab_i
: g2 g* E7 Z# E2 Y) w    │  │  │      │  │  │      │  │          source-to-classes.tab_i.len
# F& h, S4 x3 O9 B+ O    │  │  │      │  │  │      │  │          source-to-output.tab- T: V6 Z+ I; q8 M: z, ]  d8 ?4 O
    │  │  │      │  │  │      │  │          source-to-output.tab.keystream& o" L9 G1 a0 m  u( u) d. ?
    │  │  │      │  │  │      │  │          source-to-output.tab.keystream.len
. p. O" m( J* P, ]# i) Q& ^    │  │  │      │  │  │      │  │          source-to-output.tab.len7 ]3 X  k. a3 F8 m. V( j" _3 R
    │  │  │      │  │  │      │  │          source-to-output.tab.values.at& q7 I# T! J* j$ c( u6 n; w3 h
    │  │  │      │  │  │      │  │          source-to-output.tab_i' B' Q3 W3 j# u* a3 R
    │  │  │      │  │  │      │  │          source-to-output.tab_i.len# x' L+ j- @( l. Y* i% u% a& S
    │  │  │      │  │  │      │  │          " N( h3 {! J8 o2 j
    │  │  │      │  │  │      │  └─lookups
0 M6 q! F5 g6 N4 V  v6 i: }% P+ B    │  │  │      │  │  │      │          counters.tab
3 s5 Y5 L! B3 R) p9 R8 e8 Q3 ]    │  │  │      │  │  │      │          file-to-id.tab
) v: N% S( J$ U    │  │  │      │  │  │      │          file-to-id.tab.keystream
& [0 L: ~$ ^+ u1 I    │  │  │      │  │  │      │          file-to-id.tab.keystream.len
# Y/ U' K% B, T1 v3 }    │  │  │      │  │  │      │          file-to-id.tab.len' |: U4 P  N+ C1 D, e% D
    │  │  │      │  │  │      │          file-to-id.tab.values.at  G$ n. X6 G/ _
    │  │  │      │  │  │      │          file-to-id.tab_i
( r' @7 V, x; h5 ~; S% F    │  │  │      │  │  │      │          file-to-id.tab_i.len
! b  }2 R$ E) Q) L) g    │  │  │      │  │  │      │          id-to-file.tab. \  E: k8 [+ I' ]2 q9 s9 B
    │  │  │      │  │  │      │          id-to-file.tab.keystream" d# H! x0 V/ Z7 f
    │  │  │      │  │  │      │          id-to-file.tab.keystream.len; n* g* ?5 [: \0 E" s: X& C, _
    │  │  │      │  │  │      │          id-to-file.tab.len
3 n3 g# I$ U* Z9 b8 ~    │  │  │      │  │  │      │          id-to-file.tab.values.at
: k& ]7 p! w. h. a! n    │  │  │      │  │  │      │          id-to-file.tab_i% }0 W; C2 n* ?1 y" Y
    │  │  │      │  │  │      │          id-to-file.tab_i.len0 w, J. i- v, h* l
    │  │  │      │  │  │      │          lookups.tab
3 w2 ~5 A% b) n    │  │  │      │  │  │      │          lookups.tab.keystream
% Y. N1 g' z; V0 j2 |4 n& a    │  │  │      │  │  │      │          lookups.tab.keystream.len1 [0 x7 F0 f1 {4 @; W
    │  │  │      │  │  │      │          lookups.tab.len8 [) I+ }* v, {0 l7 Z& L5 M2 r
    │  │  │      │  │  │      │          lookups.tab.values.at
; F* m& @2 T) D; _    │  │  │      │  │  │      │          lookups.tab_i2 r+ y0 S8 z7 m) L
    │  │  │      │  │  │      │          lookups.tab_i.len
5 t7 P  P2 T/ J5 f    │  │  │      │  │  │      │          2 p% d7 ?$ R. c6 M
    │  │  │      │  │  │      └─sync/ d3 i8 \+ U7 }! N* {4 V
    │  │  │      │  │  │              kotlin-files-in-java-timestamps.bin* o0 ]; \1 u8 `4 o! T9 v; n
    │  │  │      │  │  │              8 F, l4 l$ y6 t
    │  │  │      │  │  ├─kotlin-build
) D* {" e1 M7 p    │  │  │      │  │  │  └─caches
+ Z% x) [+ P9 V    │  │  │      │  │  │          version.txt2 G( B' t2 e6 S! k9 v5 ]
    │  │  │      │  │  │          6 T  @, P  v: X! [0 e! b
    │  │  │      │  │  ├─kotlin-classes
9 d2 T7 \3 u5 g3 j* v, m5 v    │  │  │      │  │  │  └─main
0 v  g3 f# q) U2 v, F1 i    │  │  │      │  │  │      │  Girl.class. _0 f3 B- i" m7 j$ X4 S; [
    │  │  │      │  │  │      │  MainKt.class" j& K/ e" r: T2 H+ `( d: n
    │  │  │      │  │  │      │  ( F* M: z. a, y% x6 q/ c1 T
    │  │  │      │  │  │      └─META-INF3 e6 H- F1 H5 ?; v
    │  │  │      │  │  │              GradleDemo10_TDD_main.kotlin_module
- Y8 d" _# K. C$ a4 L4 \$ \5 n    │  │  │      │  │  │              " r" D& _+ \& J+ K
    │  │  │      │  │  ├─libs( k  Q3 j4 k3 y; k8 ^$ F- G
    │  │  │      │  │  │      GradleDemo10_TDD.jar
* y- Y; J, |2 w# r0 S    │  │  │      │  │  │      
/ S2 Q9 \2 a6 \. o( d+ `    │  │  │      │  │  ├─scripts8 d& F# K3 y- B5 ~5 s
    │  │  │      │  │  │      GradleDemo10_TDD4 A. @$ a. p& |( H- M  E
    │  │  │      │  │  │      GradleDemo10_TDD.bat
3 a: t  C! d4 a# ~* y5 ^; K6 `4 T    │  │  │      │  │  │      
: e8 T& ?7 Q2 c  u    │  │  │      │  │  └─tmp: z1 V0 R. c1 C
    │  │  │      │  │      └─jar
: L2 ~% x# y: ^# k    │  │  │      │  │              MANIFEST.MF
) q/ P* @8 W3 U    │  │  │      │  │              
8 {$ o; N5 r( ^$ n- h    │  │  │      │  ├─out6 p) G$ e: p- h! M! r
    │  │  │      │  │  ├─production. ^# f& M* I0 E4 I  x
    │  │  │      │  │  │  └─classes
, D3 R; y5 u* L    │  │  │      │  │  │      │  Girl.class, T0 L6 \' r$ D* i7 L% J
    │  │  │      │  │  │      │  MainKt.class+ F- z5 P: ?* W% s
    │  │  │      │  │  │      │  4 ~% H/ t6 B8 }4 }' o
    │  │  │      │  │  │      └─META-INF
# K7 P" u0 F/ n1 b  i/ v: [    │  │  │      │  │  │              GradleDemo10_TDD_main.kotlin_module4 S0 b! ^* t  J9 z
    │  │  │      │  │  │              
8 @6 w- L. s) I    │  │  │      │  │  └─test
. C1 G1 p) }9 H; Q( m  }! Q    │  │  │      │  │      └─classes2 V$ F% _# k8 F
    │  │  │      │  │              TestGirl.class
+ _# w7 j0 t, g( G* v, Q9 F4 F+ o    │  │  │      │  │              
9 Q7 n+ S+ b- _/ F) z% ?    │  │  │      │  └─src% c9 }/ I; ^' z/ M: j
    │  │  │      │      ├─main
- m% _- Y; _0 a4 p    │  │  │      │      │  └─kotlin: [  N# J: p1 G1 Y
    │  │  │      │      │          Girl.kt% ]' x. J8 q& Y8 n
    │  │  │      │      │          Main.kt
) [; f1 t* C) a# T2 F7 ?    │  │  │      │      │         
. E# o. O, p$ n( ^* z4 K6 r    │  │  │      │      └─test1 ]) J. N7 ^) p$ c2 {
    │  │  │      │          └─kotlin
/ _- A# ?2 M1 ]7 X' \9 X3 E    │  │  │      │                  TestGirl.kt
% q" Q: @6 \+ Z, \  Y    │  │  │      │                  
- b+ {- a) x8 n) H    │  │  │      ├─GradleDemo11_task_exptension
$ d& w2 ~  s) |) D5 n# W& ~& q    │  │  │      │  │  build.gradle.kts
/ H4 ~. k' p& v- D+ i    │  │  │      │  │  settings.gradle
/ \$ `. N3 [  p    │  │  │      │  │  % d6 i3 w/ ^! f+ T/ H4 j
    │  │  │      │  ├─.gradle0 L$ h" ~7 M. w! L/ p* ^
    │  │  │      │  │  ├─4.1# {8 m! s3 b. S. e( M1 S& @
    │  │  │      │  │  │  ├─fileChanges6 D  g$ l3 n/ s, I
    │  │  │      │  │  │  │      last-build.bin
+ g4 s& {& A, n9 V5 Z  @3 p* M    │  │  │      │  │  │  │      
: y2 M$ I% U+ c+ Z0 U1 a    │  │  │      │  │  │  ├─fileHashes
$ O. e! i  |! P9 K    │  │  │      │  │  │  │      fileHashes.bin) U! l& x2 Z  e7 C& y
    │  │  │      │  │  │  │      fileHashes.lock* N+ x9 r% P, C: h3 P
    │  │  │      │  │  │  │      
. g  R0 F) m4 c" H* a    │  │  │      │  │  │  └─taskHistory
) p9 r1 L7 O/ ~( M3 V, N/ \    │  │  │      │  │  │          fileSnapshots.bin
- v+ A& X8 g' D6 M  w, p3 m    │  │  │      │  │  │          taskHistory.bin
+ E! T1 {  o% c( I. N9 M' ]( f    │  │  │      │  │  │          taskHistory.lock& z, s8 J) \% p! N/ D, B! }
    │  │  │      │  │  │          : ~/ {1 P9 ]* z
    │  │  │      │  │  └─buildOutputCleanup: d0 ?4 ~8 A# C4 j& o% E
    │  │  │      │  │          built.bin
8 B5 S; ]" L) W7 ~. f    │  │  │      │  │          cache.properties
. s0 m4 q  g0 [' f" [+ Y/ i    │  │  │      │  │          cache.properties.lock; ~; j% T' h% S1 }+ G7 C, W# i
    │  │  │      │  │          4 ~$ M# t  P" m. ~( J0 N- D
    │  │  │      │  ├─.idea/ M' K, t( Z+ S7 b" X& `
    │  │  │      │  │      encodings.xml
5 E# }: P" y' e0 e5 g6 L) ^    │  │  │      │  │      gradle.xml
. r% R0 g$ W' _    │  │  │      │  │      misc.xml
( R2 w8 w! [( y" H3 Y! \/ ~/ f( j    │  │  │      │  │      workspace.xml1 c. z/ J( u* z" p& U$ c
    │  │  │      │  │      ( _* t  E3 M% l- W
    │  │  │      │  └─src
( r  _6 c0 w. J* x/ E* M    │  │  │      │      └─main
. ]) K; I4 |4 K    │  │  │      │          └─java
2 G; k+ g0 u. i    │  │  │      │                  Haha.java
! u, H) o! d' d6 U0 k& O    │  │  │      │                  Main.java, D9 Q9 W/ D+ J4 h9 ?0 k0 ^
    │  │  │      │                  Test.java
* o: j- C% m6 Z    │  │  │      │                  9 |) P/ ^, S7 R0 G# d
    │  │  │      ├─GradleDemo12_mul_module1 k  S9 t8 ~& H. u
    │  │  │      │  │  build.gradle.kts
9 N2 E( ^( B6 d8 h% ^; S; u9 _    │  │  │      │  │  settings.gradle4 t- }$ H5 @# Z0 M% T0 I6 G+ {- ^
    │  │  │      │  │  ) P$ M3 x* H  G( m4 \  \# ]7 y( F
    │  │  │      │  ├─.gradle9 C/ F- O2 d/ q3 U2 U: B$ V8 f
    │  │  │      │  │  ├─4.1
7 X5 ]3 K7 W& v    │  │  │      │  │  │  ├─fileChanges% Z# o& {- V3 b* b& ?5 }0 l
    │  │  │      │  │  │  │      last-build.bin
) `; t/ P" B+ }6 G1 T" ?1 e1 n    │  │  │      │  │  │  │      ' y/ K$ p1 z# ?
    │  │  │      │  │  │  └─fileHashes, r9 \5 q4 y. b* d! A( S
    │  │  │      │  │  │          fileHashes.bin8 k  p9 K3 G* f. n4 A; `, T8 B
    │  │  │      │  │  │          fileHashes.lock. {+ R/ K2 `% b
    │  │  │      │  │  │         
0 `  X+ V5 U) L    │  │  │      │  │  └─buildOutputCleanup! F/ h. |, Z# E8 L( }: J
    │  │  │      │  │          built.bin& ~# F4 `2 N* y
    │  │  │      │  │          cache.properties
& v. `' ^. d3 o1 }1 H# [    │  │  │      │  │          cache.properties.lock. t; x- A2 z/ ]
    │  │  │      │  │          7 S* ~5 H- H. R/ b
    │  │  │      │  ├─.idea
* i( v6 V+ C" V" V; w; k% F: w* K    │  │  │      │  │  │  encodings.xml7 T, C4 `  y; S) A8 `& q
    │  │  │      │  │  │  gradle.xml
" C$ Z6 M. C6 p    │  │  │      │  │  │  misc.xml
# q4 Z  Z' i8 T; k) D3 [  \    │  │  │      │  │  │  workspace.xml
4 }5 y! @- ^" l$ \  g    │  │  │      │  │  │  
8 ]& G8 v; Y; t) v) R    │  │  │      │  │  └─modules
# |8 |- I& J5 C7 W& s    │  │  │      │  │      │  GradleDemo12_mul_module_main.iml
+ l! t/ `+ `$ h7 i2 D    │  │  │      │  │      │  GradleDemo12_mul_module_test.iml: c% ^4 O2 y, A9 T) A0 s
    │  │  │      │  │      │  . Q" I0 i- e: d$ H" J
    │  │  │      │  │      ├─App0 U7 j1 I4 Z/ B- l* C, |9 Z
    │  │  │      │  │      │      App_main.iml
& j* ~4 d, W+ ^1 h! i8 l8 A5 `    │  │  │      │  │      │      App_test.iml
% G2 E3 K; I0 ~+ b    │  │  │      │  │      │      # X6 x) t6 B) a3 k
    │  │  │      │  │      └─Core
- V) u" E6 _  X1 J3 W$ Y! }    │  │  │      │  │              Core_main.iml
2 q* d! E( b- P/ B/ g    │  │  │      │  │              Core_test.iml5 W8 U% e. G" g! D  r
    │  │  │      │  │              9 c% t! E' s; Y1 `6 s) b
    │  │  │      │  ├─App1 r5 B" R2 d4 y
    │  │  │      │  │  │  build.gradle.kts% ]+ e2 g! I/ u* S9 J" U( Q
    │  │  │      │  │  │  
  J; E1 N/ T. [    │  │  │      │  │  ├─out
4 h8 ^+ y5 `0 N/ g' ]0 J1 N    │  │  │      │  │  │  └─production
' R- O$ M+ a( t2 p( q: z    │  │  │      │  │  │      └─classes) a/ Q5 V& w/ A1 ?: v, {, e
    │  │  │      │  │  │          │  MainKt.class
  O# f$ Y4 i" [% F9 ~    │  │  │      │  │  │          │  ( V! f/ ]8 [6 G1 f0 B
    │  │  │      │  │  │          └─META-INF+ i6 L5 b4 F1 ?) X) p# s
    │  │  │      │  │  │                  App_main.kotlin_module
# s& c1 }# z) n* ?. ~' O    │  │  │      │  │  │                  
  U, R2 K( @, F  h' I. p    │  │  │      │  │  └─src
+ B# k8 }5 }/ N. ]4 P' J- ^    │  │  │      │  │      └─main
$ _: t7 |4 a6 u" U, l    │  │  │      │  │          └─kotlin+ D; H8 W$ b# W  C% ~1 t
    │  │  │      │  │                  Main.kt
, |4 E2 ]8 Q% C' Q8 t3 R+ }) ?    │  │  │      │  │                  ) ~. J, T3 h, S& F, R
    │  │  │      │  ├─build
& q6 A; u: k9 m8 |    │  │  │      │  │  └─kotlin-build# v2 j( s( k- l1 L2 Q5 h' }: _
    │  │  │      │  │          version.txt
. f1 C( p& N# T/ A# C1 e2 ]    │  │  │      │  │            \2 v: z$ I2 y! P" e0 S. P7 E
    │  │  │      │  └─Core. h0 e4 t6 \) g! Q, x/ ?1 E& T; e
    │  │  │      │      │  build.gradle.kts& Y2 q, Y- ~  ^3 A
    │  │  │      │      │  4 H- {8 `% a2 {5 v
    │  │  │      │      ├─out; X* Y' {1 X1 y& f
    │  │  │      │      │  ├─production* a( `! P; K0 L4 t
    │  │  │      │      │  │  └─classes
0 @5 z7 P4 u# |    │  │  │      │      │  │          NetUtils.class5 @' F0 [2 i+ v, [7 d* ^
    │  │  │      │      │  │          : V+ t9 O# Z& M; a. c
    │  │  │      │      │  └─test: J0 ]' d( E! F+ {: _% B3 V
    │  │  │      │      │      └─classes
& G: c) g! m# ?2 v: s8 `    │  │  │      │      │              TestNetUtils.class: S9 f% |7 D3 t0 C
    │  │  │      │      │              8 }' t* u1 _5 q" F0 O
    │  │  │      │      └─src
- O2 J* C/ t$ y    │  │  │      │          ├─main- F: X; T& u5 E  M  f
    │  │  │      │          │  └─kotlin
" i0 c/ g, C. u( N$ h    │  │  │      │          │          NetUtils.kt
8 {& m! V- x" f3 G    │  │  │      │          │          & j. W; H9 @0 {5 j0 j0 G' ^
    │  │  │      │          └─test
0 `+ y% v3 q; q2 H    │  │  │      │              └─kotlin5 r3 @% t! ^  _9 R
    │  │  │      │                      TestNetUtils.kt
' k( |7 ]; c/ }0 p! _' ~% |5 H    │  │  │      │                      ! @  J$ ^0 U! X* [% B6 c( ~3 V* q
    │  │  │      ├─GradleDemo_conflict_depdence% y0 s9 _( }: S/ |5 A- M/ A
    │  │  │      │  │  1.jpg% d* c8 }: p. q/ O
    │  │  │      │  │  2.jpg3 Q( V; M- M, ~" G
    │  │  │      │  │  3.jpg
' o, u& k* ?# g$ e7 f: _  t8 w    │  │  │      │  │  4.jpg; ]' s9 K0 G0 Z
    │  │  │      │  │  5.jpg5 w8 W7 b6 N- d% s8 E
    │  │  │      │  │  build.gradle.kts" N, H4 ?& o) e* T( Y% n! \, V; }
    │  │  │      │  │  settings.gradle: ^9 f+ I- X# d3 {9 \; \7 r
    │  │  │      │  │  " f$ N1 K- }! G5 j7 \$ Y+ z8 K
    │  │  │      │  ├─.gradle. Z' Q' h- m" f9 a$ |
    │  │  │      │  │  ├─4.1* a+ ?/ V, {$ N& d7 F4 e0 y# G
    │  │  │      │  │  │  ├─fileChanges3 W1 O* M# s$ h/ [5 ?
    │  │  │      │  │  │  │      last-build.bin/ m* c: |' q8 Z6 p/ [& S9 n  n* W
    │  │  │      │  │  │  │      & ~, }. Z& z2 {+ V+ E( B
    │  │  │      │  │  │  └─fileHashes
; U8 y3 j4 p. G0 y% b" r% o: }    │  │  │      │  │  │          fileHashes.bin4 l" P4 a. [5 ?( o5 x% |* E
    │  │  │      │  │  │          fileHashes.lock: Q! n/ |4 |& d. _, P6 z, A1 v' l
    │  │  │      │  │  │         
+ p, ^$ a3 ~) b) s: m9 O1 ^    │  │  │      │  │  └─buildOutputCleanup. Y5 {+ F3 ~  s
    │  │  │      │  │          built.bin8 q5 v4 W; V# X5 `9 o
    │  │  │      │  │          cache.properties
' l, t) \1 N! r! y: n# {# x* R    │  │  │      │  │          cache.properties.lock9 X1 ?0 G# m/ @' ^& w
    │  │  │      │  │         
6 \$ z8 T& `, P, e    │  │  │      │  ├─.idea, f7 q2 b7 O: `! |, i+ o
    │  │  │      │  │  │  .name
' @3 j* d. g+ n' p# C7 v    │  │  │      │  │  │  encodings.xml
6 P! e' g6 ]# G4 A8 Y9 B    │  │  │      │  │  │  gradle.xml% n( D2 l4 o% a8 U! X  E
    │  │  │      │  │  │  misc.xml
" g3 s( J1 \$ K" r3 x    │  │  │      │  │  │  workspace.xml7 Y1 u8 b9 L4 a3 [" }9 S! H
    │  │  │      │  │  │  4 d  y4 r9 O! k: Y7 S9 D, C
    │  │  │      │  │  └─modules; T6 p5 Y! p, U; l- l
    │  │  │      │  │          GradleDemo_GirlDownloader_main.iml
2 M" W; o: e) n6 p    │  │  │      │  │          GradleDemo_GirlDownloader_test.iml6 F6 D5 Q3 {) \: k( M
    │  │  │      │  │          $ m4 u  k- q: a" z. q) \, W
    │  │  │      │  ├─build
+ J2 R4 S7 ~9 f5 @    │  │  │      │  │  └─kotlin-build
$ y0 H6 M$ M' O0 B" Q( [    │  │  │      │  │      └─caches  x2 E5 F& e3 y# w
    │  │  │      │  │              version.txt
( c  P. {' B* v    │  │  │      │  │              
: E. Q1 ~) f1 v$ g# ~    │  │  │      │  ├─out, W' K. i$ V, `
    │  │  │      │  │  └─production
  @: Y0 ?2 `, f- a) L) ]: T    │  │  │      │  │      └─classes: g% [  w! c9 H1 z# f
    │  │  │      │  │          │  GirlDownloaderKt.class
' x: N) ~! q# B/ N    │  │  │      │  │          │  
9 D' n0 b' X/ v  ], M9 l5 G4 L9 o    │  │  │      │  │          └─META-INF/ J. j: y$ Q. \  Y- A  c6 C5 D
    │  │  │      │  │                  GradleDemo_GirlDownloader_main.kotlin_module
# L" j' `& m9 q* T, J    │  │  │      │  │                  
6 b. I5 D; j: r1 Y, {* P: {* C    │  │  │      │  └─src8 X: e6 h+ s. e" K
    │  │  │      │      └─main5 W1 _& L  Y% Q0 F
    │  │  │      │          └─kotlin
( X1 D, D1 W9 U; U) F    │  │  │      │                  GirlDownloader.kt5 G6 {9 O2 j3 l0 _
    │  │  │      │                  
. u! O$ v8 ^/ f+ m    │  │  │      ├─GradleDemo_GirlDownloader! t. c2 i& B" o; o
    │  │  │      │  │  1.jpg# h1 k" I8 |# ?3 U& T) ]6 y/ }( U2 {
    │  │  │      │  │  2.jpg1 ?3 |+ |% ^" k5 G+ @
    │  │  │      │  │  3.jpg
* P, ~) E- C, [, X  m4 K: v& I    │  │  │      │  │  4.jpg
+ x4 [% e- X) Q& M4 s& Y    │  │  │      │  │  5.jpg# E' ?1 _1 |' ?; _0 U1 `  K  k
    │  │  │      │  │  build.gradle.kts
- e, R( g8 w2 p    │  │  │      │  │  settings.gradle8 _8 }) k+ R% i/ a* t$ ~
    │  │  │      │  │  
% @+ y" a8 o) K8 ?: k    │  │  │      │  ├─.gradle+ E9 G2 U5 u4 h4 u% @+ E' k
    │  │  │      │  │  ├─4.1, A! N% \6 S& e; {4 `% W7 ?3 r' S
    │  │  │      │  │  │  ├─fileChanges3 }1 @. g* d- v2 P- I
    │  │  │      │  │  │  │      last-build.bin  a, `$ _+ j: t0 h5 N
    │  │  │      │  │  │  │      1 w' ~0 n* y( j' [3 Y1 @
    │  │  │      │  │  │  └─fileHashes3 L" g" Q, u3 Q! M1 H
    │  │  │      │  │  │          fileHashes.bin
0 i6 F" z" P* r) I4 w3 p/ s1 \    │  │  │      │  │  │          fileHashes.lock
$ b, a: z# u# K    │  │  │      │  │  │         
( l) x" d  {( B9 j$ G    │  │  │      │  │  └─buildOutputCleanup
; s" J& Y9 y; P1 n    │  │  │      │  │          built.bin
& X8 Z+ U: B) ~& b5 o- h    │  │  │      │  │          cache.properties$ O2 t7 d$ w1 s- B  Z, ]6 w& c2 s( v
    │  │  │      │  │          cache.properties.lock
' q8 u( p9 D% s3 V- e" q    │  │  │      │  │         
- e  p& h7 U" p    │  │  │      │  ├─.idea# ~+ r, n4 d6 ]3 W, u
    │  │  │      │  │  │  encodings.xml
. `5 k, F  I+ o, f4 c& V- M    │  │  │      │  │  │  gradle.xml. A# o, C. f7 l0 u" T; G
    │  │  │      │  │  │  misc.xml# S) g. w6 v) f6 D
    │  │  │      │  │  │  workspace.xml7 G8 \. F$ [4 ~' ~/ k7 D! s9 n
    │  │  │      │  │  │  
; @& E$ J/ P# O: `    │  │  │      │  │  └─modules
- J/ w" M# B* S    │  │  │      │  │          GradleDemo_GirlDownloader_main.iml, a) v+ D3 G- m' J
    │  │  │      │  │          GradleDemo_GirlDownloader_test.iml
8 G' w* d* W/ m$ x# M1 Z) b' f    │  │  │      │  │         
- q: g/ l/ {: i" N$ N% R    │  │  │      │  ├─build
$ n. J: b* C) T: C4 k- [    │  │  │      │  │  └─kotlin-build1 v* K9 V8 ~# y" @& J  i
    │  │  │      │  │      └─caches, c4 H- w- q9 `: v: s
    │  │  │      │  │              version.txt
) X9 n9 b* o' P' O    │  │  │      │  │              ' ?# g  Q$ k+ l; p* k! V
    │  │  │      │  ├─out
  z  I$ T9 d4 a6 e/ B; c    │  │  │      │  │  └─production
* v" ], q( ^; M" c6 r; j; ^3 W    │  │  │      │  │      └─classes
8 i9 O  @# l1 J    │  │  │      │  │          │  GirlDownloaderKt.class! i, c8 I$ W7 g8 P% s2 O9 p
    │  │  │      │  │          │  " @! g7 k2 g( P8 Z
    │  │  │      │  │          └─META-INF
/ j7 \  X. V5 E    │  │  │      │  │                  GradleDemo_GirlDownloader_main.kotlin_module
* ^- z. K+ l" W3 l4 B( |    │  │  │      │  │                  , M( J7 ?/ z6 n# N
    │  │  │      │  └─src0 N+ F1 u5 i6 P6 d8 k. d9 g
    │  │  │      │      └─main
- O3 O3 Q8 |: h# j$ `! k    │  │  │      │          └─kotlin. e6 H% r9 |' c8 j( B5 ^+ @
    │  │  │      │                  GirlDownloader.kt
. C2 F" ]+ _5 s: v% r    │  │  │      │                  
1 L9 g" M7 w  G6 O9 _0 u" r    │  │  │      ├─GroovyGradle' }9 _" @+ M4 V2 _% [  f4 Q
    │  │  │      │  │  build.gradle
7 j# d- r0 B  [$ x' d8 S1 B9 k: [    │  │  │      │  │  gradlew
2 r0 D: Q2 g* h& z0 c- |( l( r    │  │  │      │  │  gradlew.bat/ ?& _# W. u7 S% K' @2 [: x+ ^
    │  │  │      │  │  settings.gradle7 e! q4 F7 O7 P/ o3 W0 U
    │  │  │      │  │  
: t5 K# v; }7 r1 O    │  │  │      │  ├─.gradle
) U( Q, j' X5 J; X" N! M- o    │  │  │      │  │  ├─4.4
7 [2 ~& e9 Z! N9 F; i0 S8 v# _    │  │  │      │  │  │  ├─fileChanges
5 Q- I, q( G7 k( r0 T5 M- Z    │  │  │      │  │  │  │      last-build.bin
- }& S! r6 l1 K5 \' N    │  │  │      │  │  │  │      , h, e: ~1 M/ ~% t
    │  │  │      │  │  │  ├─fileHashes7 _. Z5 r2 [/ ^( e. f9 h. p. y
    │  │  │      │  │  │  │      fileHashes.bin
5 g+ x+ I7 |6 ^0 M  A    │  │  │      │  │  │  │      fileHashes.lock9 `" w8 P6 p3 r9 \: }
    │  │  │      │  │  │  │        B1 U4 r) K+ \) _  w( ^6 O
    │  │  │      │  │  │  └─taskHistory- }  ]0 R! v5 S; e* N* X, O8 O
    │  │  │      │  │  │          taskHistory.bin2 G0 l$ }0 P  N  }; M& w
    │  │  │      │  │  │          taskHistory.lock
& V! g5 v. G3 ^4 p. f    │  │  │      │  │  │          ) K2 a4 s. i8 k' z3 x1 L8 q
    │  │  │      │  │  └─buildOutputCleanup
! Q, }6 p4 N& o( c    │  │  │      │  │          buildOutputCleanup.lock
* y( a$ z' g2 m) [    │  │  │      │  │          cache.properties; n: E% a- v8 `8 c% \/ R
    │  │  │      │  │          outputFiles.bin
' n. P# G/ t, K8 x/ E0 f) a2 K    │  │  │      │  │          7 J% W; Z9 Q1 V, k0 z
    │  │  │      │  ├─.idea6 x3 m4 C, B4 r1 n* `
    │  │  │      │  │      encodings.xml
6 g+ q1 b& }% O4 p: S    │  │  │      │  │      gradle.xml
/ O. h2 [& e* T/ v7 \, |" z: [    │  │  │      │  │      misc.xml
( \, ^8 h* K2 |5 Y" }9 p    │  │  │      │  │      workspace.xml
4 |8 l) v1 y3 v) D/ c* w    │  │  │      │  │      ) A- }" x8 P8 t9 V( g8 b
    │  │  │      │  └─gradle
( I7 Q- _7 @; P3 }; s    │  │  │      │      └─wrapper7 I9 w8 Q/ A- Y: ^
    │  │  │      │              gradle-wrapper.jar
' I& D4 a, U3 e, O    │  │  │      │              gradle-wrapper.properties% e4 m# q* ]! j) U8 P' w
    │  │  │      │              
1 @9 f* c8 r6 T! H* v( ^0 w    │  │  │      ├─GroovyGradle02
, e: z; b. g; M# V  R4 g/ n    │  │  │      │  │  build.gradle% M) ^7 g5 n, ~) f  _5 [
    │  │  │      │  │  gradlew
& g4 c$ Y4 `" Y* s) n    │  │  │      │  │  gradlew.bat" M; u, z- n& M: V
    │  │  │      │  │  settings.gradle
( E) E: r5 Y# t. `( r' ^6 O( F2 ]% y    │  │  │      │  │  
' }# A9 @7 y) Q' X9 i    │  │  │      │  ├─.gradle
# B+ C3 |3 `( n    │  │  │      │  │  ├─4.4% z* m2 g: u: Z. y# \% z# h9 l* c- p* _
    │  │  │      │  │  │  ├─fileChanges9 K, _7 f9 I: v2 g
    │  │  │      │  │  │  │      last-build.bin
3 n" }8 c% x  q    │  │  │      │  │  │  │      
- Q( n  Z3 Y. i3 @- u    │  │  │      │  │  │  ├─fileHashes
5 a1 a. d1 t; `3 |2 z    │  │  │      │  │  │  │      fileHashes.bin7 j- P. [. F0 N- z% L) \! m# h
    │  │  │      │  │  │  │      fileHashes.lock( P+ d8 ^% p- j' O- C; K# _6 d
    │  │  │      │  │  │  │      
' [3 ]# l2 U! c    │  │  │      │  │  │  └─taskHistory
2 V2 a  a" o6 G. d! u    │  │  │      │  │  │          taskHistory.bin' R. O5 V, z0 q. L
    │  │  │      │  │  │          taskHistory.lock
/ ?  Y6 }& y" m! |+ R" s    │  │  │      │  │  │         
, s' A% a) K# |8 J. ]4 ?+ s    │  │  │      │  │  └─buildOutputCleanup
* M9 {# [; i) g: F    │  │  │      │  │          buildOutputCleanup.lock
7 n7 m) H8 k' c& I  @1 W$ ^    │  │  │      │  │          cache.properties
8 M+ c1 G7 u  y( D- P    │  │  │      │  │          outputFiles.bin
7 |/ i9 \2 X% S4 y) I5 h; M    │  │  │      │  │         
! U8 [1 p7 |  u5 F1 A) ^    │  │  │      │  ├─.idea
: J0 k/ `  {7 q9 {9 D, A    │  │  │      │  │  │  encodings.xml
5 R1 ~3 F" h2 m: [4 v9 y* J% ~1 k    │  │  │      │  │  │  gradle.xml) h  a$ v  Z. h, O4 `! b
    │  │  │      │  │  │  misc.xml8 a) v- i: q8 b
    │  │  │      │  │  │  workspace.xml
6 @" Y3 ]# M7 N: S1 K    │  │  │      │  │  │  
" B3 v; O4 Y+ w; q  r    │  │  │      │  │  └─modules
% ^% n- z5 _* I( Y5 V* |4 F    │  │  │      │  │          GroovyGradle02_main.iml* N! N+ ^/ i# v* H0 M
    │  │  │      │  │          GroovyGradle02_test.iml$ o2 a. T7 n% b% p8 y
    │  │  │      │  │          8 d9 O2 N. I3 k' o+ F
    │  │  │      │  ├─build
9 z& ]0 _% \  P8 K/ l' A    │  │  │      │  │  └─kotlin-build! p+ X$ I4 F4 {$ h) A  I$ Y
    │  │  │      │  │          version.txt
+ v; y0 s7 C6 p: K; U    │  │  │      │  │         
6 d7 C$ U0 U. J1 ]    │  │  │      │  └─gradle
) `/ P" H2 Q8 q3 }0 k1 ]' C    │  │  │      │      └─wrapper& ]$ f( m8 G* t1 u. i8 i
    │  │  │      │              gradle-wrapper.jar' i5 |; U, `: Q( R: _  c- k% u; N
    │  │  │      │              gradle-wrapper.properties
7 U5 K" b6 Z! L/ j- L    │  │  │      │              . F6 f% T3 O; ?3 j, W
    │  │  │      └─ModuleDemo5 x9 h: t! f' ~
    │  │  │          │  build.gradle.kts
! _4 G5 w% P7 n8 N3 m    │  │  │          │  settings.gradle
( ]0 K0 r( {; {    │  │  │          │  " F9 h& r  L& V' c
    │  │  │          ├─.gradle, R- i, K, x& c$ @, I
    │  │  │          │  ├─4.1( X7 j' m1 c; l9 S
    │  │  │          │  │  ├─fileChanges
0 U# F2 I+ }5 \" l: I8 H. J    │  │  │          │  │  │      last-build.bin
5 E6 c1 O' G9 I/ n/ g' Q    │  │  │          │  │  │      
: }- m) b+ j+ V# U, a    │  │  │          │  │  ├─fileContent
) n1 c# y3 V# ]) d2 T( H: M    │  │  │          │  │  │      fileContent.lock  {& G, {" [, K' b+ a
    │  │  │          │  │  │      
1 Y0 a9 }3 M7 b* T( |  }    │  │  │          │  │  ├─fileHashes! C, X3 L! ~3 T  s+ D
    │  │  │          │  │  │      fileHashes.bin3 Y9 P' Y) Q. r- s5 A* l/ i0 h
    │  │  │          │  │  │      fileHashes.lock8 V2 d( B6 d: B) S" d- I0 X0 A
    │  │  │          │  │  │      resourceHashesCache.bin5 ~0 y) I7 V5 X4 X: |$ d8 a  a
    │  │  │          │  │  │      + Q& y8 N8 C* @2 y- c0 P
    │  │  │          │  │  └─taskHistory6 m  D; M( X. Y9 l7 z% q6 V
    │  │  │          │  │          fileSnapshots.bin- q& N3 h/ l/ ?; e) g2 x1 t
    │  │  │          │  │          taskHistory.bin
% D# N5 ^/ r+ s# |) ?3 j( x- X    │  │  │          │  │          taskHistory.lock4 Z# ?5 f% i9 V1 ]5 k9 t- \
    │  │  │          │  │         
! U% }' X2 F3 l    │  │  │          │  └─buildOutputCleanup- i' C4 \1 O% B0 f$ B
    │  │  │          │          built.bin
" G! ?5 Q6 N* T- b    │  │  │          │          cache.properties
/ S/ e0 R0 L+ j. U# ]    │  │  │          │          cache.properties.lock, _6 u8 \, {5 x, C) M3 O  ^; I4 p
    │  │  │          │          & q+ m6 \" y3 Y& [4 a* z+ i' M$ c
    │  │  │          ├─.idea# C8 N( }. p( M- R
    │  │  │          │  │  compiler.xml! m1 W- K& a0 F+ U, J; n) Y
    │  │  │          │  │  encodings.xml
$ i2 W8 ?7 \$ R    │  │  │          │  │  gradle.xml( N, `* M  M: [7 G( ~: H/ ^) D6 S
    │  │  │          │  │  kotlinc.xml- ?" r: V( D# y* n
    │  │  │          │  │  misc.xml
" B7 p+ ?1 C3 R6 ^    │  │  │          │  │  modules.xml! C7 d6 H! g0 {+ D* Y
    │  │  │          │  │  uiDesigner.xml
! C/ o" Y( G$ l- O  Q) T    │  │  │          │  │  workspace.xml
# a1 Y  {  f! ]6 W: U5 U* E: p( S    │  │  │          │  │  
% J; g' x5 Z; I/ {/ p# `7 A; W    │  │  │          │  ├─libraries9 @6 x; r. }) q$ s# D8 Z4 v3 S
    │  │  │          │  │      Gradle__junit_junit_4_12.xml( z9 u3 I6 c: j" t6 `
    │  │  │          │  │      Gradle__log4j_log4j_1_2_17.xml
$ s) A" R+ a1 q/ M% C    │  │  │          │  │      Gradle__org_hamcrest_hamcrest_core_1_3.xml0 M% [3 R- K; H3 T; G
    │  │  │          │  │      Gradle__org_jetbrains_annotations_13_0.xml
' W" T- P, J* p: S" P    │  │  │          │  │      Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_1_3_2.xml* C& F) |0 O' W- D. n. T& u* ^* K9 _
    │  │  │          │  │      
) \' m- v; U& C, D    │  │  │          │  └─modules
' U) C/ Q/ V; N* @2 t    │  │  │          │      │  App.iml# @9 Y4 {8 s) _0 G( h9 i0 g
    │  │  │          │      │  Core.iml
( C( t5 _# d; A/ L/ y# F; l    │  │  │          │      │  ModuleDemo.iml  Z# R' P! f: H5 h8 X
    │  │  │          │      │  ModuleDemo_main.iml
5 c9 n5 ~% s6 O    │  │  │          │      │  ModuleDemo_test.iml3 m" n) j4 k9 T; n6 T4 ?, A0 l
    │  │  │          │      │  Third.iml
  x8 ~0 a6 W& j; z    │  │  │          │      │  3 k/ g6 q3 K9 _$ e6 a" B
    │  │  │          │      ├─App
( J6 b9 h2 G! T1 {    │  │  │          │      │      App_main.iml
& x9 h5 a" g. X: p; m    │  │  │          │      │      App_test.iml
" q' t) h! Y, `) c    │  │  │          │      │      3 ]7 @& x8 R; q8 l* X5 A
    │  │  │          │      ├─Core
$ ?8 a. m2 h6 \! T$ p    │  │  │          │      │      Core_main.iml7 A! x8 I8 Z2 D, X7 n; m& k) W
    │  │  │          │      │      Core_test.iml
$ v5 k% U2 ~: @0 F7 S    │  │  │          │      │      
  Y4 a. L* q8 d3 c* Y    │  │  │          │      └─Third) @+ D, W- Z2 [
    │  │  │          │              Third.iml5 i' N+ p1 f) Z8 C# t; i7 X' i
    │  │  │          │              Third_main.iml
/ |& ?& S7 E" \0 ~: \" x    │  │  │          │              Third_test.iml
* f+ h3 k- L* {    │  │  │          │              9 N( U! Z! K! o& ?0 r
    │  │  │          ├─App3 E4 \/ ]% {1 b& F0 l8 {7 s. e' b
    │  │  │          │  │  build.gradle.kts1 y' U4 q7 {1 z) a) v; w
    │  │  │          │  │  ) z, N- e+ `# m4 Z$ l
    │  │  │          │  ├─build: ~4 ~+ p' \" T3 ^- ?
    │  │  │          │  │  ├─classes: g% _! \# ]4 c1 N2 D
    │  │  │          │  │  │  └─kotlin3 U" j/ V: s# l/ ^% _5 d
    │  │  │          │  │  │      └─main
6 ]+ M, w9 d3 A    │  │  │          │  │  │          │  HelloWorldKt.class
/ A2 _: h7 `7 Z  r    │  │  │          │  │  │          │  4 ^6 ?# _2 r2 Y: B* i4 p! U) i
    │  │  │          │  │  │          └─META-INF6 Q3 a3 u( t8 O! U. X9 Y- i' I4 E
    │  │  │          │  │  │                  App.kotlin_module
" p) ]8 e. v" I" R: d$ ^% a    │  │  │          │  │  │                  . Z2 N, D9 f$ f) N
    │  │  │          │  │  ├─distributions
9 ^% G+ }/ C5 a# z+ ^# b3 ~    │  │  │          │  │  │      App-1.0-SNAPSHOT.zip# i" l! ^9 v) q! L# ~5 P" s
    │  │  │          │  │  │      
$ S3 s/ T- [# ~" j    │  │  │          │  │  ├─kotlin4 t4 b4 }0 L& }! v( \1 G4 o( S4 r
    │  │  │          │  │  │  └─compileKotlin
6 J  R: w: M  Y/ F    │  │  │          │  │  │      │  build-history.bin: ]) E+ h0 l/ z) o
    │  │  │          │  │  │      │  data-container-format-version.txt
' S& V+ K+ `9 A+ i    │  │  │          │  │  │      │  format-version.txt
5 B- R- C5 g: f8 U5 V% F2 s4 h. ^    │  │  │          │  │  │      │  gradle-format-version.txt
- X/ l$ M# H& T5 M* W' I$ b    │  │  │          │  │  │      │  last-build.bin
9 P, G- s8 p0 _6 u2 }+ p' d    │  │  │          │  │  │      │  3 A: W! B( _/ |
    │  │  │          │  │  │      └─caches-jvm+ Y+ r7 h, G: I3 }0 f0 F4 a0 G
    │  │  │          │  │  │          ├─inputs
$ c& y% C! ~( {* }4 W) p    │  │  │          │  │  │          │      source-to-output.tab
, b5 ]& k2 w. Q' a    │  │  │          │  │  │          │      source-to-output.tab.keystream
  _+ V, ]- S9 i6 \1 q  o& n. m0 L. ~    │  │  │          │  │  │          │      source-to-output.tab.keystream.len
: [0 H' \0 j$ g9 }6 v1 J( L7 {. z    │  │  │          │  │  │          │      source-to-output.tab.len7 F7 L3 |8 S$ L$ B) t; w
    │  │  │          │  │  │          │      source-to-output.tab.values.at
2 w  h: [1 I* y# |5 A6 b    │  │  │          │  │  │          │      source-to-output.tab_i( ^# A8 u; _, B
    │  │  │          │  │  │          │      source-to-output.tab_i.len* n+ ?3 `2 S& U4 I6 F9 h! X( A
    │  │  │          │  │  │          │      ( e( ^! }) k6 s/ m
    │  │  │          │  │  │          ├─jvm
5 J8 c* L7 d- ?# N    │  │  │          │  │  │          │  └─kotlin1 ^3 c. P" U4 o  c  R1 c: V
    │  │  │          │  │  │          │          internal-name-to-source.tab
0 _; y# M7 L. b& H9 m    │  │  │          │  │  │          │          internal-name-to-source.tab.keystream
" [: {2 y9 V) ~2 ]3 W    │  │  │          │  │  │          │          internal-name-to-source.tab.keystream.len! u& |7 c4 O2 M4 j" a$ j
    │  │  │          │  │  │          │          internal-name-to-source.tab.len" N$ `9 j5 u' ]4 H0 _. u& B
    │  │  │          │  │  │          │          internal-name-to-source.tab.values.at# @! I9 d0 a! ^" s' G
    │  │  │          │  │  │          │          internal-name-to-source.tab_i
- J0 f  z7 Z7 \9 a: y# w, h    │  │  │          │  │  │          │          internal-name-to-source.tab_i.len
* W6 J3 x5 Q7 r4 H; J& e    │  │  │          │  │  │          │          package-parts.tab
  a2 S7 f. U* c    │  │  │          │  │  │          │          package-parts.tab.keystream2 F8 D6 j+ ?# B( b
    │  │  │          │  │  │          │          package-parts.tab.keystream.len
. v9 U5 c( a. E! V    │  │  │          │  │  │          │          package-parts.tab.len' [* U1 o9 ^" R3 i7 N
    │  │  │          │  │  │          │          package-parts.tab.values.at
2 g7 P' A) U/ Q5 f/ }" `$ P    │  │  │          │  │  │          │          package-parts.tab_i
6 Q- L) Z( `' r0 c% {, T    │  │  │          │  │  │          │          package-parts.tab_i.len# e& X! d/ [2 r3 a
    │  │  │          │  │  │          │          proto.tab3 _* Q& u: C% O7 b, V3 ]) F
    │  │  │          │  │  │          │          proto.tab.keystream' c, L* B/ Z$ Q0 m& F7 c
    │  │  │          │  │  │          │          proto.tab.keystream.len
. B. m% [5 S1 P# u& i+ S    │  │  │          │  │  │          │          proto.tab.len
- N' E5 E" T7 z$ C. v) @7 u9 o: ~% M; U    │  │  │          │  │  │          │          proto.tab.values.at
6 G& R, }* i! r    │  │  │          │  │  │          │          proto.tab_i* ?! K$ U7 t1 e: @5 w* r6 p
    │  │  │          │  │  │          │          proto.tab_i.len
( m. p  v$ u' J% u/ {    │  │  │          │  │  │          │          source-to-classes.tab
( ~, G8 v. q8 K0 p    │  │  │          │  │  │          │          source-to-classes.tab.keystream" v2 |# b2 Y; v* ?. k- e8 ]
    │  │  │          │  │  │          │          source-to-classes.tab.keystream.len
7 q* G3 }0 m& ?9 m% }7 j    │  │  │          │  │  │          │          source-to-classes.tab.len
+ e, G6 e3 ]: `( G    │  │  │          │  │  │          │          source-to-classes.tab.values.at
5 b$ s3 L! q9 U9 L. r    │  │  │          │  │  │          │          source-to-classes.tab_i7 c* X( t  L$ i" _
    │  │  │          │  │  │          │          source-to-classes.tab_i.len
  q) T# p, [, n, H4 b    │  │  │          │  │  │          │          $ m/ H5 e' `. ^, s* v0 i
    │  │  │          │  │  │          └─lookups
# x2 n5 ?, o- _: A    │  │  │          │  │  │                  counters.tab
6 M6 n/ I! ], f0 c5 F    │  │  │          │  │  │                  file-to-id.tab6 t, j, D* ~- Q8 g1 G! j, B
    │  │  │          │  │  │                  file-to-id.tab.keystream: I- T& P# _* L/ u0 L9 K1 C
    │  │  │          │  │  │                  file-to-id.tab.keystream.len
- s. K  a  u( l0 @- B* `5 ]    │  │  │          │  │  │                  file-to-id.tab.len, r' V, v) P* Y% ?. B9 z9 ^
    │  │  │          │  │  │                  file-to-id.tab.values.at8 U: [9 B8 Q; H/ J, w
    │  │  │          │  │  │                  file-to-id.tab_i
* k. N& Y1 o9 n8 T) c    │  │  │          │  │  │                  file-to-id.tab_i.len' P4 u  w9 D/ |8 m
    │  │  │          │  │  │                  id-to-file.tab4 K1 B7 f1 Q9 D: e$ k
    │  │  │          │  │  │                  id-to-file.tab.keystream  }8 ?: f, F* y
    │  │  │          │  │  │                  id-to-file.tab.keystream.len4 G2 ]1 ]% ]: [  `/ s9 t4 S" z
    │  │  │          │  │  │                  id-to-file.tab.len
/ p, l# B/ X% Q! e( i    │  │  │          │  │  │                  id-to-file.tab.values.at2 i" a/ p# n1 z0 n9 l
    │  │  │          │  │  │                  id-to-file.tab_i
4 R5 B1 e9 [6 i- v! `: L    │  │  │          │  │  │                  id-to-file.tab_i.len
! V7 w( u0 J: Q) [8 Q3 h    │  │  │          │  │  │                  lookups.tab
; t- y. ?0 L) \& P! a+ L; m    │  │  │          │  │  │                  lookups.tab.keystream
& @$ w, m9 x" P2 x$ q    │  │  │          │  │  │                  lookups.tab.keystream.len
* G) ^+ L. u9 k3 p  B3 k9 b' M    │  │  │          │  │  │                  lookups.tab.len) \9 [: `! q  Y4 l( I
    │  │  │          │  │  │                  lookups.tab.values.at
( _  x; ]9 ]8 S) [2 E    │  │  │          │  │  │                  lookups.tab_i
) x( t4 q! N/ l/ D6 P    │  │  │          │  │  │                  lookups.tab_i.len
' R( }* O- T+ b$ _* {. G  e- z4 F  w    │  │  │          │  │  │                  . o$ K  g0 A+ f# r4 K% j) r/ g
    │  │  │          │  │  ├─libs
( |3 L% r& e3 v4 [/ D    │  │  │          │  │  │      App-1.0-SNAPSHOT.jar" j7 v( t, o2 t$ B- K  R1 v# P2 z
    │  │  │          │  │  │      - \/ [% s$ o3 a6 L& G2 p
    │  │  │          │  │  ├─resources
9 @- B6 ~7 [: a$ s- N! E    │  │  │          │  │  │  └─main1 }* d4 z4 a* R0 E/ d- q
    │  │  │          │  │  │          log4j.properties4 F, v4 q* e: V
    │  │  │          │  │  │         
$ d! L" w- k' [) W) k1 _, N! K    │  │  │          │  │  ├─scripts
. H* g. T4 I# P) \    │  │  │          │  │  │      App
1 M  y+ M: J6 K# l4 F    │  │  │          │  │  │      App.bat8 a  ?& @$ i8 k, I; m  R
    │  │  │          │  │  │      9 w+ u+ |/ `! U; `: x- Z3 z0 v8 T
    │  │  │          │  │  └─tmp
8 s9 d0 m! a6 {# u* J  C, c    │  │  │          │  │      └─jar
: k- y8 ?" h- i9 s. R    │  │  │          │  │              MANIFEST.MF/ L+ O  d6 u+ v4 j+ J7 _3 G) j
    │  │  │          │  │              
( x' o) Y7 b+ b7 S# J* w! F    │  │  │          │  ├─out$ @; k- S* V0 m
    │  │  │          │  │  └─production
  i# a3 N& v- \( S8 A5 a( a    │  │  │          │  │      ├─classes" ~) n. z4 ~, B: M* E$ K/ u
    │  │  │          │  │      │  │  MainKt.class
6 X: p7 s. q' g2 [  O    │  │  │          │  │      │  │  / j- F: @5 Q. p2 i* Y  f/ n
    │  │  │          │  │      │  └─META-INF1 c. S* n9 {, ^$ }
    │  │  │          │  │      │          App_main.kotlin_module
8 |5 E5 }# P) J# i' k- d    │  │  │          │  │      │          ) x" j5 E. Q8 {5 P) l9 t
    │  │  │          │  │      └─resources! M$ Z" T; I4 F
    │  │  │          │  │              log4j.properties5 r1 c- ]0 V9 e* K
    │  │  │          │  │              , x$ Z- ?: t# o( v. r/ V& @4 ~
    │  │  │          │  └─src
, U4 ?1 t2 b: f, Q* R( \& \0 q! N    │  │  │          │      └─main* m, `7 f  X& \, f3 l
    │  │  │          │          ├─kotlin
- M2 I1 V  @7 t, C5 `) I/ c" i1 s    │  │  │          │          │      Main.kt5 ?  r* K, ~' i. \0 B0 Y
    │  │  │          │          │      
' k! I7 G/ ^8 c) N    │  │  │          │          └─resources
& X1 _7 E; ]/ F7 A# v. x. N; c% U    │  │  │          │                  log4j.properties
% G- G" U7 k/ ^. j4 y    │  │  │          │                  
, t5 P" c/ h9 `, ^    │  │  │          ├─build
9 h8 g, ?: e+ `+ ^% z  p; O    │  │  │          │  └─kotlin-build
. G0 L; C& Q, I0 L$ @    │  │  │          │          artifact-difference.tab% l2 \9 J/ _3 D& H" w: K
    │  │  │          │          artifact-difference.tab.keystream2 z4 c- c* M. G( E" [: H% I
    │  │  │          │          artifact-difference.tab.keystream.len
. {$ k+ F( P% F    │  │  │          │          artifact-difference.tab.len
! w% T6 H6 p0 D& n: j/ \( n- `    │  │  │          │          artifact-difference.tab.values.at) ?- v; Y' N# S! b: n( u
    │  │  │          │          artifact-difference.tab_i
7 y2 g9 I. o( R$ `$ A    │  │  │          │          artifact-difference.tab_i.len! L2 w1 h% r$ l, O( e9 @4 h- K" Y
    │  │  │          │          version.txt
0 \) v8 m& {+ L    │  │  │          │         
2 H5 A2 P# S: R3 q, k6 Y$ Z    │  │  │          └─Core% o: K) [- a4 N1 f
    │  │  │              │  build.gradle.kts
/ q6 T* O; ]# ?  ~    │  │  │              │  ! n3 S( O- K8 F3 f: G- G7 i2 a
    │  │  │              ├─build: E- j3 ^0 ~) q: g' H
    │  │  │              │  ├─classes+ H; e% q7 z8 |6 c
    │  │  │              │  │  └─kotlin
* h( m+ u) T; e    │  │  │              │  │      └─main/ E" b6 |' `" M2 ~, I! y4 N
    │  │  │              │  │              MessageService.class+ S7 E! H* G) [1 T
    │  │  │              │  │              7 \3 ~8 ]2 |" [
    │  │  │              │  ├─kotlin
+ T0 l* z7 s) k" s    │  │  │              │  │  └─compileKotlin
) s0 @! D: v" Y+ x    │  │  │              │  │      │  build-history.bin
! n2 N# ]% ~. ^) `7 p, q! e" _- t    │  │  │              │  │      │  data-container-format-version.txt! g2 s. L6 i; z3 B* `) B* ]
    │  │  │              │  │      │  format-version.txt
' H9 ]1 P/ o) }- L( t2 _) p5 |% l7 d    │  │  │              │  │      │  gradle-format-version.txt
( p' A# ^. o" v0 K3 O& G4 R' N    │  │  │              │  │      │  last-build.bin
# z' @3 O4 J2 V, R) C    │  │  │              │  │      │  
' u  u( y: W8 n) z$ i0 N    │  │  │              │  │      └─caches-jvm
6 P* g7 W$ L5 Q2 I1 N    │  │  │              │  │          ├─inputs
8 v/ W: A; x7 e8 C; ]    │  │  │              │  │          │      source-to-output.tab
) M) C/ r7 E. t5 t    │  │  │              │  │          │      source-to-output.tab.keystream
8 M" S# |. ~% x# U1 \% K    │  │  │              │  │          │      source-to-output.tab.keystream.len
# \, }1 h7 ?. Z3 |5 n! C0 c, }; r    │  │  │              │  │          │      source-to-output.tab.len! [# N4 F$ E2 V. g
    │  │  │              │  │          │      source-to-output.tab.values.at
6 J" S9 r1 ]( u- A; J% {! ?! b    │  │  │              │  │          │      source-to-output.tab_i1 W: T. C, E3 \2 J$ U
    │  │  │              │  │          │      source-to-output.tab_i.len+ k$ E- K6 J! Z" ?7 L6 @/ c% h
    │  │  │              │  │          │      - y+ I( |" q- w# a! Z1 y% v
    │  │  │              │  │          ├─jvm
4 d* ]& k  E, m" v$ d1 ]    │  │  │              │  │          │  └─kotlin
; P7 b4 j& C6 ~  x    │  │  │              │  │          │          class-fq-name-to-source.tab
" ]9 A# B; c: @  J: {; b! J    │  │  │              │  │          │          class-fq-name-to-source.tab.keystream7 A" Q4 G6 u/ U- D
    │  │  │              │  │          │          class-fq-name-to-source.tab.keystream.len5 E; o+ w0 v8 ?( L5 p# w( T: e
    │  │  │              │  │          │          class-fq-name-to-source.tab.len
; y5 n# ^- G9 t  ^5 D; o0 I    │  │  │              │  │          │          class-fq-name-to-source.tab.values.at
$ Q7 {, s9 `% M' Z# s7 _    │  │  │              │  │          │          class-fq-name-to-source.tab_i
5 _3 Q- {$ L5 V; G3 W  E    │  │  │              │  │          │          class-fq-name-to-source.tab_i.len
+ A# }5 l: x! _6 E/ T) Y2 t- Y. {    │  │  │              │  │          │          internal-name-to-source.tab
( s0 H' G- C& R  q3 ~* q    │  │  │              │  │          │          internal-name-to-source.tab.keystream! Q4 V* f% o( Z) E6 U* S
    │  │  │              │  │          │          internal-name-to-source.tab.keystream.len
& N  [8 |, B# c    │  │  │              │  │          │          internal-name-to-source.tab.len
! r3 Z! p  j8 m% w) Z; s4 M% p8 x9 r    │  │  │              │  │          │          internal-name-to-source.tab.values.at
9 r# _* _6 g5 J- K$ \3 o0 m. A  {    │  │  │              │  │          │          internal-name-to-source.tab_i, j9 F0 ^# f7 \0 K
    │  │  │              │  │          │          internal-name-to-source.tab_i.len
  A" {. `: H1 ]* x    │  │  │              │  │          │          proto.tab
- y1 a4 f9 {4 u4 }# ^    │  │  │              │  │          │          proto.tab.keystream, c% u+ Y7 k0 P- l# i9 u  |
    │  │  │              │  │          │          proto.tab.keystream.len
4 {* r4 l( x' k; f' ]  D% _    │  │  │              │  │          │          proto.tab.len
( p! @, L4 z0 C6 }6 E9 K/ d& G7 M    │  │  │              │  │          │          proto.tab.values.at
' o1 \9 X" ]" G) \( i; B7 @/ K$ J    │  │  │              │  │          │          proto.tab_i
3 L$ ]: q* M$ |' W# l- w    │  │  │              │  │          │          proto.tab_i.len
- `4 u' h  _  b4 k5 A1 [4 ]4 g    │  │  │              │  │          │          source-to-classes.tab( b- R* H- h  W2 u
    │  │  │              │  │          │          source-to-classes.tab.keystream% W( H7 o' A+ F0 C1 \( `, C
    │  │  │              │  │          │          source-to-classes.tab.keystream.len
# t( F7 |& k& F6 h/ L5 W    │  │  │              │  │          │          source-to-classes.tab.len
. k" q) R  l7 }( p1 a    │  │  │              │  │          │          source-to-classes.tab.values.at
. T6 \/ y. U# O8 }    │  │  │              │  │          │          source-to-classes.tab_i
: |$ z: {/ `& e2 N6 j+ Y    │  │  │              │  │          │          source-to-classes.tab_i.len/ Q+ _* l0 J! O9 d1 H
    │  │  │              │  │          │         
$ e! J- }0 E) J2 P    │  │  │              │  │          └─lookups9 C/ s) T4 C8 U. E6 s8 ^! v& i& d
    │  │  │              │  │                  counters.tab. S# w1 @" a% m3 v0 {$ Q
    │  │  │              │  │                  file-to-id.tab5 j. ~* W' H% F) [
    │  │  │              │  │                  file-to-id.tab.keystream
/ j" o& W" |* e; U6 B1 g" S! D    │  │  │              │  │                  file-to-id.tab.keystream.len4 w3 t# h1 ]& @) [$ _6 }
    │  │  │              │  │                  file-to-id.tab.len# w( q$ w7 X% L
    │  │  │              │  │                  file-to-id.tab.values.at0 H) c- u9 O! `9 w1 m
    │  │  │              │  │                  file-to-id.tab_i( k/ `1 J0 v+ X- @9 j
    │  │  │              │  │                  file-to-id.tab_i.len
) Y7 j8 L% F+ t9 X    │  │  │              │  │                  id-to-file.tab+ o# Q( U( v+ |% u
    │  │  │              │  │                  id-to-file.tab.keystream! g& P% \0 R' s. \: E0 X' \9 i
    │  │  │              │  │                  id-to-file.tab.keystream.len
. q6 ?- c! y% z    │  │  │              │  │                  id-to-file.tab.len
+ W) f4 Z- m/ }* z; o& x4 A) Z% i. Y    │  │  │              │  │                  id-to-file.tab.values.at
, F# B% V7 B& M7 V1 F3 S    │  │  │              │  │                  id-to-file.tab_i
6 F0 o9 T" `% h# Z/ o" ^    │  │  │              │  │                  id-to-file.tab_i.len
# _' J. O  P/ c8 y% R# a, D! J    │  │  │              │  │                  lookups.tab
) T0 B7 ]' e. s) f, \    │  │  │              │  │                  lookups.tab.keystream
8 `6 m; _; V+ L    │  │  │              │  │                  lookups.tab.keystream.len% r9 M5 D- a3 |, J  a" ^. p' e
    │  │  │              │  │                  lookups.tab.len, ?6 x! E! o0 b
    │  │  │              │  │                  lookups.tab.values.at
3 I. X; h9 T3 x' z+ \- D    │  │  │              │  │                  lookups.tab_i
9 \% |+ Y* M: R* ]5 A6 P; z    │  │  │              │  │                  lookups.tab_i.len: x0 x9 f8 f2 A3 P# l4 j
    │  │  │              │  │                  
5 w- V) [/ f/ w; H: L1 p    │  │  │              │  ├─libs
" Y. ^; K2 w5 w6 a1 {, j! W& q    │  │  │              │  │      Core-1.0-SNAPSHOT.jar
) M, T; [9 j( C' c6 K    │  │  │              │  │      
; E% J9 c" x' `$ W$ J: s    │  │  │              │  └─tmp) l0 P2 V$ \% c
    │  │  │              │      └─jar
2 f8 a4 y# D" N8 r    │  │  │              │              MANIFEST.MF
9 c; ?9 Z* r6 ?  r9 {- Q8 }  @1 \# H    │  │  │              │              
& J, [  f1 c8 a- D( b/ u7 ]4 {" }    │  │  │              ├─out
9 Q' d# D7 a! W4 n: R    │  │  │              │  ├─production1 Z% v; w2 M( ?% b9 `
    │  │  │              │  │  └─classes
) q$ J8 E: k& |6 c  A. X$ p    │  │  │              │  │          NetService.class
2 k- Z+ w3 H0 F0 R    │  │  │              │  │         
/ B2 ]8 f( x9 E: A7 ]7 O" \% P5 _    │  │  │              │  └─test
8 Y! S8 A. |# {9 e" Z" O    │  │  │              │      └─classes
$ ?+ z2 F6 y* u2 \7 [$ H$ i0 \    │  │  │              │              TestService.class) f7 T% t6 @- A! C7 ?+ @2 H) \
    │  │  │              │              
1 C* J+ F0 {2 @    │  │  │              └─src
1 p7 _$ p! Q8 @2 }7 ~6 e    │  │  │                  ├─main
) l* o* n6 W% v3 M    │  │  │                  │  └─kotlin& Z. y& `7 t1 ~, a: f: L
    │  │  │                  │          NetService.kt/ |: [% U4 c7 |2 {# W. k
    │  │  │                  │         
. Z; G* S. w' C* I) T    │  │  │                  └─test" m! A4 L: b; W. N$ b( z7 f4 L
    │  │  │                      └─kotlin
  W* i! O5 A: N' A9 R    │  │  │                              TestService.kt$ P/ Y0 d  p$ F8 @/ H, c& U2 ^
    │  │  │                              
+ E2 J) p. X* _( f1 B    │  │  ├─ppt" q2 M* J1 C  `& ~+ E" Q
    │  │  │      gradle.pdf
5 u( A* \; T2 o0 n1 J    │  │  │      + o# @  a2 _8 Z1 S1 G8 _- G
    │  │  ├─video2 W& S0 Q& u4 A1 z
    │  │  │      info.txt
0 z" v4 }: \! o; d" Q1 ~3 i/ d    │  │  │      " Y" u7 e2 ]9 H9 M8 E/ w
    │  │  └─资料
7 E* T# v% Q6 J& |" U: a6 O    │  │          commons-httpclient-3.1.zip; }0 M. k8 V2 k1 X( \- y
    │  │         
4 a) m* A. Q2 Z+ G0 `    │  ├─day08% F$ Y. x# R0 |/ v! a: }
    │  │  │  readme.md
( r& G4 T) t) h    │  │  │  7 ~3 m' \' N1 j6 O0 E
    │  │  ├─note0 k" R1 t# B5 Q  y. y) v
    │  │  │  │  1.png$ [3 q) _; v4 _. I
    │  │  │  │  2.png
# U  g$ a9 ^: b9 g0 u+ `  C5 y0 n" v    │  │  │  │  git.md0 u" P+ c5 g5 l) ?: j) u2 G  ?8 K' R
    │  │  │  │  
8 R9 p7 h5 G8 Y% ~: U& ^5 i* v* y    │  │  │  └─img6 P! I& o# e$ \% k( ^* s
    │  │  │          1.png
3 P' U8 a) {* y' j% U' H    │  │  │          10.png
+ {( w3 @, m. T# B8 _- ]    │  │  │          11.png2 O# [1 [7 J" T$ \  ]2 L# }7 b! p
    │  │  │          12.png
  [1 J! l, o/ X  N5 t    │  │  │          13.png
# c! Y: v; D  t$ O* _7 }    │  │  │          14.png( e: ^" [/ c9 ~4 X+ W, T
    │  │  │          15.png. }9 m) t* `3 _/ s
    │  │  │          16.png5 e5 H' h, y7 M/ A7 v! L. \/ S
    │  │  │          17.png
& `  }+ P: S5 V0 ~    │  │  │          18.png- u7 \* C/ a- V1 O, D
    │  │  │          19.png% Y; U* F, k/ d2 q
    │  │  │          2.png1 P! D9 S% f/ P" w
    │  │  │          20.png1 A8 Z% |: J2 z& O6 i
    │  │  │          21.png& n  H0 I; m2 D6 O) R' f$ K  [. C
    │  │  │          22.png
1 V7 u) Y" p9 L    │  │  │          23.png- Y& ?3 W# F  i+ I4 L( h& ], j
    │  │  │          24.png
& f: ?7 O! v' V6 y- |! a/ m" S    │  │  │          25.png- c8 ]) ^* v3 l6 d
    │  │  │          26.png; T7 s2 B# M4 C# E9 m  [
    │  │  │          27.png; P+ I+ `" G& i! b
    │  │  │          28.png/ `, u& G1 v2 v
    │  │  │          29.png
7 Q" ], b9 N; R    │  │  │          3.png( W$ r4 P# J* r. ~$ w' I! A
    │  │  │          30.png. Z' p, G1 z' L' A9 b
    │  │  │          31.png) {- k9 h. ~$ a7 r% N$ t
    │  │  │          32.png2 m* L; p1 N4 W& `
    │  │  │          33.png) c+ z3 n! X+ f4 L
    │  │  │          4.png' F" \8 L' u7 t) S, n
    │  │  │          5.png2 I+ p/ X! i, O# d
    │  │  │          6.png5 j$ m; ~* O; h5 X
    │  │  │          7.png
* T. u  F# R8 j    │  │  │          8.png% C2 l- n9 y- z& y! J  T7 C% R
    │  │  │          9.png
- m( J, A/ }7 X' }& f    │  │  │          Linus Benedict Torvalds.png. _" m) `- J1 h& {  U
    │  │  │          ( R4 a& D: s# h  B8 u
    │  │  └─video17 I; q8 M! G- I8 I
    │  │          info.txt
' W& l: m8 L+ Q6 g* x    │  │         
+ ~9 v. W! Z* z  f( C    │  └─day093 E. S( d4 c/ w' ?
    │      │  readme.md6 Z1 z( C2 T% ?4 z5 G
    │      │  & W1 Y% t; c5 }) ?' g7 x
    │      ├─code
, V, k# P+ G* t9 E" f6 Z( y    │      │  └─Coroutines
2 `6 |2 F( q/ r    │      │      │  build.gradle.kts
" i0 x3 h3 K$ x% _/ C) Q    │      │      │  settings.gradle: B" G2 f* v* ~$ U% v5 k
    │      │      │  
2 F( Y' ?3 d& b" v9 ^3 c# A    │      │      ├─.gradle
' L; n8 a# [, V+ R- q* U2 N    │      │      │  ├─4.1
; j3 z1 U3 F# E! V    │      │      │  │  ├─fileChanges% y  q! c/ @; J" @5 ?; |6 w* o
    │      │      │  │  │      last-build.bin7 j# G+ z4 S- |" a
    │      │      │  │  │      
! j; z; j: e! ~4 q8 }; q    │      │      │  │  └─fileHashes
/ J: x4 x9 r1 e, U, _: M. @    │      │      │  │          fileHashes.bin
3 s' }; C6 ^( k. d3 J    │      │      │  │          fileHashes.lock
# M3 C- {. Z" M1 I! w" [# P    │      │      │  │            ]& g! `  y7 \
    │      │      │  └─buildOutputCleanup1 k0 e; J5 H2 ~! w
    │      │      │          built.bin: u: l: y7 t! Y
    │      │      │          cache.properties
- t% P- [" O" I    │      │      │          cache.properties.lock
2 k; f  _1 U, ?! l' k    │      │      │          ' h0 A3 j* a9 F0 ~% @! e) Y- R3 s
    │      │      ├─.idea
! M3 j6 x4 h  G+ X; o    │      │      │  │  encodings.xml3 L; f8 y- ^$ |- y! R/ \
    │      │      │  │  gradle.xml# T( y9 i8 ^. ], s+ r
    │      │      │  │  misc.xml
, j! Z1 `& x9 c9 r) }5 r) t    │      │      │  │  workspace.xml
+ L# ^" p* `$ A9 P' j* u    │      │      │  │  
! R, j3 p7 i% g& I    │      │      │  └─modules
! k  v" a; p$ N+ U' R    │      │      │          Coroutines_main.iml% ?0 w. u, x# E& N3 B
    │      │      │          Coroutines_test.iml
" d$ f- b9 b3 v. F    │      │      │         
4 b0 V7 q& D( K/ h2 W- Z4 E    │      │      ├─build! j. E  A# W9 }6 C
    │      │      │  └─kotlin-build
! c$ n( t7 ]$ o+ B7 p  @    │      │      │      └─caches
. g( }& v: T# M1 r3 p' I    │      │      │              version.txt+ U; u9 |: E- s8 l2 ~# {
    │      │      │              
+ Y6 k+ N5 \* n" z; |$ ]' `    │      │      ├─out8 T7 N4 ~8 c- z+ A* b- B
    │      │      │  └─production
" w7 D& n; [& L' ]5 z    │      │      │      └─classes( J! R. W: S& o/ i1 q
    │      │      │          │  MyRunable.class
$ R9 I& _" F3 `' l3 U% F    │      │      │          │  MyThread.class0 X6 Q4 h* l% f& t: V$ K+ N. Z
    │      │      │          │  _01_第一个协程Kt$main$1.class# Y+ y4 n( i, V% g6 b
    │      │      │          │  _01_第一个协程Kt.class3 o0 h; P6 g! a9 K' h
    │      │      │          │  _02_协程打印数据Kt$main$1.class$ @( w% t  `' [+ Q
    │      │      │          │  _02_协程打印数据Kt.class# ~7 q+ e( D% o
    │      │      │          │  _03_launch的参数和返回值Kt$main$1.class
/ @2 F0 `- G5 b' [5 X# E$ y* V1 F    │      │      │          │  _03_launch的参数和返回值Kt.class
' p1 y1 @3 c* A+ v    │      │      │          │  _04_ForkJoinPoolKt.class) {6 _- x; w$ X% s. p- W
    │      │      │          │  _05_协程启动之后的处理Kt$main$1$job$1.class
; q4 Z  j! |9 F* ~, d  f" h    │      │      │          │  _05_协程启动之后的处理Kt$main$1.class; a) V& d4 U7 ]: `, H
    │      │      │          │  _05_协程启动之后的处理Kt.class
* B  s1 a7 u' b* ?& n4 z    │      │      │          │  _06_协程实现原理Kt$main$1$1.class% n( |$ A* h- _# U& H
    │      │      │          │  _06_协程实现原理Kt$main$1$2.class
" c% W7 p) f7 T4 p3 I    │      │      │          │  _06_协程实现原理Kt$main$1$3.class, `2 m4 w  u, T& G2 v
    │      │      │          │  _06_协程实现原理Kt$main$1$4.class
! c: }# u% A4 A: n$ f( a2 _    │      │      │          │  _06_协程实现原理Kt$main$1$5.class& a9 ?! |/ k  X+ }/ R
    │      │      │          │  _06_协程实现原理Kt$main$1$6.class
- H) G0 S1 E" C8 B3 C- p    │      │      │          │  _06_协程实现原理Kt$main$1$7.class
) Z* [) _( ~/ h4 F    │      │      │          │  _06_协程实现原理Kt$main$1$job$1.class
0 j5 g5 p  R3 x- H/ K# C3 l    │      │      │          │  _06_协程实现原理Kt$main$1.class
' {" g1 d0 v3 d+ A$ H- d0 j5 h    │      │      │          │  _06_协程实现原理Kt.class. N  L& A) |5 a8 }
    │      │      │          │  _07_挂起函数Kt$main$1$job$1.class! O$ Q  Y) @% |  ~5 t
    │      │      │          │  _07_挂起函数Kt$main$1.class
* m& a7 D" ?* k" @4 k& }5 S7 N- D    │      │      │          │  _07_挂起函数Kt$myTask$1.class
8 s3 T4 G* k) Z4 b    │      │      │          │  _07_挂起函数Kt.class
% r/ o, Q) w& p  D  P6 e    │      │      │          │  _08_线程和协程效率对比Kt$main$1$coroutinesList$1$1.class+ K) z4 f7 I0 l- h  @
    │      │      │          │  _08_线程和协程效率对比Kt$main$1.class
& [9 l' l% e+ T    │      │      │          │  _08_线程和协程效率对比Kt.class
7 \" w& c! Y. l: j    │      │      │          │  _09_协程的取消Kt$main$1$job$1.class) ~, ~# U! _# k- g) y2 v
    │      │      │          │  _09_协程的取消Kt$main$1.class
0 [" J! s! B: W. c    │      │      │          │  _09_协程的取消Kt.class$ C4 q0 J* l* n: R) e! k
    │      │      │          │  _10_协程定时取消Kt$main$1$job$1$1.class
7 ?/ ^4 y5 k# E0 N4 L, x& k4 r    │      │      │          │  _10_协程定时取消Kt$main$1$job$1.class% _2 \3 f- U7 b' G* R+ I4 x/ D9 ?/ K
    │      │      │          │  _10_协程定时取消Kt$main$1.class( J6 e  o2 G, [1 A3 h
    │      │      │          │  _10_协程定时取消Kt.class
% R% C) y9 z' J- P3 A4 W    │      │      │          │  _11_协程取消失效Kt$main$1$job$1.class! j0 L1 h7 u" S6 E
    │      │      │          │  _11_协程取消失效Kt$main$1.class# W4 @$ A( ^# C9 B6 h
    │      │      │          │  _11_协程取消失效Kt.class
/ \" Q: k: U' E0 v0 H    │      │      │          │  _12_协程取消失效解决方案Kt$main$1$job$1.class# @$ u9 T4 D: ]/ w3 y; z: o" K- L
    │      │      │          │  _12_协程取消失效解决方案Kt$main$1.class$ ?# u: Z% _4 N6 Z
    │      │      │          │  _12_协程取消失效解决方案Kt.class' c" S8 g1 W1 _; g5 D6 z" H( H
    │      │      │          │  _13_协程启动asyncKt$job1$1.class
1 C7 j- P" |8 V! o) |7 A    │      │      │          │  _13_协程启动asyncKt$job2$1.class; J; K  P9 _1 b: ^$ r
    │      │      │          │  _13_协程启动asyncKt$main$1$job1$1.class
, q' [) x! X- U- v9 k5 W6 R5 T% w    │      │      │          │  _13_协程启动asyncKt$main$1$job2$1.class( }5 }4 h$ y5 Q
    │      │      │          │  _13_协程启动asyncKt$main$1.class  a  ~+ b: X  m  @5 c3 Q4 C
    │      │      │          │  _13_协程启动asyncKt.class
7 t% D7 F, x6 T, R    │      │      │          │  _14_协程上下文Kt$main$1$job1$1.class; P0 n5 d5 P: S/ o
    │      │      │          │  _14_协程上下文Kt$main$1$job2$1.class8 ~! q$ g8 w3 l/ w/ W& H
    │      │      │          │  _14_协程上下文Kt$main$1$job3$1.class5 O5 l& H/ O7 D8 \$ G+ p1 }
    │      │      │          │  _14_协程上下文Kt$main$1$job4$1.class' ~% ?6 W: q, d) C2 D! Y+ z* B; \; U
    │      │      │          │  _14_协程上下文Kt$main$1$job5$1.class
' Z+ K# R8 P9 e7 P$ h( j0 e9 t    │      │      │          │  _14_协程上下文Kt$main$1.class, M& R/ b8 V: |* K& m
    │      │      │          │  _14_协程上下文Kt.class
0 ]( b' C8 h7 F: Z  B    │      │      │          │  
$ q% f/ h, }7 d! o: G! h9 [    │      │      │          ├─META-INF
) V: \. ^0 `, |" n2 z+ e    │      │      │          │      Coroutines_main.kotlin_module
) X1 L( X( @7 ~. H3 Z    │      │      │          │      + i1 s* b0 g2 i; m5 s( c% P
    │      │      │          ├─守护线程% ^. |) n. [  }' u- i! V! B
    │      │      │          │      Main.class. R9 d+ h" x: ~2 u4 H
    │      │      │          │      MyThread.class
" O- J+ |& s/ D; w) S6 ^( P' J    │      │      │          │      * F  Y; w/ m2 @: @; ~2 j! g( B
    │      │      │          ├─线程join
1 J/ [9 g+ Z( [5 P9 U" i    │      │      │          │      Main.class
0 Q$ K8 l1 L$ j! W7 G; `    │      │      │          │      MyThread.class1 [$ r0 R/ E( v
    │      │      │          │      
+ ?( u8 V( `) n9 M    │      │      │          ├─线程池
1 U$ r) |( e6 v2 \8 B( I4 s    │      │      │          │      Main.class
. S, v9 o) _- I4 D    │      │      │          │      MyRunnable.class
! W4 N6 K* T4 C8 p  [0 r+ Y- F    │      │      │          │      6 [! \& k, T8 K, n5 u) G' y6 x
    │      │      │          └─线程的创建
$ T4 ~' e1 c- B9 u; O% D/ J    │      │      │                  Main.class8 M" [1 @7 I# d; E: K
    │      │      │                  MyRunnable.class
# ]: @$ ~& V6 ^3 }" g5 N3 H    │      │      │                  MyThread.class
3 s1 ]% E% ]* }( l5 ?9 E    │      │      │                  TicketRunnable.class
+ D9 ?; |9 |7 r, C: w# i% g    │      │      │                  TicketThread.class( v9 o3 v9 m' s  k2 N2 m5 \3 f
    │      │      │                  - Y$ z( [. E* j1 E8 X' U
    │      │      └─src
3 [/ t3 ]+ N6 K; M( K  G    │      │          └─main
& x3 K) h5 e* H5 Z/ j3 ~8 a    │      │              ├─java$ \9 i6 t) i7 I7 J6 J8 O
    │      │              │  ├─守护线程
) X0 l9 V7 }' x: }+ m8 ~& \' s    │      │              │  │      Main.java- ^* p4 ~# M( y' M# l- V: ]
    │      │              │  │      MyThread.java7 g' R( R+ H* Q  `- O2 _8 E. e7 w. K
    │      │              │  │      
8 f4 v: {8 K4 X5 w4 X    │      │              │  ├─线程join; B% F8 _+ x1 ]4 M+ h
    │      │              │  │      Main.java
; L# ~1 c1 n  H# z9 w    │      │              │  │      MyThread.java2 G  T2 O1 V6 ^  t  t) e
    │      │              │  │      
1 W) `3 b- D1 F2 I; W    │      │              │  ├─线程池
: A. P7 |  R3 t7 k$ ?    │      │              │  │      Main.java' \# o! x! B( k4 X& X
    │      │              │  │      MyRunnable.java
: E4 l: w1 P6 o# ?8 E    │      │              │  │      
5 D0 z% [  G; L$ U1 R1 D    │      │              │  └─线程的创建
# k! T( k8 t$ T/ ?    │      │              │          Main.java
* z( s9 B9 @! ]+ H; X    │      │              │          MyRunnable.java, R7 b! ~1 \* ^( L
    │      │              │          MyThread.java
. `' j& K  O: \. y3 F7 p    │      │              │          TicketRunnable.java) Z/ M: x3 n7 |3 }$ y
    │      │              │          TicketThread.java
2 d0 `6 Q$ {3 V& O$ I    │      │              │         
' ?! w  o. }8 x7 l8 _    │      │              └─kotlin
' }; F; m0 j% W# T  L% ^  S5 R    │      │                      01.第一个协程.kt# @. n2 ?6 C1 Z( S! z! C
    │      │                      02.协程打印数据.kt, s" v, O- y0 G' A. Q
    │      │                      03.launch的参数和返回值.kt$ t% C, h. f3 x' g
    │      │                      04.ForkJoinPool.kt  J* `, _0 t# M$ A
    │      │                      05.协程启动之后的处理.kt
6 g5 J" c6 h* k* g4 x    │      │                      06.协程实现原理.kt% `; d6 q! b3 R  X9 W5 p6 r; `
    │      │                      07.挂起函数.kt* v; }4 J' u6 B8 v
    │      │                      08.线程和协程效率对比.kt' V+ o# M/ \- K) _& ]5 @
    │      │                      09.协程的取消.kt7 Q1 ^1 @0 ]5 a2 p7 y1 Y6 ^
    │      │                      10.协程定时取消.kt
8 q0 {) K9 Z8 v+ f) G    │      │                      11.协程取消失效.kt. i3 k: ]5 ?6 N
    │      │                      12.协程取消失效解决方案.kt5 @9 Y( l3 a- F0 Z9 X" W
    │      │                      13.协程启动async.kt
; c  r6 i7 F( [9 r    │      │                      14.协程上下文.kt
1 V& ?* b' t4 o1 ]    │      │                      ) y& ~( f/ o4 X8 @7 i
    │      ├─ppt
( V$ o- D: F! p- z2 j' x    │      │      协程.pdf# H7 E4 y: A* |- F( O9 }' k+ y
    │      │      线程和线程池.pdf: [; j2 E' F: I, {. k8 C
    │      │      ( s4 S: U# G! k! Y2 ]( z
    │      └─video, s$ |* l* c2 c5 M. d
    │              info.txt
, F) r" R8 k$ v, z) v( S    │              . n# y" Y  m. i) ~8 X* r' V
    ├─03_第二阶段-前端开发基础4 v0 L1 u% S% l" n7 S0 a
    │  ├─day01_HTML" c# Q! J% c% l0 T- p+ l
    │  │  │  视频下载地址.md
4 y( k, `$ V4 @; b6 H1 A    │  │  │  
/ M& F" V" a  {" n8 n. w% o. `    │  │  └─代码
" C0 n: c5 a2 F; J2 D* D    │  │      └─BC01" J% G# w/ }4 h4 J/ R4 a* w% z: \
    │  │          │  .project& ^8 z) T; ]. g" n
    │  │          │  demo01标题标签.html  A. P6 k0 i9 R" Z
    │  │          │  demo02_字体标签.html
5 U; h' o7 p; @4 w/ ?8 C0 g4 {    │  │          │  demo03_其他标签.html
& o/ m# s. |( ~, V% ^    │  │          │  demo04图片标签.html
6 S& p% h6 k4 B) S% Q* p    │  │          │  demo05程序猿.html
! Q9 M+ G7 n: I    │  │          │  demo06列表标签.html
) ~1 e% Q( r7 P! c    │  │          │  demo07a标签.html
; F$ z6 U: G' D3 P5 B$ }" W; p    │  │          │  demo08友情链接.html
* d+ i2 {. }* _& ~9 S: n    │  │          │  demo09回到顶部.html
. Y0 F0 V$ ?9 O, R2 Y1 A    │  │          │  demo10表格标签.html
5 t6 c- u( M9 E! I0 |    │  │          │  demo10表格标签2.html
5 L0 b( ^; x  }4 B# F5 c    │  │          │  demo10表格标签3.html
$ t& S/ ~' ~5 K! Y: r- E    │  │          │  demo11表格行列的合并.html
5 t1 a, [2 b' `, W8 p9 q9 z: }3 [    │  │          │  demo12_bottom.html) N* V0 E, y) w& o5 w
    │  │          │  demo12_left.html/ R! f( W8 W- T# [1 N
    │  │          │  demo12_top.html$ t. p4 z/ h& e1 b3 |3 R
    │  │          │  demo12框架集.html
. t# J+ ]5 P9 D/ j    │  │          │  demo13表单标签.html4 C! u' ?3 ^, S; G! n1 x
    │  │          │  index.html# c( ~/ a3 \+ _" e, u$ E
    │  │          │  
. b2 S0 v1 y& y: x    │  │          ├─img6 R3 t4 @9 v# S. u5 k1 I
    │  │          │      1.jpg
* k& q9 U0 V& E& N; j: Q4 P4 g    │  │          │      2.jpg
6 z* g# `! O) e    │  │          │      3.jpg0 O* B3 J' K0 _
    │  │          │      a001.jpg
* f2 }3 u9 ^  N3 H$ i; [    │  │          │      ad.jpg
. d8 R0 _3 j6 N- T    │  │          │      bartlesvillecf.jpg
7 {0 x$ x6 B6 o    │  │          │      big01.jpg/ K( [5 V% R" x# @
    │  │          │      click.png
- C5 w2 x: M+ C2 n3 ^8 U    │  │          │      emancipation.jpg
8 d2 H- ?. R3 M# Q& w8 X# |: A( l    │  │          │      footer.jpg
, \+ S4 O9 A1 V2 Y    │  │          │      header.jpg6 P9 K9 T  p! l+ R  |. T* z# ], K
    │  │          │      header.png5 d2 U) P5 \9 t* G5 t% P& h* @
    │  │          │      logo.gif
  Y8 B* R5 D" y! r) l. p    │  │          │      logo2.png$ H. N; ^) m+ k1 {
    │  │          │      logo6.png! V! _% |* m7 o+ X" n! y
    │  │          │      middle01.jpg: S# ]: s* t5 _; x2 C, Z. ]) E
    │  │          │      okwu-athletics.jpg- ~& a- s9 e1 {, D$ }9 ~9 X# Y
    │  │          │      okwu.jpg0 k) R. F+ q# V2 _
    │  │          │      regist_bg.jpg6 y% F8 y. t* T& Z6 f$ [+ u
    │  │          │      small03.jpg
& m% s- P( X$ q' R# W    │  │          │      small04.jpg2 \! L1 b9 M+ V! c, X
    │  │          │      small05.jpg, J5 \: t3 Q7 d9 w1 c% n
    │  │          │      small08.jpg; }* P3 e. {/ {. s
    │  │          │      title2.jpg1 M  _* V9 W% V; l, n& q
    │  │          │      
: I, I, `% S/ I( X. w+ a1 {' [: L    │  │          └─path1
5 B0 {! W6 T& Q7 b* e    │  │              └─path2
& z' K- M9 `) Z6 V    │  │                      demo04图片标签.html. V/ L' h2 G4 @' Z3 y
    │  │                     
6 u2 y$ r6 k7 a( c    │  ├─Day02_CSS
( c) V) z: d; J  R3 N    │  │      视频下载地址.md
9 l. P. }: Q) j4 o2 Y" \( a. c    │  │      # [9 L% f( J! A. P- G# ?
    │  ├─day03_JavaScript
( b" U4 v9 e9 U8 }    │  │  │  视频下载地址.md
/ P* h$ B/ V0 C" U    │  │  │  
7 ?0 a0 U4 N! r/ Q: w    │  │  └─代码9 b4 f( }* U. \6 E
    │  │      └─BC03
" t7 z8 l  L% G  Y% Z: B    │  │          │  .project8 o. M, X) i! x& G! t
    │  │          │  demo01.html5 t% L8 Q3 ~6 x: v7 M% [* q
    │  │          │  demo02语法.html
3 t& @, ?# B) I  v: M' x    │  │          │  demo02语法2.html
1 ]! F; _( U& H$ h5 p6 ~: ]+ Y    │  │          │  demo03声明变量.html
  s/ @6 ]" }/ b; n( n( {- N) ~    │  │          │  demo04数据类型.html
8 l4 C7 y: J/ v% b3 C# a3 i    │  │          │  demo05运算符.html! g6 R: \3 N3 T: m( F9 B- r
    │  │          │  demo06流程控制语句.html
& c) O# E0 f0 K/ K7 C7 E( Y    │  │          │  demo07函数.html1 o5 q# S# B( b6 m# f
    │  │          │  demo08函数的绑定.html4 j/ Y& R( w. o3 t6 W6 f/ ~8 f/ L
    │  │          │  demo08函数的绑定2.html
) |6 G- l' [) G5 D. u5 n3 N3 m3 m    │  │          │  demo09数组.html
* H( N" R3 t' v9 w* o5 m( P    │  │          │  demo10正则表达式.html, ?+ `4 O- e3 ?% C. u
    │  │          │  demo11日期.html
" d5 Z1 w: P+ U    │  │          │  demo12元素的查找.html9 J  q& L& n! _4 d3 A/ C& {7 q
    │  │          │  demo13CSS样式的设置.html$ s/ Y7 ^; z' Z' o. \9 u
    │  │          │  demo14内容的获取和设置.html
2 t, ~% V2 q) J: D    │  │          │  demo15属性的设置和获取.html& O3 T: N/ D, F. A; `1 J; O
    │  │          │  demo16鼠标事件.html' g! _& }3 D* Y; ]" z1 P; f% u
    │  │          │  demo17输入框相关的事件.html; D* E8 y' k+ P" e. U2 ]
    │  │          │  demo18表单提交事件.html. R8 C2 c7 J+ S, x
    │  │          │  demo19onChange事件.html$ I( L$ U8 A& O! M6 e" n$ T
    │  │          │  demo20键盘事件.html
$ \5 |) U6 e4 k1 W4 Q, w* W7 Y" W- ?2 Y    │  │          │  index.html
! K) x5 K/ t/ I9 f% }% H    │  │          │  6 S, w+ G4 d9 a2 B0 d" r0 e
    │  │          └─js
0 t, P  q8 X1 c* c  K9 v1 \" K    │  │                  demo02.js
6 e9 |/ m  Z3 a* S% V    │  │                  ( \  ?; I1 T7 n, z% X
    │  ├─day04_JavaScript
# y2 _4 \& ?+ n; P9 D    │  │  │  视频下载地址.md% g% l. }9 {9 _- E0 n% @
    │  │  │  
2 `% B. s+ z/ i: v( D  o    │  │  └─代码
2 o8 V9 M' a7 d* R- m    │  │      └─BC04* H9 l, `4 y" a. ^( T' l1 ?
    │  │          │  .project) ~  n4 j3 f7 `9 n/ M2 j
    │  │          │  demo01Confirm.html
- @) _# f% Y7 E    │  │          │  demo02prompt.html6 A- b8 ^, S+ @8 ^' B, ]$ v
    │  │          │  demo03打开关闭窗口.html
- @. c  _6 c" r5 J, S# L! U! g    │  │          │  demo04定时器.html
5 ]- C  f3 T6 Y1 E  D2 {    │  │          │  demo05history.html
3 [* ?: }0 t, B9 Y    │  │          │  demo06location.html
' G( v$ `8 X& M& T# W5 Q/ j    │  │          │  demo07案例1待办事项.html! ~  v; g! K9 q( i: F/ l/ C) g. \& J1 W
    │  │          │  demo08案例2记事本.html, k; m0 i+ A% c, u3 u  c
    │  │          │  - N, N: i! r" A8 @/ z( h: y
    │  │          ├─img% J4 \$ e* f4 D0 T- X
    │  │          │      1.jpg
2 D$ X) M0 S& V7 ^    │  │          │      2.jpg
1 O+ S* e1 n5 s- D7 O2 U    │  │          │      3.jpg
2 e4 p( {5 l, [! c    │  │          │      ad.jpg+ W# P6 x# |) I$ T7 q! q; M' b
    │  │          │      ad_.jpg8 U/ }/ y3 }. c$ W( ^; Y- \: j
    │  │          │      big01.jpg
6 D' J$ s# v. r/ V: F    │  │          │      footer.jpg
, t0 @! D  A" L7 w& K    │  │          │      header.jpg
1 c! [% k, `) ~! l9 d    │  │          │      logo2.png
- a1 f5 T& M+ ]1 G    │  │          │      middle01.jpg3 b2 t7 Q& t5 l
    │  │          │      regist_bg.jpg! u) {/ r% d! A, j; _4 e1 F2 c7 R) C
    │  │          │      small08.jpg/ R( }9 Z& B7 j' V7 ^9 N2 u
    │  │          │      title2.jpg% |) N6 R: a5 s3 j: A5 w4 q' e
    │  │          │      
+ j9 [$ Q: X9 q! \    │  │          ├─案例1-注册页面校验
  b  q9 @  T$ q& t* G/ F    │  │          │      案例1-注册页面校验.html
& H5 l2 K9 t' w4 j; w5 H4 p  Q    │  │          │      $ K! b& P7 F& p, O' Q% f, d( x9 b# @
    │  │          ├─案例2-轮播图
- Q. k( f% _9 a/ x2 L! N  r    │  │          │      案例2-轮播图.html3 e7 w% `' j( O
    │  │          │      4 s( Y+ B% n7 H. v
    │  │          ├─案例3-弹出广告
/ C! p; B6 C1 t/ [: W$ @9 ?$ K* m  Q    │  │          │      案例3-弹出广告.html
# Q4 S0 V% F. X6 l; Z3 j    │  │          │      
" F* Q; F! \) P9 F: S    │  │          ├─案例4-隔行换色
9 K4 R. J6 U1 T6 A0 u" u& |: \    │  │          │      案例1-隔行换色.html
3 {) r, F0 X9 D! Y3 Y    │  │          │      
: ^# h7 @9 X( s$ v    │  │          ├─案例5-全选全不选) I. z5 W- E3 M# c% ]3 R
    │  │          │      案例2-全选和全不选.html
3 U$ U% j; g8 X* \  q3 x8 y3 h    │  │          │      ( l* g" x& r: b$ Y
    │  │          └─案例6-省市联动7 r0 `0 W/ e4 o* s" Z2 B7 @; z$ |
    │  │                  案例3-省市联动.html9 Y1 ]1 e/ O- |1 @; }
    │  │                  , E' D" V2 @5 ^4 |
    │  ├─day05_jQuery! O& t5 A6 s& ]/ ^# q( X- B
    │  │  │  视频下载地址.md
4 n1 V0 p% H. k8 \    │  │  │    B. r  ?# ]8 ^
    │  │  └─代码. O) N; i6 i: F- U: F5 r6 ~
    │  │      └─BC05& R7 k, b7 h2 ^) k% B* w0 Z
    │  │          │  .project
4 A- n/ c% O  V% A4 a1 P) s) G    │  │          │  demo01效果.html
. L: Y  Z( X7 q4 X    │  │          │  demo01效果2.html+ C2 q0 M+ p, \& }% ?. W% ]
    │  │          │  demo01效果3.html! T' F& T5 u( l: f/ [$ O+ s- k
    │  │          │  demo02基本选择器.html
. J( p* ^, M# ~    │  │          │  demo03层级选择器.html
6 p0 J: \9 u" s( X9 [) g3 Q+ G, m    │  │          │  demo04后代选择器.html
: c) J* D) q9 G    │  │          │  demo05后面的第一个兄弟节点.html
* E* v& B9 D1 Q+ W) L    │  │          │  demo06后面的所有兄弟.html
: \# X$ _1 N/ j7 _1 \0 Q    │  │          │  demo07筛选器.html
4 R5 R7 d* p1 Y2 _    │  │          │  demo08内容过滤.html.html
2 m2 K0 s" z. q' G    │  │          │  demo09可见性过滤器.html* u' F& R8 A7 i1 ?
    │  │          │  demo10属性选择器.html
" ^6 W3 a3 O: W- s" R    │  │          │  demo11表单选择器.html1 c7 K9 _& y) C9 E$ y
    │  │          │  demo12CSS属性.html
; ^3 s1 `( r; d1 f1 O    │  │          │  demo13属性的操作.html
. x! O: g, g4 _; e    │  │          │  demo14遍历.html  h4 }/ q  f; Z5 [
    │  │          │  demo15操作元素中的内容.html+ Y  ]+ X! U, W0 Y' d
    │  │          │  demo16文档的处理.html/ {# t! j" `& }6 y' x' c' e; |' ~/ R
    │  │          │  demo17表单对象的方法.html5 T5 E: K' k. d6 {9 E
    │  │          │  demo18hover.html
) [9 D+ K' M# m: E    │  │          │  ) @  S& T( Q5 u( d% U' `3 \
    │  │          ├─img9 v3 E9 S& t+ _: O
    │  │          │      AssassinsCreed013.png
: m7 E! Z3 ?4 R4 K1 d6 m, f5 {    │  │          │      
- Y3 X; Y; R0 q; b: V* x    │  │          ├─js# O, }  b  j2 j2 w7 ~4 u
    │  │          │      jquery-1.12.4.min.js/ g. F4 b; l. R1 ]7 b
    │  │          │      1 R# J8 g, Q) Q  I$ K
    │  │          └─案例1-入门" v6 m8 T0 M  Q: R% h" k
    │  │                  01-获得jQuery对象.html/ H- \8 o# x6 G( X: g4 T) U+ k- u
    │  │                  02-DOM和jQuery对象的转换.html1 {! I) {8 M. e; \0 U8 N: x
    │  │                  03-页面加载.html% V" r; J) ]7 v. t8 h1 t
    │  │                  04-事件绑定.html
4 @" E2 f7 f/ |& Y9 J( s/ {4 n; A    │  │                  05-常见事件.html8 v% C; w4 x- h
    │  │                  
+ X3 P0 P3 k. m  p3 |* d7 \* u+ V& n    │  └─day06_jQuery6 E9 G. T4 I2 T9 A; w6 L1 ]& u
    │      │  视频下载地址.md9 q9 j* Z( d3 K" r% R, G9 N  N
    │      │  
' s2 M2 d- J) h    │      └─代码
. ]( M8 g) I  `$ z" `    │          └─BC06- M# a! {7 Y  r0 i/ g
    │              │  .project
4 d& ?+ \- ?6 j+ G/ x* }% ?    │              │  index.html  K, h3 a4 h) ~1 H
    │              │  注册.html
3 ~7 R+ \+ [5 X9 L# y# [    │              │  百度地图.html
6 ^. z( K$ Q$ X* ~6 Y+ x+ d$ e' ~1 v    │              │  省市联动.html
! Y" x  ~4 o- i    │              │  输入提示.html
1 |. s7 D1 ?+ j9 q8 t; U    │              │  - W* S5 n; o: }$ [" R1 G
    │              ├─css. h) w9 k! x% _3 t5 }4 w% |
    │              │      city-picker.css+ `5 E- a3 I4 L: g$ Z
    │              │      
% w+ x+ R. s3 a: H$ b3 |    │              ├─img
  b/ g9 D/ @! a, M! i    │              │      1.jpg  I7 D4 n6 ~" r( q
    │              │      2.jpg+ G/ R2 U' W4 R% b& Q$ c
    │              │      3.jpg
7 V& t$ ~" S: ~% b0 a4 w3 X    │              │      a001.jpg% b, X( ?. i: m
    │              │      ad.jpg$ f# a( {, x. \5 o
    │              │      ad_.jpg1 B6 g2 g$ l! o. _  ]& W
    │              │      bartlesvillecf.jpg2 E9 P+ L; Y: c' Y# e( d* Q, v
    │              │      big01.jpg8 D, b' m( K: A2 m9 V0 A8 F4 ]
    │              │      captcha.jhtml.jpg) `; [5 V) b, N
    │              │      click.png/ Q7 k, Z- E9 `
    │              │      drop-arrow.png
( k" I6 e/ S0 x2 e0 {    │              │      emancipation.jpg
9 z+ m+ P9 M: Y/ ?8 ^: E* ^3 Q- ?    │              │      footer.jpg
  s2 ]% l: K& E+ J  [    │              │      header.jpg6 ?$ F1 L9 j/ K  X( a0 s+ v1 }
    │              │      header.png
. ]# \+ d! s8 O) V9 U    │              │      logo.gif
6 N+ k/ a9 H* [4 U0 x! T9 b; r    │              │      logo2.png
' [: H; W3 R' z" b    │              │      logo6.png3 }% p, J" ~: f/ k$ C+ Z) N' Y
    │              │      middle01.jpg6 `& Q9 l. X5 B
    │              │      okwu-athletics.jpg/ `0 W- ~: o8 ]0 U1 F' I" o" [
    │              │      okwu.jpg- O+ ~2 c1 I2 ?  C5 B# {
    │              │      regist_bg.jpg
1 L, Z2 ~( t+ q0 R    │              │      small03.jpg; _! K7 W, ?# ~# d" X4 T8 C
    │              │      small04.jpg  V- f+ a9 ^5 B. u
    │              │      small05.jpg
5 C7 O; m# a/ u7 W2 {' W4 e    │              │      small08.jpg
" |) p9 r. B: @$ H, w6 {6 Y    │              │      title2.jpg
& Z# B) D) j! X    │              │      . a# n. z7 Q* G% Y& q
    │              ├─js
+ c, ~. n; S6 L! g; G& n    │              │      city-picker.data.js
2 }6 G% B8 B  J6 v( t  m, ]0 J    │              │      city-picker.js# Z7 U% M. j( `8 x& B
    │              │      jquery-1.12.4.min.js
5 p4 K) d  F& r: v    │              │      jquery.validate.js
/ b  Q  p2 R! ^    │              │      messages_zh.js
$ o1 G$ G: M# O    │              │      
' h& a7 l3 |8 d2 O( ]    │              ├─案例1-注册页面校验6 \# n0 ^. S$ M0 \
    │              │      案例1-注册页面校验.html) }9 N1 \& V3 m- I
    │              │      ' o' t) O' o4 I+ n: N
    │              ├─案例2-轮播图+ \& v  v( _) {8 D7 G8 G- x
    │              │      案例2-轮播图.html1 D0 C) x; M% n* p3 \0 Q9 F" ?2 L& N
    │              │      0 Y$ o% _; W6 Z
    │              ├─案例3-弹出广告
% b9 w3 v9 _( y8 S    │              │      案例3-弹出广告.html2 G3 q- ^0 S, F- Y- S9 M" l" N0 A
    │              │      案例3-弹出广告2.html
6 I  K4 y$ W2 D7 ?    │              │      - G. {+ k7 ~% Q- C& T$ f
    │              ├─案例4-隔行换色2 {# O& U: Y4 t2 [- j2 ]
    │              │      案例1-隔行换色.html
$ [/ f5 b+ Q' \* x    │              │      0 V2 @; d# l/ y; S3 i% Z
    │              ├─案例5-全选全不选
( J/ m/ G+ _5 c' e& y+ _7 G    │              │      案例2-全选和全不选.html) q- z) }3 @/ t% b; [
    │              │      
; Z* i7 K1 K6 `  v8 C    │              ├─案例6-左右选中
( M+ E+ E( o0 e    │              │      案例2-左右选中.html0 c  T- F! h+ R2 q* M" |0 i
    │              │      ) o) q% ^' y9 w, D6 p4 g
    │              ├─案例6-省市联动
. K) Z8 |+ R1 W) X9 p" Q6 C* Q& u    │              │      案例3-省市联动.html  t! L3 m) G& K. Y; r5 f* y
    │              │      ; X+ w9 s  H) n+ Q, j7 F8 q' R
    │              └─案例7-表单校验& z/ W/ }/ u# Y* N) D& B
    │                      validate使用.html: {( r& j& o& B, K& }! k
    │                      案例3-表单校验.html6 H9 z3 e3 ^# W- b: D
    │                      ) H' ?( C4 I# S' x5 U6 b( X
    ├─04_第三阶段-Java分布式#springboot#springcloud#微服务#数据库技术7 N: D: u9 l0 K% ~( `
    │  ├─day01* `/ z' j. S; b; A( q
    │  │      readme.md
6 r" [* F) a5 K5 J5 n% e2 v. w" {# q    │  │      
1 Q: l* J. e' W- i3 ^/ U1 ?2 g    │  ├─day02
9 L% M7 ~9 h& }' K& G    │  │  │  视频.md) F5 z! d; A2 X. t8 s. o/ {
    │  │  │  
8 T  g& ~& j' _4 |    │  │  └─code&资料6 F0 P, c( z) v& [1 U/ y3 k
    │  │      └─code. N$ l, T, N+ d3 _- |2 W" P. W
    │  │          └─day02) b5 n* w% }; ?( Q" B9 @
    │  │              │  build.gradle9 Q% I, D; ~5 z& X1 J7 Z) r
    │  │              │  gradlew3 I3 N) Z8 Y: ?/ E& A
    │  │              │  gradlew.bat' l, `1 k& Z0 `" [( f
    │  │              │  settings.gradle9 [( G+ X: W/ A" ?
    │  │              │    t- ]$ |/ r+ e( c( x, z+ ~
    │  │              ├─.gradle
+ Z5 w0 ^1 V$ w% A8 s    │  │              │  ├─3.5-rc-2
$ P$ R' u) u% [: |* k; ?( |    │  │              │  │  ├─file-changes5 Y+ W# T( G7 p, X1 l: g) ~( K' h
    │  │              │  │  │      last-build.bin
2 c6 p0 A% e5 q( Z4 g6 n. V    │  │              │  │  │      ) I$ n# E% n% S; W& r) r2 o4 `: H8 Y
    │  │              │  │  └─taskHistory1 D" T1 Y' L  g  t; z+ q  ]3 w) s: k
    │  │              │  │          fileHashes.bin1 D& }9 p, r/ x" g3 L
    │  │              │  │          fileSnapshots.bin
6 V( f0 |5 i/ P' \! h    │  │              │  │          taskHistory.bin
1 n4 x& A  C8 w, T1 e6 U, ~    │  │              │  │          taskHistory.lock
$ D2 V/ X# ^- l8 b; k    │  │              │  │          & J" u6 c9 L8 m/ o( f% Q9 \
    │  │              │  └─buildOutputCleanup6 C+ i( Z  O" Q2 d, z) E( |
    │  │              │          cache.properties
9 \/ j3 u  C) f- o' d    │  │              │          cache.properties.lock
/ I- Z' ?. y& x* E. l! V    │  │              │         
, B$ H; g- W$ Q) }( q    │  │              ├─.idea, e$ I% ^& u. m; h1 p* u
    │  │              │  │  compiler.xml8 ~' |- w/ v  Q& A/ F
    │  │              │  │  encodings.xml
6 W+ z8 D' V" n& c7 L5 N9 _$ e    │  │              │  │  gradle.xml3 h2 {( V! \* j. u% F* {0 D6 a
    │  │              │  │  misc.xml
: u0 @" T; F% t  k& |    │  │              │  │  modules.xml
" Y/ L. c* x7 f& G1 G    │  │              │  │  workspace.xml* w2 ]1 X: Y" V# _& R; H4 k. r
    │  │              │  │  0 P- W9 j& G/ b3 k7 q: y4 Y5 J$ Y8 f/ _
    │  │              │  ├─dictionaries& a. J9 m- ?* N, O
    │  │              │  │      Administrator.xml
4 Q9 f  t; y9 k% ?) }. }( ^8 x    │  │              │  │      : y' u. u0 x+ |8 t
    │  │              │  ├─libraries
5 Q7 ^  }) f9 B" a# c    │  │              │  │      Gradle__ch_qos_logback_logback_classic_1_1_11.xml
+ N& m5 M3 u$ @# o    │  │              │  │      Gradle__ch_qos_logback_logback_core_1_1_11.xml
, M+ f4 W+ D) {2 t/ ^    │  │              │  │      Gradle__commons_logging_commons_logging_1_2.xml
6 M0 \# C5 s3 ~8 T* y6 l    │  │              │  │      Gradle__com_fasterxml_classmate_1_3_1.xml
4 I' p# I. Z  n! \  e! J; d$ Z. F    │  │              │  │      Gradle__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml
" v9 }5 a! }& m  X$ U    │  │              │  │      Gradle__com_fasterxml_jackson_core_jackson_core_2_8_10.xml
  Q" K5 o% ^. f+ i) V! _8 b    │  │              │  │      Gradle__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml: a7 V2 ]1 U9 @0 X/ D* j- B
    │  │              │  │      Gradle__javax_validation_validation_api_1_1_0_Final.xml" P$ }) ]0 i& [
    │  │              │  │      Gradle__junit_junit_4_12.xml; b2 i  u$ q2 O" w& `5 _, |
    │  │              │  │      Gradle__ognl_ognl_3_0_8.xml
; R( ?% Y& d: e* P    │  │              │  │      Gradle__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml$ r$ F3 k2 F( p& G
    │  │              │  │      Gradle__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml
; p% g' H+ m6 f5 o2 @* W; A    │  │              │  │      Gradle__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml
$ Y! p3 k" m) L    │  │              │  │      Gradle__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml
5 e8 i" c4 j0 t    │  │              │  │      Gradle__org_hamcrest_hamcrest_core_1_3.xml, ~3 b7 U- h+ @  p: `
    │  │              │  │      Gradle__org_hibernate_hibernate_validator_5_3_6_Final.xml
+ d* F/ E& B/ e8 M. ^9 L7 K    │  │              │  │      Gradle__org_javassist_javassist_3_16_1_GA.xml  p5 p6 |4 M8 L0 t) l# Z
    │  │              │  │      Gradle__org_jboss_logging_jboss_logging_3_3_0_Final.xml
% Q( F3 a" P1 E* b- D) g4 {    │  │              │  │      Gradle__org_slf4j_jcl_over_slf4j_1_7_25.xml
5 O( X5 T; g1 ^    │  │              │  │      Gradle__org_slf4j_jul_to_slf4j_1_7_25.xml4 r5 f* z, j; C) {. \
    │  │              │  │      Gradle__org_slf4j_log4j_over_slf4j_1_7_25.xml
$ y( N4 m# }1 y0 G$ J    │  │              │  │      Gradle__org_slf4j_slf4j_api_1_7_25.xml
* J5 _" G( s/ }4 P/ o( p1 G    │  │              │  │      Gradle__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml
, w) I& x% \) O* v3 ?- j. t+ {: R    │  │              │  │      Gradle__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml
, w, p& d3 b, }9 t" s0 m* y+ I    │  │              │  │      Gradle__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml
8 R; D9 W. v; p) P# ]8 C3 g) o    │  │              │  │      Gradle__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml0 f: ~3 ?1 u! L8 s- }* q
    │  │              │  │      Gradle__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml, P( y4 Q( Y: r5 D% w+ k3 c
    │  │              │  │      Gradle__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml
4 w" F3 Y3 I3 x' n. h% B1 p( I    │  │              │  │      Gradle__org_springframework_spring_aop_4_3_14_RELEASE.xml
, r# D4 Z  _( ]2 X& `    │  │              │  │      Gradle__org_springframework_spring_beans_4_3_14_RELEASE.xml
. H+ @. J/ U4 |- i    │  │              │  │      Gradle__org_springframework_spring_context_4_3_14_RELEASE.xml
" c% M5 U) n& d    │  │              │  │      Gradle__org_springframework_spring_core_4_3_14_RELEASE.xml8 f+ M0 W& Z9 @& T5 \+ e
    │  │              │  │      Gradle__org_springframework_spring_expression_4_3_14_RELEASE.xml7 ~+ z/ N7 H% N* i- o7 A* }6 U$ W
    │  │              │  │      Gradle__org_springframework_spring_webmvc_4_3_14_RELEASE.xml
8 S7 F+ _0 _- ^' C0 Y& Q    │  │              │  │      Gradle__org_springframework_spring_web_4_3_14_RELEASE.xml: m5 A5 d9 C$ Y* L# D5 H2 F
    │  │              │  │      Gradle__org_thymeleaf_thymeleaf_2_1_4_RELEASE.xml! F9 D4 f) O, Y  U1 o
    │  │              │  │      Gradle__org_thymeleaf_thymeleaf_spring4_2_1_4_RELEASE.xml
( i0 Z. B- [0 I7 N8 T+ H/ d    │  │              │  │      Gradle__org_unbescape_unbescape_1_1_0_RELEASE.xml; H0 l! K7 h& X& h' `% g' D
    │  │              │  │      Gradle__org_yaml_snakeyaml_1_17.xml
% S0 \4 p  t& D$ ~# d7 Z, x    │  │              │  │      : d: t9 H" O" |+ k( f! V+ K7 w
    │  │              │  └─modules. N% T0 w: U6 P: O
    │  │              │      │  day02.iml# ?% s* b4 q# A% o1 H
    │  │              │      │  day02_main.iml8 s4 g1 N6 {1 F
    │  │              │      │  day02_test.iml
9 e: O4 J8 K3 j" O    │  │              │      │  PageDemo.iml
+ e3 O- U: J* H: L$ A3 P    │  │              │      │  RegisterDemo.iml& m5 T9 g5 Y2 ^3 ]3 U
    │  │              │      │  RequestResponseDemo.iml
6 H6 h8 }' F4 f9 w0 j: h1 l# ~    │  │              │      │  ThymeleafDemo.iml; l! H' g/ I' I0 k2 k
    │  │              │      │  2 b6 Z: Q4 n) ]/ @, |. `; s
    │  │              │      ├─PageDemo
. y4 w9 X" t4 p    │  │              │      │      PageDemo_main.iml% F1 F7 k& ~, k
    │  │              │      │      PageDemo_test.iml9 `6 G, g5 S8 d2 M
    │  │              │      │      
9 ]9 B! X" {. K& t$ z  O' W    │  │              │      ├─RegisterDemo$ {' J8 r8 N$ ~# B) j$ S4 `0 l
    │  │              │      │      RegisterDemo_main.iml; R* ~9 E# v& Z2 X+ W- z  r! H
    │  │              │      │      RegisterDemo_test.iml
2 n0 Q7 ?3 T( E' t! a    │  │              │      │      
/ L) T# M# Z/ @# ?    │  │              │      ├─RequestResponseDemo- o' L5 ]9 k. Y+ [& [
    │  │              │      │      RequestResponseDemo_main.iml
6 B. l' a2 o# c2 Q) q3 V8 h7 Y    │  │              │      │      RequestResponseDemo_test.iml
, y. Q) l# C1 o1 r! f    │  │              │      │      4 ]6 o) g% b6 C, |* f0 A
    │  │              │      └─ThymeleafDemo
, L: e2 ?5 @' W- d& f8 y* M    │  │              │              ThymeleafDemo_main.iml
: t. W7 t# ~0 M    │  │              │              ThymeleafDemo_test.iml
6 X3 }# u6 f9 P% [    │  │              │              3 Y) E" l$ I% f1 ~9 |/ p
    │  │              ├─gradle
8 O0 S/ V* M5 @3 k- s0 |. z    │  │              │  └─wrapper
+ e1 w' D" a# H* I2 _3 V$ W. \    │  │              │          gradle-wrapper.jar
& H. f# s" B- j6 Z" g, S    │  │              │          gradle-wrapper.properties8 ?0 c. c& W2 S. m
    │  │              │         
. D2 N9 ~5 I+ q) f# e  ~    │  │              ├─out
/ B1 \! h5 R: l5 t: Z8 \4 V. O    │  │              │  └─production
# J" ?: D$ [' X6 F0 z6 p    │  │              │      ├─classes
" R% ^$ s$ I4 g, Z3 n# I    │  │              │      │  └─com
" H% I) v2 u& G6 ]' |" F& w    │  │              │      │      └─itheima
/ v2 N; U! n( o- u9 |2 |6 F) J    │  │              │      │          │  MainApp.class, x5 M% R: f( z" {
    │  │              │      │          │  
3 v' C! e* T8 {. F    │  │              │      │          └─controller
+ R0 ?- o1 f! ~# E1 r' d    │  │              │      │                  DemoController.class
: C* Y8 `/ u0 r/ i( C    │  │              │      │                  ; n  _. B& @1 L$ E$ v& }7 N
    │  │              │      └─resources
7 q) H* |5 Z  e    │  │              │          └─static6 T7 N, R- ^/ l
    │  │              │                  login.html
3 n; C+ l6 H# R7 h9 [$ |8 D    │  │              │                  5 y) p, r( p; u
    │  │              ├─PageDemo. h6 R% H7 a5 t0 R" @
    │  │              │  │  build.gradle8 n1 i, I+ ]3 ?3 F+ S
    │  │              │  │  
$ k$ p3 Z5 S% O* e    │  │              │  ├─out7 N. l8 C6 c2 m6 c
    │  │              │  │  └─production
! Y% M' ?. J4 g. s7 v* N9 v    │  │              │  │      ├─classes% H! S* ]2 j7 H. [, f1 C5 i4 s% S2 ~
    │  │              │  │      │  └─com
3 {. P$ g7 R+ D1 L+ w) A    │  │              │  │      │      └─itheima
% f. c8 \0 I1 Q1 \( R% r7 N4 p    │  │              │  │      │          │  MainApp.class: W" L& P8 a* @
    │  │              │  │      │          │  & {0 P; F- r: I5 C! d, Q, j
    │  │              │  │      │          └─controller
3 Y8 h0 [5 o$ d9 h) Z$ B, C    │  │              │  │      │                  ForwardController.class
( u" {  T, c8 U+ ^8 t: W    │  │              │  │      │                  RedirectController.class
% {& J4 b; m- @" T7 d3 {( y0 f# P    │  │              │  │      │                  TestController.class
& H7 S# `5 }& K3 T8 {    │  │              │  │      │                  
9 L8 |  |+ K; x    │  │              │  │      └─resources$ K' |/ }' V% z, Q+ K) p" z4 }
    │  │              │  │          │  application.properties0 F# F/ U/ e) r7 Y5 [
    │  │              │  │          │  
0 z3 E' t$ x* ]7 W& X3 o  Y" P    │  │              │  │          ├─static
5 h9 A0 r6 \' c6 \    │  │              │  │          │      result.html9 X! c5 q/ E2 c! \! U
    │  │              │  │          │      test.html
: J: @- A% Q4 [1 B, ]  e+ W    │  │              │  │          │      ; C% ~, n3 n$ G7 z7 q( Z
    │  │              │  │          └─templates
+ _  i5 w( I& W9 n- k- r# X* Y    │  │              │  │                  aa.html. V: E# |5 q; F7 {; z! f5 }2 P
    │  │              │  │                  
( k# i+ G) r  q" ^& }3 D! o    │  │              │  └─src4 {4 z4 S- E; R. d6 T5 q
    │  │              │      └─main3 ^! l% T$ ^% i$ h
    │  │              │          ├─java
  t8 q( V, p2 b" |. a    │  │              │          │  └─com8 V8 ]7 ^  l1 r" ^; d+ h
    │  │              │          │      └─itheima( V+ D- h2 j7 i! I5 D
    │  │              │          │          │  MainApp.java  E& }& v' j  b3 ]+ K6 c/ S7 c
    │  │              │          │          │  
* x; N! L" @6 h    │  │              │          │          └─controller
1 E2 E. t0 Z0 L    │  │              │          │                  ForwardController.java9 ?; q  d$ r+ \3 s3 T/ a
    │  │              │          │                  RedirectController.java
% t  L( v* Q5 j* I% F: A    │  │              │          │                  TestController.java. j4 o+ k7 L8 \
    │  │              │          │                    P. y. D+ o" X/ W0 s3 W3 h
    │  │              │          └─resources) b6 z0 @; s4 l" ]
    │  │              │              └─static
+ }- E0 J$ P. @% D5 h    │  │              │                      result.html
& ]- A/ a  ^( Z3 A    │  │              │                      test.html
; g: Z/ w$ r9 X* f1 x4 x    │  │              │                      . R% W$ O: G9 X/ }2 A
    │  │              ├─RegisterDemo- V+ c9 V, n( N1 V! S
    │  │              │  │  build.gradle
5 [& ]; |' d1 v* E/ v6 y    │  │              │  │  2 Z7 D' x4 g1 o7 ?% z
    │  │              │  ├─out% n2 o' o' j7 Y  G
    │  │              │  │  └─production4 w( J" ~9 q# i8 ]% L
    │  │              │  │      ├─classes
9 c8 F* Z0 X1 J4 b' G5 j1 f! ?    │  │              │  │      │  └─com" E# o1 X7 `  R8 ^  S% Z1 j
    │  │              │  │      │      └─itheima
& B) p# H! D) v9 L% R! s% n8 |: _- J    │  │              │  │      │          │  RegisterApp.class/ X$ d& x% u' R+ n3 G
    │  │              │  │      │          │  
2 T- d+ S7 z6 J4 o$ X2 u- L    │  │              │  │      │          └─controller+ H% w. u9 N! W" j/ v" K+ Q
    │  │              │  │      │                  UserController.class
8 s" @& k0 ^* d    │  │              │  │      │                  
1 E. a) K' ]" L$ X8 m0 n4 v0 Z    │  │              │  │      └─resources
: p; }8 u7 a& `' i$ h; X9 K    │  │              │  │          ├─static4 _' D9 G' l7 ]* z( c
    │  │              │  │          │      register2.html/ Z' l  O9 B' b$ E9 ]
    │  │              │  │          │      4 o9 ~2 Y8 w* a' D. P3 g3 q5 j
    │  │              │  │          └─templates
* X) B; l" C7 H7 O! ?: ?    │  │              │  │                  register.html% N) _  H2 R  W6 v  [( l/ T
    │  │              │  │                  register_success.html
5 _# A! y2 A7 l5 K8 h/ x% q2 I    │  │              │  │                  2 S( u4 u" K: [/ ~
    │  │              │  └─src
: `8 V% Z& J) B# n    │  │              │      └─main
7 s* o. E/ H+ T3 i0 X3 w% v    │  │              │          ├─java6 E4 E2 Q) [6 c% H3 V
    │  │              │          │  └─com% G7 N% E3 c. e8 L
    │  │              │          │      └─itheima! |/ {5 P. p" o  G4 R2 m) }/ B7 _& i
    │  │              │          │          │  RegisterApp.java/ E. E3 W7 \! R1 K# P  x
    │  │              │          │          │  
( l$ H. B$ @: w. c    │  │              │          │          └─controller6 r$ B' Y4 u# x/ s8 E7 H0 Z3 v/ M
    │  │              │          │                  UserController.java2 w, s& J, e- [4 _, g
    │  │              │          │                  
2 [0 t7 |& s1 U$ D  n& x    │  │              │          └─resources
4 y# y7 F: ]% U0 v    │  │              │              ├─static
( T, X) S6 e" }# s. B4 B, k    │  │              │              │      register2.html2 X$ a5 G# _; d* c+ ]2 ?
    │  │              │              │      
0 W- \+ v0 u( m, v    │  │              │              └─templates  \# f; B/ _* r4 r+ O, s  l0 r* d; U
    │  │              │                      register.html$ X$ |% x$ q6 v) P
    │  │              │                      register_success.html
; w7 U3 G' t% i% Y1 B, ]/ A! I    │  │              │                      ! F" s5 c* Q* C  s  U0 q& o
    │  │              ├─RequestResponseDemo4 Q4 r6 ]: v7 s3 ^
    │  │              │  │  build.gradle
: p9 H' u  Z8 B6 M! x% k" w. u    │  │              │  │  
( U2 R% i1 q# K$ @5 K, D    │  │              │  ├─out1 Q3 {) W) U4 j5 G3 a% U5 p
    │  │              │  │  └─production
0 b" s# b9 ]: y7 y& x- u    │  │              │  │      ├─classes
: H: E4 [, _* b* [% M4 w$ T    │  │              │  │      │  └─com
% B( O* N( u4 j" o" O% U5 K+ \    │  │              │  │      │      └─itheima. g! H( z' Z+ Y+ @' Y4 X
    │  │              │  │      │          │  MainApp.class
. P7 x) F0 [: T1 ?+ M/ B    │  │              │  │      │          │  * t# j5 i+ M3 H
    │  │              │  │      │          └─controller
0 T8 e- \7 k6 [- f% n# I+ P/ b# o    │  │              │  │      │                  DemoController.class
+ m# r& M" s* c( H    │  │              │  │      │                  
6 ~1 d3 c. p2 Q7 E4 n6 `    │  │              │  │      └─resources
  A  @* Q8 ]$ I4 V( @* n    │  │              │  │          │  application.properties& i6 m4 N. s# e! n6 k, X7 g
    │  │              │  │          │  
$ F5 }! w1 }3 I' _8 ?6 V    │  │              │  │          ├─html% H( T- d" O  D* n( m$ y0 @. V! T
    │  │              │  │          │  └─user6 E3 m: C9 ?% p7 ^
    │  │              │  │          │          cc.html# d1 w! C  W) o' \* L6 o
    │  │              │  │          │          , c8 K$ R3 H8 v3 B& H( y
    │  │              │  │          ├─public
6 ?- K6 I& z$ m    │  │              │  │          │      bb.html
) O& V5 i/ \1 X1 \  r) r/ J( n2 q    │  │              │  │          │      
2 |: E" H7 x" z( K( w    │  │              │  │          └─static5 s% N+ f# f0 f8 {
    │  │              │  │                  aa.html4 ^& |$ q$ v4 ?3 q* J
    │  │              │  │                  
8 R% ?, Z7 g) P( J0 r    │  │              │  └─src
/ n4 X$ {, |# j* F    │  │              │      └─main
% @" N  Y" E# ~3 s7 w6 q    │  │              │          ├─java$ R. d  u) J: b* P# H
    │  │              │          │  └─com
* @# M. t7 }$ l" t, ]- O* }; A( r    │  │              │          │      └─itheima
' ?0 l2 U$ K  ~4 R0 S    │  │              │          │          │  MainApp.java7 z5 {7 N/ o/ i, c
    │  │              │          │          │  
0 d4 ^, M5 {9 }) o: ~$ ]6 S    │  │              │          │          └─controller
) a5 O! i- x) E3 F- V$ y    │  │              │          │                  DemoController.java( d: D0 W  W5 W3 q4 E
    │  │              │          │                  
+ v  n8 |4 G. W/ X/ ~8 r) Q    │  │              │          └─resources
: h4 y/ w! F( r3 @    │  │              │              │  application.properties; `+ t) k" q5 l3 h1 P' w
    │  │              │              │  
3 L( W8 }+ E- T# y& P    │  │              │              ├─html
- q# P* ?7 l/ Y& ^, ~# w; G    │  │              │              │  └─user  N, f& U3 k( s0 L
    │  │              │              │          cc.html) v' h6 K9 _* M7 C& h( c: O3 J
    │  │              │              │         
9 E9 A% T# D6 `0 q    │  │              │              ├─public0 A7 `- v% ~0 m
    │  │              │              │      bb.html
7 j* h, g& a" |8 w' r& h+ k4 Y! i    │  │              │              │      
2 h, M& C) h( i  O) E+ E  z    │  │              │              └─static& c' A, f2 _. i/ [& ]: i
    │  │              │                      aa.html2 G; d% a% P, y3 F
    │  │              │                     
6 O; J6 J6 W5 h! x3 I, u! I! {2 W    │  │              ├─src
, m( ]* `7 q$ v; ^( s$ R, B. L% l    │  │              │  └─main: y0 G: k+ k' ~7 d8 |' k
    │  │              │      ├─java
9 c  W. e. K# r) O0 }+ ^$ K    │  │              │      │  └─com2 z+ z9 t2 @7 L. ~( Z6 C
    │  │              │      │      └─itheima& ~# \9 @- }$ ~# n" _* X+ L
    │  │              │      │          │  MainApp.java
/ `3 g7 Q+ W  A6 J* F1 f: f$ M7 V    │  │              │      │          │  
' P5 @( z( ]: z% M8 ?    │  │              │      │          └─controller) e2 w, ^, Q; m, }' w
    │  │              │      │                  DemoController.java
! `( q) Q& f8 o: @9 c# ^7 k    │  │              │      │                  
, ^' a' d+ `' l/ X6 W" S5 F! j    │  │              │      └─resources& v0 U4 {' Z- a+ W
    │  │              │          └─static
7 P# ?  v" ?9 M) m1 j6 s    │  │              │                  login.html& u/ q8 H6 ~8 N5 k  i* s! y
    │  │              │                  
* u% ^) A8 \4 F* k5 ?    │  │              └─ThymeleafDemo4 {4 A! W( {+ F+ t  g8 X- x
    │  │                  │  build.gradle
$ \+ v6 ?5 X. `9 G* S- _    │  │                  │  
5 g" i% n: A: L' q( K) V. \    │  │                  ├─out5 h4 y& i  E) _+ d) U$ |
    │  │                  │  └─production" I+ a  [( }2 n( p, N: H7 U# M
    │  │                  │      ├─classes
  O9 Y. J2 l1 ]) a* z$ m8 Q    │  │                  │      │  └─com
0 m; {1 a- S$ P3 S) {' T# }; O    │  │                  │      │      └─itheima- ^* a8 Z# }) Q% V) {
    │  │                  │      │          │  MainApp.class. m( {% j# D9 U& f
    │  │                  │      │          │  ; q$ Q9 m7 o8 O: g, Y" D4 y
    │  │                  │      │          └─controller+ K. Z) O6 j3 x1 ~* `
    │  │                  │      │                  DemoController.class
4 m6 ^) m' G" }* b    │  │                  │      │                  UserController.class
/ e: e2 j  Z8 Z$ [: ~8 o    │  │                  │      │                  : z7 I& e" \. Z1 a8 Q
    │  │                  │      └─resources
) c. h4 d5 S' \. J    │  │                  │          ├─static# ?8 I4 \( X4 Z, I% X$ _
    │  │                  │          │      login.html
0 F$ E+ X3 b3 C8 c2 _' A& z2 L2 e    │  │                  │          │      
: H2 t; K- n' R0 ?2 }1 I8 e    │  │                  │          └─templates+ i- o) z4 m& c. E$ B- T2 i5 c1 p
    │  │                  │                  index.html
& {$ e+ Q0 P3 e7 \    │  │                  │                  testpage.html
1 @' [0 K" ~& @- V$ I$ t    │  │                  │                  / c5 G% h! ~& l5 a- k  B
    │  │                  └─src
3 g& n! Y4 y% o/ u/ B- y    │  │                      └─main
+ i3 c( q5 Z. v8 v6 a    │  │                          ├─java- L4 N8 K: ?( E  |
    │  │                          │  └─com
! h) y: ~, {) `7 z5 E0 s6 e    │  │                          │      └─itheima
6 H! S0 B; z$ y9 k5 t7 }    │  │                          │          │  MainApp.java
% B- S% g  F' Q% Z( }    │  │                          │          │  
4 B1 l8 }* s% b* X6 q. l+ |  X    │  │                          │          └─controller6 D$ Y0 m/ V, M4 O' |4 U  N
    │  │                          │                  DemoController.java
2 P* a3 Z" ^+ {6 y; ?6 T    │  │                          │                  UserController.java
. b& ]$ I1 V8 v- U  C% m    │  │                          │                  4 j" G0 S/ V: K  S- H
    │  │                          └─resources0 ~- c. @  N8 l& m. K3 y& ]
    │  │                              ├─static9 l8 v( n5 e5 V! \
    │  │                              │      login.html, l( r3 d9 J- _( s) [" Q$ }
    │  │                              │      
- Y% J& C, q# `: D* `/ B# ~4 Y7 V; p    │  │                              └─templates
+ C2 t# c9 ?1 @9 i9 S  _0 c    │  │                                      index.html
+ W- w* o2 c6 X  p6 V2 |9 {    │  │                                      testpage.html" V, c3 l& f, [: W9 A% Z
    │  │                                      
( E& j9 y; n$ s" |  \% A: P$ ~2 I) c    │  ├─day03& q$ R0 j' _; }! Y1 j& j
    │  │  │  day02回顾.txt
% y! I3 x* C  w, o+ Q: x5 m0 j    │  │  │  视频.md
: c# |; w; k4 @    │  │  │  购物车.png4 L) U: }0 h8 ]! R) P' A6 e5 k: n
    │  │  │  - E. |  `/ R# d. C0 F4 v+ v5 G' |
    │  │  └─code&资料
5 a( ^% k; B* E+ H    │  │      └─code+ `& [% w# T7 Z) `! @
    │  │              day03.rar! B) X) W# S$ Q4 x
    │  │              ( B4 v5 i6 X: f* X5 k2 Q
    │  ├─day04" c/ b5 h- h( w' S2 S5 Z
    │  │  │  day03回顾.txt: K9 k! y, a( H8 W- _
    │  │  │  视频.md
& C6 E5 Z2 y0 {1 _& G4 S' R    │  │  │  * Q% x) U& C. B+ |$ ^# B
    │  │  ├─code&资料
* x4 [, k/ H' d: h    │  │  │  └─code
3 Q/ X, h( y8 ^( y6 B* L$ q& L. f. N    │  │  │          day04.rar" u/ A0 N, v% z* E: K  P
    │  │  │          / c: t" ?7 B( z
    │  │  └─linux
/ h8 f4 F0 V( d* R    │  │      │  笔记.md
7 o6 D1 Z" Q/ K3 b* F    │  │      │  
! M" o" J& G& J& B5 J8 F    │  │      ├─img
% Q3 w3 K" e, }/ Y0 R    │  │      │      01.png
+ ?$ ^/ b+ n, ^4 G) f" L    │  │      │      02.png
0 b- ^, {" |$ v    │  │      │      03.png
, Q: {- X! @9 H8 Z, ^; P    │  │      │      img01.png# v1 S+ }/ t0 F& l5 N! D$ D4 ^
    │  │      │      
- \0 t& |" W7 Q9 @* B& w    │  │      └─资料: g# \1 h" t- _( P
    │  │          └─linux
( A/ {1 q& A2 `8 }- C5 j6 S) M    │  │                  centos安装.docx
  u: {. D( T2 @" C3 c- l7 l    │  │                  " V& D7 d9 ?4 g* F% o. u
    │  ├─day05
, W; v0 H  k" b0 j+ K$ v    │  │  │  day04回顾.txt5 J4 ^  y- v3 c% U5 H) X
    │  │  │  视频.md
- q0 _, g$ h4 @$ Y0 J7 G% C: `    │  │  │  4 R- |9 M3 Z9 [0 M+ @1 t
    │  │  └─code&资料
2 Y- q5 V' s# Q5 q+ D    │  │      └─code
4 {" X7 Q7 ?! U+ T- P- H    │  │              day05.rar
/ H1 O! J/ ?, H$ q! `    │  │              . w1 U" ^) M. I2 c; x7 X
    │  ├─day06
0 y- U4 [+ A) R; k* d' y2 ^- D* Q    │  │  │  day05回顾.txt
6 h7 x0 f2 W/ A- x    │  │  │  视频.md
1 P% L( s" I% l$ w8 B% L    │  │  │  
4 K1 X! S2 p# q8 ]    │  │  ├─课上操作记录
' w: U4 {% u8 V% j    │  │  │      数据记录的操作.sql" V) p/ O! d  t7 p7 z3 O
    │  │  │      约束操作.sql
# {0 _8 e. u$ _: I3 V5 `/ m3 R    │  │  │      表的操作.sql
) B( z2 U! L1 H( B5 P    │  │  │      表的操作(二).sql/ B- M2 \1 s* V. v- E& Y
    │  │  │      
2 l2 k  H/ Y' H" c* W    │  │  └─资料2 ]4 I6 E) i2 q7 T2 P
    │  │      └─mysql练习( x3 U) s8 p9 O* N
    │  │          └─mysql练习6 _# V  E% h/ R9 A$ ^
    │  │              ├─第一天单表, f: @) E" b2 l; U8 \& d
    │  │              │      sql练习题目.txt
" ~# @' n2 I) S  ~  F    │  │              │      sql练习(带答案).txt
3 T/ w; G# u: p+ f    │  │              │      数据库以及表的CRUD.txt3 H0 y1 E! Z( i" [/ ?0 m
    │  │              │      数据库以及表的CRUD(不带答案).txt1 W, D# W4 O6 _
    │  │              │      / ^5 o& V$ C$ _
    │  │              └─第二天多表4 ?1 a& y  [, f
    │  │                      建表语句.txt$ c- X. ?5 v& ^! x3 w7 @
    │  │                      练习参考答案(加深).txt
: \) p3 [0 p! W- {6 o/ q    │  │                      练习题目.txt
; r+ v6 I# M5 O# c    │  │                      + I7 _* g5 }3 C/ Z" n
    │  ├─day07& h& S; {  h8 `7 R5 T: C4 _
    │  │  │  day06.txt& u, z5 `1 ~, ~7 U& C. o
    │  │  │  视频.md
1 z) B+ B2 [- t7 l8 B    │  │  │  
& E  P$ c: j, L; A    │  │  └─code&资料
! F6 ~5 ~4 J: w3 |) R; D2 F    │  │      └─讲义, ^4 P: j) g  t
    │  │          │  笔记.md
/ r* h8 ~7 F6 M3 ]. L    │  │          │  
9 x1 u2 q, S' v9 P, B    │  │          └─img
5 X1 s- T: T+ I    │  │                  01.png
* [0 A' _0 m  [/ K' x* r/ B    │  │                  02.png8 v9 h* }# m( L- n7 B/ i6 |" [
    │  │                  03.png
- z# O1 Y4 L8 k8 Q    │  │                  04.png- N1 X2 S) A% ?* ]0 Y* d' e% l
    │  │                  05.png+ \% }2 E  \: P- C4 ?" H* e9 E
    │  │                  06.png6 w9 a  p1 y/ ]( z
    │  │                  07.png
  D/ r. j2 I' N# L) O    │  │                  08.png6 @2 ]" z5 P9 V; k% F, v! \$ l
    │  │                  09.png9 C6 Y1 p) k& Z: P. Z
    │  │                  
4 {! s4 B1 J/ G( Q    │  ├─day089 A1 i3 G$ ~" |2 G% U% E
    │  │  │  day07.txt
- E* U# n3 R, c1 W9 o1 ^    │  │  │  视频.md4 C6 ~" G; ~8 t4 K
    │  │  │  
( n3 J, n4 ^7 q    │  │  └─code&资料
% y! f% {% k) U' U% {! _7 Z# D    │  │      └─code
: C; _! y* ?) u8 w    │  │              day08.rar
7 D* J+ m2 h$ F* r) S: C- x0 w% {1 B    │  │              * |8 q, V9 a# n, H# b  E% ]+ ]& q
    │  ├─day09
7 U" t" f2 A0 l' L    │  │  │  day08回顾.txt
. y5 W% I+ @/ _7 {/ n% c9 |$ [    │  │  │  视频.md6 q# R$ t4 J8 \
    │  │  │  ' \( O+ C" o5 ]( \- ]: i- }5 t8 q( P% f& Q0 _
    │  │  └─code&资料7 i- A+ t1 T8 g( j' n0 t% }" u
    │  │      └─code& b6 B# }! ]5 O1 W2 k
    │  │              day09.rar
( k6 m+ R* G% x. f& p' P    │  │              # l6 h4 z  Z- M1 Q6 M( {, C/ g
    │  ├─day101 M6 q* E- \+ g, l( z0 b' o
    │  │  │  day09回顾.txt
$ X) o, |2 D: f; S& K9 t0 j' O5 U    │  │  │  视频.md
3 G" k- `# ]/ j$ \    │  │  │  
# D8 f- ^; p) Z0 \8 D, r! f: K    │  │  └─code&资料
8 I/ \" w% ?+ `- Y2 f/ o  k% k$ U    │  │      └─code
, r% z: A: _1 v- K) g  j    │  │              day10.rar2 Q) p) e2 u- Z8 N& }  ]
    │  │              % u# Y) O6 I$ ~3 T
    │  └─day11
" x/ A2 M; G, {, U* T    │          readme.md  v8 a- o" q2 ~; `9 O5 r1 B* Q
    │         
0 K" f( f" W$ Y! n5 R# G0 F/ e    ├─05_第四阶段-springcloud和区块链彩票项目) Q& [2 W% J; e3 i; q+ Q" y
    │  │  readme.md
/ n* o$ \6 ~! r0 Y  V    │  │  下载地址.md
" k/ S+ W1 g/ b' P6 a    │  │  
. c  V- m- h) |6 I0 t4 _    │  ├─ppt2 ?, N& G7 M, f2 Q8 o: Q
    │  │  │  index.html' S" {, p) p2 q4 w3 v5 G0 N
    │  │  │  ) H3 b+ G5 R: S
    │  │  ├─css. G; t( h  D) |. H% Z3 Q
    │  │  │  │  fira_code.css# [3 @, f! O. n
    │  │  │  │  reveal.css
' S4 j! F7 r6 B% k4 }9 z" O' F    │  │  │  │  reveal.min.css
) S0 F/ M& M) ~) _! }7 n    │  │  │  │  reveal.scss
- `9 j. E5 F! Q# v1 M6 R    │  │  │  │  style.css; ^( W" L1 Y  T. D% M
    │  │  │  │  7 C0 i% X9 X5 x8 A
    │  │  │  ├─firacode! a- Q, F% L6 r
    │  │  │  │  ├─eot
' J0 P9 b- i$ a2 s9 |3 ~$ c/ ^    │  │  │  │  │      FiraCode-Bold.eot
, E3 J* B7 ?3 _$ o8 V( W    │  │  │  │  │      FiraCode-Light.eot
& m& ~# V0 G, Y* o    │  │  │  │  │      FiraCode-Medium.eot' W& o) ^$ y. V  T$ g5 o
    │  │  │  │  │      FiraCode-Regular.eot8 d9 L9 Y5 Y* U) e) {& d
    │  │  │  │  │      2 {' m5 u1 j1 |6 t0 p9 j( R
    │  │  │  │  ├─otf1 d# b% Z  m; _* J
    │  │  │  │  │      FiraCode-Bold.otf
! u7 o; N- e: |" P4 [    │  │  │  │  │      FiraCode-Light.otf3 v5 X+ L0 [5 {
    │  │  │  │  │      FiraCode-Medium.otf+ u% ?/ N$ g5 K. t2 Y* y3 H
    │  │  │  │  │      FiraCode-Regular.otf
$ F5 x; r3 Y% I    │  │  │  │  │      FiraCode-Retina.otf
. t/ H3 F$ E0 A$ v5 L7 C- c    │  │  │  │  │      
/ b  h) n& ?- o* _    │  │  │  │  ├─ttf
4 I' Y, z# [0 L: e    │  │  │  │  │      FiraCode-Bold.ttf7 Y- ]3 O6 a  \5 X+ G4 q
    │  │  │  │  │      FiraCode-Light.ttf
' A1 p6 }- h4 `1 a. O    │  │  │  │  │      FiraCode-Medium.ttf
; {1 c7 D0 e9 s: Q0 D! |, g    │  │  │  │  │      FiraCode-Regular.ttf
) Q: s- W% X/ c9 P    │  │  │  │  │      FiraCode-Retina.ttf
! Y+ V( p( m. c7 B( p    │  │  │  │  │      * |- u: J( S" _8 X2 Y. M- V
    │  │  │  │  ├─woff
8 {" P7 L  H: T; w9 x    │  │  │  │  │      FiraCode-Bold.woff: k) v- e! U  }; Z* u8 L+ S
    │  │  │  │  │      FiraCode-Light.woff
" k3 h# A) N3 R0 v; P1 y    │  │  │  │  │      FiraCode-Medium.woff
& ?0 z/ P! D; x, M    │  │  │  │  │      FiraCode-Regular.woff
& x! U! `: ^8 V. B( H! b& j5 q    │  │  │  │  │      
# i0 s. Y! K; S2 t2 L    │  │  │  │  └─woff2
1 K" ?& h( p1 g0 P    │  │  │  │          FiraCode-Bold.woff2% o6 @4 U  C+ o  P: n0 X
    │  │  │  │          FiraCode-Light.woff2
1 `5 e& \. L" ?. J" i0 @. N9 C    │  │  │  │          FiraCode-Medium.woff2
5 a2 i: ~: l: K8 J0 Y/ Q    │  │  │  │          FiraCode-Regular.woff2
. d) z8 E. x) _% x. Z    │  │  │  │          5 K5 i$ g8 \/ w  A0 m
    │  │  │  ├─print9 X1 `# \( P, _) G; s6 Q6 i- y
    │  │  │  │      paper.css) }1 v% G2 a9 e  K* B; r
    │  │  │  │      pdf.css" z- ]9 O- @/ {8 |" f" T
    │  │  │  │      # ^3 \7 P5 W2 t  R
    │  │  │  └─theme* _8 {3 v$ H9 ]$ m' H, ~+ Q
    │  │  │      │  beige.css
: [! t6 w# A4 D" N$ J! G    │  │  │      │  black.css
( C2 @( t7 T! }* `8 a    │  │  │      │  blood.css
; R" q2 j! S& S1 d    │  │  │      │  league.css8 e& T* k1 s& v4 D# b5 A- J! x; I
    │  │  │      │  moon.css1 Y" W+ B& g2 |% S
    │  │  │      │  night.css6 T1 ~5 w( V' L! I1 i* A
    │  │  │      │  README.md
# @* F6 M8 B+ n- q3 u    │  │  │      │  serif.css
8 K/ ~# o8 F5 b8 |2 V    │  │  │      │  simple.css
* a9 Y& I; p! U0 F/ U    │  │  │      │  sky.css. A" o/ G% M- |) j) N0 R# h
    │  │  │      │  solarized.css2 w$ {5 M) F- h! W' h( W
    │  │  │      │  white.css7 i& N2 }1 |8 f: I2 y  G
    │  │  │      │  
8 |. w7 m/ J0 X6 W; A    │  │  │      ├─source
( Y4 M! H+ _" d) P; ^6 m* K    │  │  │      │      beige.scss
& Q) k3 M! b3 H5 u% R    │  │  │      │      black.scss8 b( ~7 ^( S' J, M+ p4 F
    │  │  │      │      blood.scss
. r' |! v6 R2 q3 E! X3 \# p    │  │  │      │      league.scss3 N4 K( q; ^4 ~1 ^
    │  │  │      │      moon.scss. P  M# ]$ L, p
    │  │  │      │      night.scss0 r' Y, d" ^* K- c4 Z% F+ f
    │  │  │      │      serif.scss
0 o1 b3 A" [% \. r8 Z    │  │  │      │      simple.scss" W7 {3 D# e  W/ u. W" Q* e
    │  │  │      │      sky.scss9 [1 Y; ~6 b; w/ z" V( J  j! J( R4 ?
    │  │  │      │      solarized.scss
7 L: h0 e; S/ x0 q    │  │  │      │      white.scss
5 C+ u% s% Z. k" p+ L( U    │  │  │      │      
. @) w3 ]0 Y7 q0 b; }7 C- l! u+ n    │  │  │      └─template3 u$ b  r0 p5 N, Y  a$ A4 }
    │  │  │              mixins.scss: C! X5 y% z% p
    │  │  │              settings.scss
. v; f7 r1 B: D" J) x: c& J    │  │  │              theme.scss
1 ^, L, ~, [) e( D4 l    │  │  │              
' M/ k' Y- D1 n2 h7 x% J7 J8 W    │  │  ├─images
7 Y( s( {6 A+ p7 O- Y* P$ j- V    │  │  │      active01.png8 \/ I& A% A  {, T
    │  │  │      c.jpg
* u; E$ [8 F9 o. f8 ]* b6 W3 ^    │  │  │      eureka01.png. C1 O- c; J  ?' z
    │  │  │      eureka02.png& ?1 r7 _6 t* n, t
    │  │  │      eureka03.png' z7 M$ o* {8 K$ k* |% o9 J
    │  │  │      feign01.png- s2 r: @8 A+ _* ]* C6 V
    │  │  │      feign02.png5 O5 r8 `! ]& D- k  w  n
    │  │  │      feign03.png) K6 P; z/ l, s9 `5 z; V
    │  │  │      feign04.png
: Z* k# N0 Z9 a& d! O# p    │  │  │      feign05.png
1 Y* g. i/ t9 {' ?/ Q7 C4 m+ k    │  │  │      funny01.png4 D8 }5 }- z0 ~6 l$ W! |
    │  │  │      gateway01.png$ O# m" a7 j8 z1 g. [" U0 c
    │  │  │      gateway02.png4 W7 c' l3 [7 Y& v5 t5 b
    │  │  │      gateway03.png
$ A+ j0 c: P$ e! M  ^4 b, d  O    │  │  │      gateway04.png
# n; `( V/ N: e8 `( v& R$ m    │  │  │      gateway05.png
$ b' k. B4 s7 M    │  │  │      itheima.jpg! t# P, K, w4 W, l9 c: Z
    │  │  │      itheima.png
4 c1 ?) L" g! n* w. T0 [# t    │  │  │      jlewis.jpg
+ {" K8 F& _3 L7 x& F    │  │  │      loading.jpg
( t, Y& z: z+ e, g! Q+ F/ O) F/ R3 Y    │  │  │      lottery01.png
; N" O& F. C5 c* z$ p$ ~    │  │  │      lottery02.png
9 o3 q2 g$ M+ @3 u- p  r% e' \    │  │  │      lottery03.png
9 q; y( o1 P1 U* C    │  │  │      m.jpg, S  q$ K6 U+ W/ B/ @
    │  │  │      mb.jpg
% q! J. F2 }+ |& W    │  │  │      mf.jpg1 E5 U  V! D: t- t. v
    │  │  │      micro01.png
3 b9 e. j( i0 U4 F# K( W4 v    │  │  │      micro02.png
8 @1 @. F3 A% ]4 k9 J3 R( v. Z    │  │  │      micro03.png
# L) e( M9 ^' }  b    │  │  │      micro04.png4 o5 N' [3 v9 Y! |
    │  │  │      microservice01.png2 s( x/ h- S) q9 H- s: p
    │  │  │      MicroServiceArt.png7 J  `7 i) T5 i" W$ q
    │  │  │      s01.png
$ v& f0 f$ a3 ]) m0 H    │  │  │      single01.png, r, G. y) v1 Z8 [4 _. e, v# E5 Y
    │  │  │      single02.png; \6 B; Y/ t  W" n) j; t
    │  │  │      single03.png
) `4 c6 g9 E  J    │  │  │      SingleApplication.png
" R& c. \3 {8 V# i    │  │  │      # P7 B4 C* F; J
    │  │  ├─js
" p; |0 u7 i0 Y' S    │  │  │      reveal.js
& ?& u- U4 e3 k    │  │  │      reveal.min.js9 U* c5 U3 O8 n) A/ }, t
    │  │  │      
: U9 S/ A: {* H$ ?, n3 O* z) j, H$ X( m    │  │  ├─lib
/ v  ]8 ^" J+ K7 r$ C' ^    │  │  │  ├─css. |1 X; l" j; n6 }3 u
    │  │  │  │      zenburn.css
0 @0 y: n7 h% D9 r, T7 ?    │  │  │  │      3 R+ P! @6 ~. G/ t& e1 P
    │  │  │  ├─font
7 e3 X9 e, E* I% j    │  │  │  │  ├─league-gothic
. N" j1 n5 w% ~    │  │  │  │  │      league-gothic.css. Y  d( d+ p2 Z' a; n' H
    │  │  │  │  │      league-gothic.eot; Y3 R' m8 m* b9 v5 }( F
    │  │  │  │  │      league-gothic.ttf$ {# u6 n4 \5 t3 w8 R) X  y
    │  │  │  │  │      league-gothic.woff8 O2 q& H/ F* b  n
    │  │  │  │  │      LICENSE, b2 ~8 F& ]( ^  {; U
    │  │  │  │  │      ' U  W8 w% T$ n7 u2 f. t4 z
    │  │  │  │  └─source-sans-pro
3 R  K7 ~& y% g8 H    │  │  │  │          LICENSE6 T1 y, z2 E3 `$ J
    │  │  │  │          source-sans-pro-italic.eot' ?6 [8 M- |- F6 n% X2 I7 s- H
    │  │  │  │          source-sans-pro-italic.ttf
: j. R: ^& g3 I) n& L3 y8 k1 r; }    │  │  │  │          source-sans-pro-italic.woff2 G0 a; v& y( W* D. f
    │  │  │  │          source-sans-pro-regular.eot5 g3 ]; L9 b* _+ a) y+ {. I
    │  │  │  │          source-sans-pro-regular.ttf6 @1 e  H: v9 i, q; M9 ?: w
    │  │  │  │          source-sans-pro-regular.woff2 ~$ c. a% y6 k0 @3 p4 g
    │  │  │  │          source-sans-pro-semibold.eot
/ ?3 B! o9 E% _, Q' o' z+ F    │  │  │  │          source-sans-pro-semibold.ttf3 W- ~3 L. V$ B0 \
    │  │  │  │          source-sans-pro-semibold.woff
. B. o2 r* p9 K# _/ w3 Z    │  │  │  │          source-sans-pro-semibolditalic.eot& h3 U* t* B* Z; L# G
    │  │  │  │          source-sans-pro-semibolditalic.ttf
0 B4 h8 \: j& M2 M7 g8 S    │  │  │  │          source-sans-pro-semibolditalic.woff
  E) }& A8 n9 N( e: g7 N. m% S    │  │  │  │          source-sans-pro.css
8 x; }4 m! }) q/ {0 W, R  k( p! j    │  │  │  │          3 W/ P$ Y9 L. T3 d2 z
    │  │  │  ├─js' \, g! q. V5 P5 f
    │  │  │  │      classList.js- n# E6 g2 }8 j
    │  │  │  │      head.min.js, ]# N1 a- |: J0 @  B
    │  │  │  │      html5shiv.js
2 {, _3 ?; V& a- l4 w    │  │  │  │      
3 H" Q0 M+ x% r' }' ^8 ]2 Z    │  │  │  └─plugin& p8 p. `2 o. ^! R, t- G
    │  │  │      ├─highlight
+ O/ x8 U) a2 R% B/ e6 p3 N    │  │  │      │      highlight.js: A! f/ h% U% y. z7 z
    │  │  │      │      
! ^0 h' t! Z& Z/ ^; O1 w5 ?    │  │  │      ├─markdown$ G9 p2 ?5 H# Q: b, `' Z8 q0 ?% u; L2 F
    │  │  │      │      markdown.js% D8 f, Y( s4 {' ^1 M" j
    │  │  │      │      marked.js0 W$ M0 a5 r9 F1 m7 U+ a! D
    │  │  │      │      
5 h( D% q! J' x5 B% D* I    │  │  │      ├─math& \) h& u3 v+ k
    │  │  │      │      math.js2 `% I7 A9 \2 H' ?* O% E% B  @
    │  │  │      │      
7 r  e2 c; Q1 a+ Q    │  │  │      ├─multiplex0 W7 v4 K0 Y2 [# d$ @3 Z6 P% d
    │  │  │      │      client.js
0 S0 S! s+ V+ X. u  w) o7 J    │  │  │      │      index.js
, v+ K* o" \+ W: O7 F: {    │  │  │      │      master.js
: C" G! K. M$ }    │  │  │      │      package.json  z% N4 P  J& Q! q; h
    │  │  │      │      * |% o+ |8 r8 S) g$ y
    │  │  │      ├─notes# j& L" E# j, Q
    │  │  │      │      notes.html
# R% q& C2 ^$ y8 b$ S8 A    │  │  │      │      notes.js
4 G+ K; G0 h+ V/ _0 A/ z    │  │  │      │      
! S8 D' A! k/ r" I9 c% _7 L3 e    │  │  │      ├─search* M$ `  J& L! R3 I1 g
    │  │  │      │      search.js5 y! P- `" d! U  g3 A
    │  │  │      │      0 f+ a1 l1 [' V6 m) p0 H
    │  │  │      ├─tagcloud
% W& I) W+ {0 Y$ e    │  │  │      │      tagcloud.css
, U1 U) c' G" H; x) W    │  │  │      │      tagcloud.js# w9 e  o9 Q% f9 T0 l
    │  │  │      │      tagcloud.min.css
0 ?$ p" j; C) S$ n* y8 ]3 x- Z    │  │  │      │      tagcloud.min.js6 c8 m& v" I6 T
    │  │  │      │      4 l/ d0 q6 I$ H: R8 D# Y" j
    │  │  │      ├─yungen. v. O, z0 }* S3 }. l
    │  │  │      │  ├─css& p# |8 |5 X0 e" X: [$ d  Z/ f- C6 I
    │  │  │      │  │      yugen-logo-hideOnLoad.css, g+ k0 f. |1 P7 z& ^2 I
    │  │  │      │  │      yugen-logo.css; l5 P- ?; W- e$ n* J7 B" l* M, k& e
    │  │  │      │  │      " z2 w* Q9 \: B+ A; |
    │  │  │      │  └─js
9 m' X, }, h1 `' J$ U  X* x# A    │  │  │      │      │  yugenlogo.js9 e- Q  Z" S- y8 W* z& b
    │  │  │      │      │  yugenlogo.util.js
& v* G; L) L. a6 t4 \6 V: U& H    │  │  │      │      │  5 n" ^  I0 _8 f4 e* G, J
    │  │  │      │      ├─input+ J) L( X- A+ f" E( @" Y: U
    │  │  │      │      │      yugenlogo.input.move.js
2 p$ M, B9 ^4 A  \& m1 I2 M: Z    │  │  │      │      │      yugenlogo.input.orientation.js
+ r6 W2 ]% F  G# i, c$ `    │  │  │      │      │      yugenlogo.input.press.js9 `* A' C% i/ X, L; A- j
    │  │  │      │      │      1 {8 W% O! {  K% p) Y
    │  │  │      │      └─libs
; j7 B9 [" d% e9 }! [    │  │  │      │              jquery-1.4.4.js: R0 l) B' G0 e; [) q+ {
    │  │  │      │              jquery-1.4.4.min.js  J. u0 q0 A/ p2 |4 K3 M0 x* b
    │  │  │      │              6 E. z' w. h, u# A! D
    │  │  │      └─zoom-js% D, [. e4 ?1 w( u% L
    │  │  │              zoom.js
: {" D; M" Z6 Q7 G" n4 y0 J    │  │  │              ( a1 ^  \+ ^. q6 u, @: Z! f
    │  │  └─plugin
- }$ Q9 R. y4 ~3 `    │  │      ├─highlight0 ~8 C9 q* z+ p8 _* X
    │  │      │      highlight.js
0 J/ M/ e! y9 a% y6 X* G+ X    │  │      │      # L0 H& r& }/ T, V- ^6 U0 h
    │  │      ├─markdown0 G5 c4 m1 S/ ]9 H/ O
    │  │      │      example.html- D& U6 j5 ~/ g
    │  │      │      example.md& m+ D8 E7 n8 i5 u0 y
    │  │      │      markdown.js
" O" C- f/ K/ f" Q    │  │      │      marked.js; ~/ _; K6 f- c  D
    │  │      │      
& B& S1 C5 p' S) b2 t    │  │      ├─math
  H9 o6 S6 S3 ^    │  │      │      math.js
. R9 K# {) W5 o7 ^+ @* \; g    │  │      │      1 t7 ?' N! N6 y' K
    │  │      ├─multiplex  J+ x( c9 @$ Y" M
    │  │      │      client.js( I: v* e; p% C: A
    │  │      │      index.js
8 g1 L6 b) @- h/ Z    │  │      │      master.js
# l  C0 G* f% t1 @2 ^, G    │  │      │      package.json' B( t) W2 z( [1 N5 Q+ o
    │  │      │      , Q$ r4 [9 t& e) R! f: Z1 ^5 ~
    │  │      ├─notes
: o; R5 J" Q; r7 \! D8 S    │  │      │      notes.html
) [1 j1 Y9 a' a5 o, V$ d! r    │  │      │      notes.js
$ M. t. q" ?0 @9 d7 h: d) b- N+ K    │  │      │      . Y5 c; Z+ U( j6 N
    │  │      ├─notes-server
  z/ n+ C8 l, F3 x) G3 [    │  │      │      client.js# x# x3 D' b: e! c  `
    │  │      │      index.js1 r9 {) y- Y0 |; R* d* w+ n" q. j, o
    │  │      │      notes.html" a, h5 [  U4 U( H
    │  │      │      % t$ H. a* x+ j+ O- N
    │  │      ├─print-pdf
1 F1 t( |) l: {5 [, X4 r    │  │      │      print-pdf.js# ]5 h. ?( N0 x. O+ H
    │  │      │      
- K) ~- z2 [9 Q9 X    │  │      ├─search
% h( \8 w9 l" ^( e' D; f8 ]4 \    │  │      │      search.js& x! t/ J: M8 R
    │  │      │      3 q1 h+ P  z) ]2 N) R- \/ o
    │  │      └─zoom-js
* q: X$ n. G& O, I' f    │  │              zoom.js
3 @) g% O' H  d0 ?  T. A    │  │              . |+ e! G  w4 v4 X$ e  N
    │  ├─springboot版本彩票项目# O) n/ _+ ?+ h4 }, l( t
    │  │      readme.md1 V! A  s! F, g0 v# ?" t
    │  │      ) P* _' T/ o' G% p
    │  ├─sql
5 s) u! ?6 i  B6 y$ t" e    │  │      info.sql/ t# i0 W9 I9 l6 S5 W. ]& \4 L
    │  │      user.sql
6 Q$ m) n1 o+ t9 P" Z    │  │      
* C% ?8 m) m( W$ ^3 W- d6 Z8 k    │  └─工具类. X: Q! N- o/ j7 r. O: F# s, I
    │          JsonUtils.java
) |4 l8 p, z, V" d8 ?# J4 W    │          ResponseVo.java6 ~+ t; ?+ ]# P6 T4 o5 F9 Z1 M# K
    │          UUIDUtils.java
8 `4 j1 @. [& K( y    │            Y9 |3 a2 X6 i; v3 H  j, U) E
    ├─05_赠送课程-手把手写比特币
9 J; o' }! H4 d; z    │  │  readme.md
2 V& I: K7 p; o% {    │  │  ) b* @( ^" o7 K6 ]5 ]: b
    │  └─code8 w' D" \5 v- g8 r" w& b* o8 \( e
    │      │  bootstrap.sh- I& C! H! F, S$ o5 I% @% [( T
    │      │  % H2 h4 U0 E  |) X# B) f7 M; ?0 }7 s
    │      ├─Note_blockchain1
9 n; m. t5 a% v1 l4 u1 p' p    │      │  │  build.gradle7 _4 n* {, {: n2 ^5 G* M" g  H( K
    │      │  │  gradlew, [  {0 \7 {: [7 E" T( s% Z7 j% b
    │      │  │  gradlew.bat
; P% v/ r2 _% }1 q% ^" p# r    │      │  │  note.txt. M! B& y' B' B, L+ s
    │      │  │  settings.gradle
- b1 {9 c' J  a' s0 @    │      │  │  
7 A/ t  m2 Z! ?# d    │      │  ├─.gradle1 |0 ]: I( h( c1 G6 `3 s  Y
    │      │  │  ├─4.0
9 x9 o8 }; f  ]    │      │  │  │  ├─fileChanges
" \% D9 s1 D3 p" A3 r' u    │      │  │  │  │      last-build.bin
1 K3 Q4 N  S! v' F* H4 |; k    │      │  │  │  │      $ O$ G; c; G/ |
    │      │  │  │  └─fileHashes+ [/ @0 }, y, ~& v) p
    │      │  │  │          fileHashes.bin
) i7 y0 \1 [- b6 M. @: M    │      │  │  │          fileHashes.lock! ]4 }, @; @' ]4 l) P" b: Z
    │      │  │  │          ( o  H% [' P! C
    │      │  │  ├─4.4
8 K* {6 ^6 V% ]( G+ a( U    │      │  │  │  ├─fileChanges
& b4 q6 b+ @9 N    │      │  │  │  │      last-build.bin+ n' H) h' ?# c6 k3 r- S
    │      │  │  │  │      $ t7 f# m5 e' f7 n7 H2 e$ B
    │      │  │  │  ├─fileHashes
# N+ H7 D6 F5 X    │      │  │  │  │      fileHashes.bin
* p2 M% x, r8 A8 u' i    │      │  │  │  │      fileHashes.lock
2 I7 a2 q( A1 t6 s& F2 U* j    │      │  │  │  │      
/ y/ [7 B$ S; W$ V# v    │      │  │  │  └─taskHistory* ~- F8 ?9 ?7 T% O. y* Z% m) ~
    │      │  │  │          taskHistory.bin
+ Y  A+ ], @6 P7 n    │      │  │  │          taskHistory.lock
1 O4 @: a1 q/ q6 P6 X! {    │      │  │  │         
  `! W0 P9 v. A4 S( M" }7 M/ K    │      │  │  └─buildOutputCleanup1 L& W6 R& A. u/ `$ |$ N5 s
    │      │  │          built.bin
4 t3 S2 @* |$ C  O    │      │  │          cache.properties
2 H3 E/ @% C$ P$ ?; k9 E& B3 B    │      │  │          cache.properties.lock
. a2 [7 {7 R3 n3 b    │      │  │         
. I. }1 f: K" [1 q- C. ?8 N    │      │  ├─.idea
5 X* D1 i5 z' c4 y0 r    │      │  │  │  compiler.xml" S6 }, a6 e4 d) F6 n3 b
    │      │  │  │  encodings.xml
  _: r. s0 N, k, j5 e. n    │      │  │  │  gradle.xml
/ i+ f6 f) R3 Z* E    │      │  │  │  misc.xml
6 T. H! b+ |3 t    │      │  │  │  workspace.xml
4 l, t' s- d5 X4 I# C6 S    │      │  │  │  
# C$ o4 W' n0 V. ], q    │      │  │  └─modules1 e' p* H' |4 _" ?
    │      │  │          a.txt( J5 J. k. s: r
    │      │  │          note.txt# J  m6 J' I; U5 C4 |
    │      │  │          Note_blockchain1_main.iml* U4 ?, I5 h; N0 s
    │      │  │          Note_blockchain1_test.iml) g9 H+ v: C0 n0 V* |0 R
    │      │  │          ! g, v4 [. h5 A" `7 n- n
    │      │  ├─build
7 Z! g, `/ B  c    │      │  │  └─kotlin-build
- j1 n. J+ R2 Q2 H- z    │      │  │          version.txt2 X% `! R$ b1 b  o4 p# P* {
    │      │  │         
. t  I: P0 r8 w/ L3 t    │      │  ├─gradle; I  q# O; k% V, @& g
    │      │  │  └─wrapper% ]- d( t1 R* |# @' O. s4 G  d' @. w
    │      │  │          gradle-wrapper.jar
& e& M5 }! S! B, j- v1 o    │      │  │          gradle-wrapper.properties$ L. \$ p7 Z3 x) y2 Q" }
    │      │  │         
/ P9 M( B* R; [    │      │  ├─out% T9 Z! o8 k: }5 W
    │      │  │  ├─production
% R: J" X* E6 I7 Y" J0 c0 v    │      │  │  │  └─classes( N, K. }! @4 v, S) z3 W2 w
    │      │  │  │      │  addGenesis.html( |$ ?! c' q( t% Y* c. q! D. ^
    │      │  │  │      │  addNote.html2 w- I) Z4 n7 R6 ^/ E3 Z
    │      │  │  │      │  addNote.html.baiduyun.uploading.cfg
. i- }, }7 a1 E, G0 ?    │      │  │  │      │  addTansaction.html- Y: j# w. {) c- D
    │      │  │  │      │  DecryptJsResultKt.class
5 Y" _$ m7 O' g: ^    │      │  │  │      │  HashUtil.class, n6 c1 V) v3 @
    │      │  │  │      │  MyClient.class2 T3 l; q, Q* S5 K( Z; ~
    │      │  │  │      │  MyServer.class
2 Y$ {" O$ h. y# x0 X" K    │      │  │  │      │  NoteServerKt$main$1.class1 b9 s, w. k, M, D' {* z6 ~
    │      │  │  │      │  NoteServerKt$main$2$1$1.class- ~0 b  d2 x4 G( d% L& T
    │      │  │  │      │  NoteServerKt$main$2$1$1.class.baiduyun.uploading.cfg  w* \$ X7 d' s  i4 [
    │      │  │  │      │  NoteServerKt$main$2$1$2.class
0 v$ g! c0 }, b$ C- C- O, y8 Z    │      │  │  │      │  NoteServerKt$main$2$1$3.class
$ |2 u4 H" x/ O* W    │      │  │  │      │  NoteServerKt$main$2$1$4.class" N0 l! i! F8 O, I) R
    │      │  │  │      │  NoteServerKt$main$2$1$5.class
8 @2 p4 `! P4 c- q1 s  w    │      │  │  │      │  NoteServerKt$main$2$1$6.class; X0 m# ]( g  x* k. W! ?
    │      │  │  │      │  NoteServerKt$main$2$1.class) y- e; Z5 `1 p# O- K4 Z0 X8 l
    │      │  │  │      │  NoteServerKt$main$2.class
3 A5 O; k* l8 _: K* u: L8 Z    │      │  │  │      │  NoteServerKt.class
- F* W* L2 I! r2 j! `4 a/ _% u    │      │  │  │      │  RSAUtil.class' @. R; h) _1 W" V3 T4 X# z% m
    │      │  │  │      │  TestKt.class
6 `2 O! [8 F. K% \2 Z    │      │  │  │      │  4 P$ c% X$ H  |  B  Y/ K3 z) a2 [1 s
    │      │  │  │      ├─bean) R4 \1 F7 Y4 U. {! J0 _  X2 c
    │      │  │  │      │      Block.class
# }  b% W2 e6 Z6 e    │      │  │  │      │      BroadBean.class9 Y) f6 |- {; l9 W+ H- A
    │      │  │  │      │      NewTransaction.class
- h- |5 v# X4 X& e6 s9 \/ \* `    │      │  │  │      │      NoteBook$loadFromDisk$result$1.class, d; ~: j7 S: x+ z" v- Z1 q
    │      │  │  │      │      NoteBook.class% M/ M+ J, l7 x: D3 x+ f
    │      │  │  │      │      ! c$ d! n8 {# y
    │      │  │  │      ├─encode7 ~  a4 r$ d( c! N2 S. Y6 g4 v
    │      │  │  │      │      TestKt.class0 c  H1 x+ f3 @2 w6 M. a! {
    │      │  │  │      │      : Y. Q4 |0 C3 _1 Y4 S  _5 D
    │      │  │  │      ├─js" R. I$ w$ l# A( q: Q
    │      │  │  │      │      hashes.min.js
$ D. V1 F2 P8 @0 G, z9 k3 d  |    │      │  │  │      │      jquery-3.3.1.min.js
, c* t8 u. c; m; v2 Q    │      │  │  │      │      jsencrypt.min.js
& m" ~. i& r, B; P    │      │  │  │      │      $ G2 n% o2 g+ f7 f: a1 v5 G1 X- }
    │      │  │  │      ├─META-INF" Z5 D5 z3 _5 B7 s% Q, y6 \
    │      │  │  │      │      Note_blockchain1_main.kotlin_module& M# P1 r+ \8 W0 l. \5 l
    │      │  │  │      │      5 F1 }* q/ z( D& u9 P2 w( U, I) U
    │      │  │  │      └─translate
8 k: W# p. v" A3 K    │      │  │  │              Transaction.class  K" Q* m5 I2 |1 h+ e
    │      │  │  │              TranslateTestKt.class9 l+ y* N4 J, ]9 ~2 p( e
    │      │  │  │              Wallet.class! i; [9 Q- e8 I
    │      │  │  │              : b6 `) W1 ]8 X( B' O
    │      │  │  └─test9 X; j8 k/ X+ a- {
    │      │  │      └─classes
6 V  R& n1 a% f& _" ^    │      │  │              TestHashUtil.class
' `& s! K% S# a9 m3 K    │      │  │              TestNote.class
; I4 r- l. o! `, P: C    │      │  │              
/ y6 E) S3 s4 m2 r' i    │      │  └─src
( e" |2 A7 x( H0 t1 H2 S    │      │      ├─main* `& x3 _' F. D# e8 X
    │      │      │  ├─kotlin1 B3 s& r1 p% y: U7 \4 K' b
    │      │      │  │  │  DecryptJsResult.kt" r1 o+ d" a* F1 Y7 J; P* u
    │      │      │  │  │  HashUtil.kt
3 Y. E6 @, z7 l! Y0 R. s    │      │      │  │  │  NoteServer.kt& A. i( F+ d6 I, m6 V4 y
    │      │      │  │  │  NoteServer.kt.baiduyun.uploading.cfg. X8 X" _1 ?( p" [7 [* b
    │      │      │  │  │  RSAUtil.kt" [% p/ C( F2 F
    │      │      │  │  │  Test.kt6 O$ A' o2 @5 e4 a+ D: K
    │      │      │  │  │  
9 z  X1 f- K- s    │      │      │  │  ├─bean
1 L; m8 |3 U) r$ p; S0 ^    │      │      │  │  │      BroadBean.kt
" L" H6 C/ [; C    │      │      │  │  │      NewTransaction.kt  k3 Q& `2 H! L& }) r. a
    │      │      │  │  │      NoteBook.kt8 g% i0 R( h; C9 f% u" h
    │      │      │  │  │      + P/ O) f+ I; V' K) V  U
    │      │      │  │  ├─encode
5 P9 Y4 k4 M% }( q/ C& X; o    │      │      │  │  │      Test.kt
$ O. B( w: b' d1 I& `; w    │      │      │  │  │      # |( o, m" L* i
    │      │      │  │  ├─translate- F5 N3 H% E9 p  c5 a* ~
    │      │      │  │  │      TranslateTest.kt
$ `7 [9 V9 A; ^    │      │      │  │  │      
/ e+ f  r: n5 c+ F) x0 m    │      │      │  │  └─websocket5 F: i' f- ]' m9 w" G* u
    │      │      │  │          LaucnClient.kt- q& s' R" Z! U, H7 N
    │      │      │  │          MyClient.kt
  i6 p# v( }: _8 O, N) a    │      │      │  │          MyServer.kt
7 _4 d& B) Z& h    │      │      │  │          & g& ~, D* ^. l" i. E% D: f/ R1 F
    │      │      │  └─resources# V; }& p. q5 m" L" H6 W% a" y
    │      │      │      │  addGenesis.html
- Y5 Q4 W6 R, p& n$ C$ W9 F% d3 q    │      │      │      │  addNote.html5 f6 J1 j, ~! f6 X+ m
    │      │      │      │  addTansaction.html
2 P8 C+ ^7 E9 ~7 F% j/ @    │      │      │      │  addTansaction.html.baiduyun.uploading.cfg" x: b/ A' q8 o9 j$ n
    │      │      │      │  + O5 F! E' d2 h4 _& `
    │      │      │      └─js* E7 c/ ~% |/ ?! a- f( H0 h7 s/ x
    │      │      │              hashes.min.js- A' m+ \3 G' C' O
    │      │      │              jquery-3.3.1.min.js
& P8 u* m8 A! C5 A    │      │      │              jsrsasign-all-min.js- _3 K! G) J) [" ~# w
    │      │      │              ) `5 F" L! N# \
    │      │      └─test
" i" s+ Y4 W. E0 r, e3 {    │      │          └─kotlin5 b: Q2 g7 q$ T1 C7 Q/ }3 r  ]# @
    │      │                  TestHashUtil.kt3 b& }$ R7 ?" b: Z' M8 X: _
    │      │                  TestNote.kt
( o. s3 _; i& y% J1 N    │      │                  
6 D' ?0 h; a* H1 Q( t/ {, i$ o    │      ├─Note_blockchain25 X% k! K# G  L3 b* m* b# L
    │      │  │  build.gradle
; A/ Y  l8 ]4 P6 o8 r+ J    │      │  │  gradlew% l$ C0 @+ _: e4 I. f
    │      │  │  gradlew.bat3 T3 O& l. B7 J# K! o# ~* `" Y
    │      │  │  gradlew.bat.baiduyun.uploading.cfg
+ q$ N6 {! |( p+ N0 A" U7 W% D8 [    │      │  │  note.txt; M7 z- ~  N6 w& c" i
    │      │  │  settings.gradle
0 G5 Q6 ^4 `- X+ W" N! E+ [    │      │  │    [( t' d2 @8 A& Q
    │      │  ├─.gradle; {1 W! P, a7 h
    │      │  │  ├─4.06 W: C' H) C/ E. n- k- |
    │      │  │  │  ├─fileChanges
+ E& g# w2 F  j+ i, t, z: |    │      │  │  │  │      last-build.bin: Z* G* u# d7 N- @$ f$ O. H
    │      │  │  │  │      $ F6 k. v. p- }2 G
    │      │  │  │  └─fileHashes4 e( q- I/ R. v" @: i
    │      │  │  │          fileHashes.bin! @- [& T. \7 ]& i* \
    │      │  │  │          fileHashes.lock
0 u2 v: s' B6 B' ]; c1 B    │      │  │  │          fileHashes.lock.baiduyun.uploading.cfg
8 f7 e- \( ?) w6 u' f* l    │      │  │  │            Z% F- M+ W7 W' l$ D
    │      │  │  ├─4.43 w. |0 q  K  S) p$ Z7 e8 R
    │      │  │  │  ├─fileChanges8 b/ O) y7 t2 H  U, f: j2 ?# c
    │      │  │  │  │      last-build.bin2 O& @, X4 }9 E. M# s& R
    │      │  │  │  │      2 p) y4 T& W$ l* R
    │      │  │  │  ├─fileHashes- k$ z6 }% W" A/ X" p% N, t% X
    │      │  │  │  │      fileHashes.bin
- I& c0 ^/ ]: c( s+ }" t3 V! \9 b6 {    │      │  │  │  │      fileHashes.lock2 B0 ?  \6 y" u& R2 N7 S2 d
    │      │  │  │  │      
& z: x( f# @# r: t* x, u5 {    │      │  │  │  └─taskHistory; e+ D. h: i' i! |  y. C. ?
    │      │  │  │          taskHistory.bin
2 ?$ i- A. T7 `6 j/ T0 K2 Q9 d    │      │  │  │          taskHistory.lock/ V5 a' r+ B: r& Q* R
    │      │  │  │          - n& ~7 {' @: z: F/ T, [
    │      │  │  └─buildOutputCleanup
# D0 N+ b& }) a' @; Q% R    │      │  │          built.bin
! a/ h7 l! Y) w7 y# ^: X' h    │      │  │          cache.properties
0 _8 A1 l3 M8 W; x+ e    │      │  │          cache.properties.lock
* a, D+ C: Z2 ?% c5 N    │      │  │         
) W- J! X( U& P  L' I, e    │      │  ├─.idea8 V7 l2 @# ~, Z- q: F
    │      │  │  │  compiler.xml2 A. K4 F: v8 c$ @4 u8 w5 x
    │      │  │  │  compiler.xml.baiduyun.uploading.cfg# k. A6 x& @9 u
    │      │  │  │  encodings.xml6 @5 C: \2 G! a: f- ?
    │      │  │  │  gradle.xml7 q7 `/ ~: D2 c
    │      │  │  │  misc.xml
. P' c3 M; ~" S! Z) e    │      │  │  │  workspace.xml6 H7 R8 b  ~$ }8 O  p3 a
    │      │  │  │  
# B+ d7 Y1 V+ h) L$ g7 x: z    │      │  │  └─modules9 v6 z5 D* x+ u  l8 z& A; L
    │      │  │          a.txt. e7 m5 |4 k8 t
    │      │  │          note.txt4 B0 L6 B" |" h# z/ t! W  T# S
    │      │  │          note.txt.baiduyun.uploading.cfg
* n, b3 b. f' @& |  f    │      │  │          Note_blockchain1_main.iml
# T5 Z8 O0 m' U. c    │      │  │          Note_blockchain1_test.iml
% d3 n, h5 H4 Q' r7 B' C    │      │  │          2 l9 n3 r% q$ I3 r4 R
    │      │  ├─build9 ]0 h+ S2 p9 H% G4 x2 R
    │      │  │  └─kotlin-build
/ L9 r' X7 F9 t    │      │  │          version.txt$ }6 [- V; y7 v- _
    │      │  │          0 J  a5 N+ d7 q& s4 u1 @# [
    │      │  ├─gradle4 Z1 ?5 |3 H9 k& F/ k8 d, S
    │      │  │  └─wrapper- t, Y6 o; d3 Z: L  A
    │      │  │          gradle-wrapper.jar* e( ^; ]" t. q( U! W; B2 a
    │      │  │          gradle-wrapper.properties9 n* c! C; Z. E2 }& W1 Q5 {
    │      │  │         
5 H+ ]3 E3 H3 {+ o% z    │      │  ├─out' l- Z* u) e# Q. T
    │      │  │  ├─production
5 n+ r7 `) R: y) N) l' {    │      │  │  │  └─classes
1 t% ]  z* G; f$ Q' [    │      │  │  │      │  addGenesis.html
  y& e- B- p+ W! {7 C6 a    │      │  │  │      │  addNote.html* G$ j2 t) `$ v! x
    │      │  │  │      │  addTansaction.html/ H8 \& H% `4 A; R
    │      │  │  │      │  addTansaction.html.baiduyun.uploading.cfg
5 l- Z# f3 s6 D4 @! c' c' T    │      │  │  │      │  DecryptJsResultKt.class, d. M" g: F( k" p; j( H* d4 h
    │      │  │  │      │  HashUtil.class9 T) a/ ?% A5 z( v/ n
    │      │  │  │      │  MyClient.class
9 G; H$ x" O: y5 p    │      │  │  │      │  MyServer.class
2 l* w; @0 U" @. m+ l0 K( i0 g" r    │      │  │  │      │  NoteServerKt$main$1.class" |7 L9 {: W2 A& S/ u& [/ L  B- K# }
    │      │  │  │      │  NoteServerKt$main$2$1$1.class, F0 }9 T* B; u7 X, h% A& U6 l
    │      │  │  │      │  NoteServerKt$main$2$1$2.class
& I; N# \1 d2 ~    │      │  │  │      │  NoteServerKt$main$2$1$3.class
/ K* [0 q$ H' e+ S5 K5 k) x) ^    │      │  │  │      │  NoteServerKt$main$2$1$4.class
& b- ^. G( l# F    │      │  │  │      │  NoteServerKt$main$2$1$5.class' k, o3 S& o4 p' @0 z3 ]+ M
    │      │  │  │      │  NoteServerKt$main$2$1$5.class.baiduyun.uploading.cfg8 D8 e+ t$ ]8 X. S# q; |5 d. X  l- W
    │      │  │  │      │  NoteServerKt$main$2$1$6.class' Z' J) `" U% p1 K# b) D
    │      │  │  │      │  NoteServerKt$main$2$1.class0 u( m8 A, k. t% x7 s# M8 U: g
    │      │  │  │      │  NoteServerKt$main$2.class
% u: f/ p: m$ a    │      │  │  │      │  NoteServerKt.class* w, Y9 a3 t1 I' V
    │      │  │  │      │  RSAUtil.class
) @  c6 g& m$ O' h- _4 x- b. a    │      │  │  │      │  TestKt.class
! ~* \" ?, `& O/ g) x, k6 J+ S3 H    │      │  │  │      │  5 F3 D2 T( {9 G8 e# A
    │      │  │  │      ├─bean
7 k6 v+ M9 \9 S4 j- @3 e1 N    │      │  │  │      │      Block.class/ ?. S- R- J2 ~& ?0 a7 m' f
    │      │  │  │      │      BroadBean.class
6 [+ i, }+ C4 m! V    │      │  │  │      │      NewTransaction.class  f+ R4 v" E* g+ a  b) l4 ?( G$ Z9 d9 z
    │      │  │  │      │      NoteBook$loadFromDisk$result$1.class* y' F$ f( f% T6 P/ Y
    │      │  │  │      │      NoteBook.class2 \! D  M+ T8 y; l% J
    │      │  │  │      │      , O6 T) q& ^. k
    │      │  │  │      ├─encode  C' @; \3 R5 C
    │      │  │  │      │      TestKt.class& n3 t/ ]4 L" J. f' h+ O# ?
    │      │  │  │      │      # e1 ^! a) \3 x! U4 Y! `+ q8 I
    │      │  │  │      ├─js
" V- X1 B. t! K) t5 C, x3 O    │      │  │  │      │      hashes.min.js4 K. J! o4 O: a9 X
    │      │  │  │      │      hashes.min.js.baiduyun.uploading.cfg
& m* U. ?# O8 x! _* v    │      │  │  │      │      jquery-3.3.1.min.js) ]8 X. F" t% Z, [# @; P7 @; a
    │      │  │  │      │      jsrsasign-all-min.js
' ^$ A0 x3 P5 p/ {% }; v: X$ a    │      │  │  │      │      
# l3 |' F8 i. j2 ]    │      │  │  │      ├─META-INF
9 Z7 R8 A4 \: C6 B9 }& h# q    │      │  │  │      │      Note_blockchain1_main.kotlin_module
$ U, S8 d- n* N9 l    │      │  │  │      │      Note_blockchain2_main.kotlin_module
! g; `+ F9 d2 |    │      │  │  │      │      
, e: F+ k# b0 Z6 G  |7 ]    │      │  │  │      └─translate% T) @1 A" ~: g. Q9 `9 F/ c" b
    │      │  │  │              Transaction.class
! ^6 k6 G$ N1 a! K, W( `    │      │  │  │              TranslateTestKt.class4 ?% `; W9 c" A7 U
    │      │  │  │              Wallet.class6 _. b8 B4 l: o) E% K6 [$ {5 v4 |
    │      │  │  │              5 M, k9 b' x; p) R5 ?5 S7 x1 v" G' y
    │      │  │  └─test
5 M. q- z1 [% R    │      │  │      └─classes( [$ e" T4 R% Z4 S
    │      │  │              TestHashUtil.class
8 S, y6 u' U$ t3 f+ o    │      │  │              TestNote.class4 y4 r1 I3 U1 h: f" V7 G3 s, g
    │      │  │              
- o- y1 Q3 |0 [6 e    │      │  └─src
0 K/ b* A8 B. j- k+ l0 O    │      │      ├─main
% c! K' q6 D6 H7 r    │      │      │  ├─kotlin
1 P. o! b- I; ?+ t. A1 ?9 i  s" V5 Z    │      │      │  │  │  DecryptJsResult.kt
3 L, M  f" u& {; G7 x3 n9 G$ e( s8 c    │      │      │  │  │  HashUtil.kt% v* D" B3 m8 ]( j2 O. @' c) a
    │      │      │  │  │  NoteServer.kt
+ ^/ R! J2 k" S$ g9 Z' D9 W6 o    │      │      │  │  │  RSAUtil.kt) |3 g" m4 R7 U2 c
    │      │      │  │  │  Test.kt
  O/ J5 J+ r' R. k# ?/ c% y) K    │      │      │  │  │  * Q4 [; K: `* P- T' L4 P; R
    │      │      │  │  ├─bean
, Z6 }+ y% Q1 W    │      │      │  │  │      BroadBean.kt# f! ]' `# v4 W) f2 x, r1 s
    │      │      │  │  │      NewTransaction.kt* h( p) m. j$ V3 d" B
    │      │      │  │  │      NoteBook.kt1 S. N  z, d# n: P& V; B
    │      │      │  │  │      + _8 _/ p. H" P/ N/ `
    │      │      │  │  ├─encode- K0 [4 y: @4 m; X9 i4 v) \
    │      │      │  │  │      Test.kt' ]! n* V  p' x0 v: L
    │      │      │  │  │      % i5 l: U1 d! o. p, K
    │      │      │  │  ├─translate* r$ L7 t2 i' y* N& T% q
    │      │      │  │  │      TranslateTest.kt3 e" `6 J/ S3 L' W7 J1 T8 i
    │      │      │  │  │      ! A) [! t  c. ]7 J- o
    │      │      │  │  └─websocket! ^* s! M* w. {  [- R" O
    │      │      │  │          LaucnClient.kt
9 W; I; ?4 a* o8 w8 v5 P1 J    │      │      │  │          MyClient.kt% G/ R9 I- \0 \% s. P
    │      │      │  │          MyServer.kt
5 Y" O+ k, n) H% Q- s: G3 [    │      │      │  │          ' T. W  Y1 K0 r% O9 |" g5 l
    │      │      │  └─resources
/ w) w2 J( H# u8 [    │      │      │      │  addGenesis.html
% @  A/ N2 N$ j) F7 y3 [    │      │      │      │  addNote.html1 z1 W" w6 D) w; ~8 ^
    │      │      │      │  addTansaction.html
1 J5 Z# w4 G5 `. l" e    │      │      │      │  
' @* F  e$ }: Z4 }; M1 v% R    │      │      │      └─js* y( _9 x# ]2 U8 g$ I
    │      │      │              hashes.min.js, C5 L- i$ _  H
    │      │      │              jquery-3.3.1.min.js$ K2 l: |& A+ v% d+ N0 i3 K
    │      │      │              jsrsasign-all-min.js
+ G6 `6 r7 l5 V9 G& w2 Q    │      │      │              
! R: N. t2 z8 ^    │      │      └─test" n* z) Z! {; P! V3 x
    │      │          └─kotlin
- A2 z8 A0 X) N: n    │      │                  TestHashUtil.kt
9 `- j# ?" K4 B. D: w    │      │                  TestNote.kt
6 H" O  n+ B% ^/ P; o2 X8 u2 [( c8 Q    │      │                  ) i8 W+ i6 n. k6 Y3 L
    │      └─Note_blockchain31 d6 H; ]' [: E  d$ V
    │          │  build.gradle
: X4 z* n( J6 @  s* i    │          │  gradlew
1 [3 Q- s. y7 t& \8 N% s    │          │  gradlew.bat
/ |6 i) n  J, o    │          │  note.txt6 N. Z' n* T# X) M9 d
    │          │  settings.gradle, P' F0 L. y0 x5 f4 @( t! [
    │          │  
$ a) \9 d3 @5 A: e    │          ├─.gradle6 m+ r. ?( C* I5 s
    │          │  ├─4.0
% G; g# c0 g2 z; l( h+ v+ H    │          │  │  ├─fileChanges" v7 e5 {0 d. C- w& }: g
    │          │  │  │      last-build.bin
; U9 T5 M$ n& w    │          │  │  │      4 ^' \7 e( p; n# b2 W/ I
    │          │  │  └─fileHashes
+ u# b" {; n  Y& E+ y# H    │          │  │          fileHashes.bin
6 G. D; i. U$ E+ _    │          │  │          fileHashes.lock
9 I* {, B1 U1 ^2 l) ~    │          │  │         
5 P! K0 H% _2 d4 u/ R    │          │  ├─4.4
  t' \" w- Z- n2 O" B: s2 z    │          │  │  ├─fileChanges
! u- ~7 x  _  H  p    │          │  │  │      last-build.bin# m2 d# p- Z1 L9 s% I# D2 [+ i
    │          │  │  │      $ [/ c/ |3 @/ d" p( P1 s
    │          │  │  ├─fileHashes
" r, a. ^7 C% s' R' ]    │          │  │  │      fileHashes.bin1 v: Q& v. [7 L3 Z6 M# f/ ^
    │          │  │  │      fileHashes.lock4 l( u* }4 ]+ g" I$ S8 |: e
    │          │  │  │      2 `, ?/ s( g- u. k! ]
    │          │  │  └─taskHistory; _/ q& x1 D6 f0 x3 M
    │          │  │          taskHistory.bin: k& F7 e/ a0 X" `" h$ e
    │          │  │          taskHistory.lock
3 r5 j- j  R  ?& i( n/ Z6 X    │          │  │         
  g, e: g- C% ?    │          │  └─buildOutputCleanup
* z/ t$ ~& Z8 r+ X! f9 v/ a2 r    │          │          built.bin7 y0 c0 {. i4 A( `8 o3 F
    │          │          cache.properties1 R) k+ W. r1 N! e% w
    │          │          cache.properties.lock$ i9 u; r4 b7 ]
    │          │         
& L' F0 e9 L+ i' E5 S9 @    │          ├─.idea
; ?5 ?9 d8 C) X; O    │          │  │  compiler.xml* z2 L1 C  \( D; f. u
    │          │  │  encodings.xml  R& J4 |) A, `9 W, r7 F
    │          │  │  gradle.xml
4 m2 U+ s' S- ?( r2 O( d    │          │  │  misc.xml+ ?: k7 r1 y+ w0 I8 a: L! e: n
    │          │  │  workspace.xml% g/ A, {4 o$ G$ C* j
    │          │  │  - @' m+ v6 E8 a" v
    │          │  └─modules
4 W* V" t2 }3 x. W8 m( X: ?    │          │          a.txt
! e) b  C/ J" d3 T' e  ^; M/ d    │          │          note.txt
7 V2 e% u  D( H' @! q    │          │          Note_blockchain1_main.iml* q; ^% K" N1 {6 y% A: t  R
    │          │          Note_blockchain1_test.iml
. C" u% O7 {8 F9 |, Y1 z1 u% V1 j0 L    │          │         
0 Y4 I' l& |1 }9 P    │          ├─build
2 m7 h5 W! b' A8 Z4 z/ S    │          │  └─kotlin-build3 s5 L) U7 }  S! t/ ~
    │          │          version.txt# y7 W( H# e0 D' H
    │          │          * l$ m% ], e" N; c
    │          ├─gradle
+ o! s# }2 f2 _. V# Z& B5 p    │          │  └─wrapper! C( ]( u4 K. }2 q
    │          │          gradle-wrapper.jar) V2 e/ A2 \6 c* N, f2 [0 x: n
    │          │          gradle-wrapper.properties
( I' B3 f: j8 D9 Z& \  l7 v    │          │          6 V% d) s* k" G+ S
    │          ├─out% T0 P/ J& X% P$ a" k! Y  I
    │          │  ├─production
& j) m% l4 t. G! r    │          │  │  └─classes# x5 P8 V7 @+ {
    │          │  │      │  addGenesis.html$ d0 R/ [. k6 X+ R9 n
    │          │  │      │  addNote.html' `6 q( O/ |) A  @0 @! X. `3 [
    │          │  │      │  addTansaction.html3 F  w: I! I$ ~; c
    │          │  │      │  DecryptJsResultKt.class; T* |* A8 }. G
    │          │  │      │  HashUtil.class0 h5 b0 C* Z  |0 }- ~" s0 d
    │          │  │      │  MyClient.class" e$ L) E' i; b/ M) x
    │          │  │      │  MyServer.class
* [# D6 P: H" Y% y* b& [) u/ b    │          │  │      │  NoteServerKt$main$1.class
! p* H; E" Q! w7 g5 D    │          │  │      │  NoteServerKt$main$2$1$1.class# T! h# s) p' o
    │          │  │      │  NoteServerKt$main$2$1$2.class" D3 ?, ~7 ?5 _6 i( e- {7 \; @. x
    │          │  │      │  NoteServerKt$main$2$1$3.class9 N: l5 \+ e! d& D. O, O; [
    │          │  │      │  NoteServerKt$main$2$1$4.class4 N- |2 ~/ N9 j  f; v# j
    │          │  │      │  NoteServerKt$main$2$1$5.class
7 F8 v, ]) v9 P; E    │          │  │      │  NoteServerKt$main$2$1$6.class+ `3 X) L! D( Y7 x/ `6 D( q
    │          │  │      │  NoteServerKt$main$2$1.class# `  _' l! L  J, x& i/ M
    │          │  │      │  NoteServerKt$main$2.class# V8 _% J7 p/ S
    │          │  │      │  NoteServerKt.class
) w4 i$ t  X; z$ g: z! a7 G    │          │  │      │  RSAUtil.class
( w; ?' T# x- D- y2 Q4 B/ ^; z    │          │  │      │  TestKt.class
' k7 D7 p" C# q! K    │          │  │      │  
5 c1 D! p0 W) n8 U, e5 ~    │          │  │      ├─bean
8 Q8 F0 W1 x1 y, n& W- G    │          │  │      │      Block.class
, M6 v& h7 X/ L& s" m7 T    │          │  │      │      BroadBean.class
. H4 r! s6 v7 _: L    │          │  │      │      NewTransaction.class& F6 i0 b# J' Z/ o: s* r6 `. j: K
    │          │  │      │      NoteBook$loadFromDisk$result$1.class# C9 I( J: f8 K4 S3 A4 O+ ]+ v
    │          │  │      │      NoteBook.class
# n" L4 D  B9 E- u0 {- c( A    │          │  │      │      
& N& B( ~. Y1 ]# S& Y) |    │          │  │      ├─encode/ p4 N9 ?) ?6 Y3 l
    │          │  │      │      TestKt.class
3 }( _8 n+ m# j  |  @2 W    │          │  │      │      
# y: S+ s5 t4 c; Q    │          │  │      ├─js
  G3 G; ]  T7 k; K9 z4 T. P    │          │  │      │      hashes.min.js
5 F, c7 t6 D) J* I) a    │          │  │      │      jquery-3.3.1.min.js" E- j3 V* j3 v+ S$ N
    │          │  │      │      jsrsasign-all-min.js: @& q1 r5 [5 _3 Z& x, l1 X
    │          │  │      │      
" o. [( p$ A$ ]    │          │  │      ├─META-INF
; ^! ?, A- c  T+ F* S: u- ^2 @    │          │  │      │      Note_blockchain1_main.kotlin_module
7 D5 K9 r2 B# v0 f4 a    │          │  │      │      Note_blockchain3_main.kotlin_module) d/ ]) p! i9 R" l9 n
    │          │  │      │      9 ~$ ~) \* P+ R- z. ~7 [0 o$ |1 D
    │          │  │      └─translate. o' W- F" T5 w- E( Q
    │          │  │              Transaction.class
7 F' x; K# @) E. G9 Z, a, m    │          │  │              TranslateTestKt.class0 v: Z" k" s+ T5 \
    │          │  │              Wallet.class3 p* q, S2 {8 B: d* e. Y+ }
    │          │  │              0 q* }* L* t6 y: [
    │          │  └─test
6 b$ `2 G4 X0 r" M6 i    │          │      └─classes
* h1 l: W- r5 d- i5 a4 P3 n& ^1 u    │          │              TestHashUtil.class3 q, _% I) O% ~- D9 H0 N: [
    │          │              TestNote.class' Z6 s2 d2 V/ H9 p0 d
    │          │              
' x% `4 Z+ l3 N7 s# t7 `  j: o3 e    │          └─src
" S! ?+ V* k( |. d6 M    │              ├─main$ D. m( h$ T3 O
    │              │  ├─kotlin
: u+ w" _0 ^5 x. V/ `# Y7 c, O$ [    │              │  │  │  DecryptJsResult.kt
3 Q/ J  b( C7 m7 e! B    │              │  │  │  HashUtil.kt; O! ^! G5 f, \0 {3 d+ M  x) A
    │              │  │  │  NoteServer.kt3 B. W& m! N7 g  Z2 {4 y
    │              │  │  │  RSAUtil.kt8 p( u$ O/ [( O# A4 C
    │              │  │  │  Test.kt
5 c) N) P1 B; l, l- }    │              │  │  │  
: T! m5 K- ?: e3 `. e# O    │              │  │  ├─bean7 a. X; b, v& x3 M- K5 x
    │              │  │  │      BroadBean.kt( ]8 E' [, f" U2 F! [5 Q8 W
    │              │  │  │      NewTransaction.kt
, A: \  [* k$ A& Q4 X! X% X    │              │  │  │      NoteBook.kt4 I' c. \& {9 e) o
    │              │  │  │      
2 ]7 q+ L& [' Z    │              │  │  ├─encode( e4 e  C+ K* p# c
    │              │  │  │      Test.kt4 r# \) c- w2 i( D' z
    │              │  │  │      
+ b! u! c( m  Q1 y$ `* S    │              │  │  ├─translate- Z# h  x  u" f/ @$ t' c
    │              │  │  │      TranslateTest.kt
4 D' A/ R, e1 x9 _4 E' c7 G    │              │  │  │      ( O0 _( |: w/ E2 z9 G% I
    │              │  │  └─websocket1 H7 N. z( J/ o' A# ]0 V
    │              │  │          LaucnClient.kt4 y' X, w, L6 m" g/ m2 j; o% h+ E
    │              │  │          MyClient.kt
+ u, N9 h7 \# X# }    │              │  │          MyServer.kt6 a+ k. n& n2 H
    │              │  │          ( N, X  f4 V  J3 G
    │              │  └─resources
$ S! t/ A  O. o. G- Q' j    │              │      │  addGenesis.html
6 A9 i$ y6 V8 J% n$ i    │              │      │  addNote.html
$ E" y% |0 H2 k4 \    │              │      │  addTansaction.html0 \; D+ c* i# j& E0 n' J/ \* {4 Q
    │              │      │  8 D: I; p1 U* }' B! f$ n' R
    │              │      └─js% C0 E" a. G( N
    │              │              hashes.min.js
$ Y' t: v, N! ^    │              │              jquery-3.3.1.min.js! }. t6 E- ]2 ]: x% t: |7 @; @
    │              │              jsrsasign-all-min.js. y- W* |! i0 T* k# w0 @
    │              │              ; M1 d; ^2 |9 t+ I/ P
    │              └─test" W( j8 t+ y! Q3 a
    │                  └─kotlin6 f4 O! h) }- B1 ?6 O5 ^  t2 G' v
    │                          TestHashUtil.kt
2 H6 d. `& A1 V% c- d  d    │                          TestNote.kt- u0 L5 ^1 H3 o
    │                          
- |; @' h6 e" \1 X$ L$ h1 V" a    ├─06_nodejs课程; T7 B, Y* v4 ]( i2 i
    │      day01.md
9 j  o$ b7 v& p# E' K8 w    │      day02.md
' ?. f' ]/ A' L0 X    │      day03.md* L9 l3 Q/ j) L% u8 s1 w* s, ]
    │      day04.md0 I/ M- ^2 L+ ~/ U- L- f- c
    │      day05.md& S5 U; s# F6 _  J: I1 @
    │      day06.md9 v0 n( Z1 e4 M6 M+ I9 Q- U! W% g4 J
    │      2 _$ n' D* k1 m, X" g
    ├─07_以太坊和智能合约项目实战; R! _8 g' a5 H5 E
    │  │  day01.md! z6 S1 N/ }3 d7 ]
    │  │  day02.md
: F3 i  D1 H4 T9 R    │  │  day03.md/ U; D1 Y6 ?: g" C' C4 @
    │  │  day04.md# C" G" u! T8 B5 E
    │  │  day05.md
/ @/ V" c, D+ F( |    │  │  * T, N; i- v, z& x" |
    │  └─视频
% ^, F, U8 Q1 @: Y) ^: L3 q    │          视频下载.md7 l% _3 O! j, x5 e) u
    │         
+ q5 S3 c, R# O' p/ G9 a    ├─tools
0 x+ c( V: @9 @1 T4 T2 [    │      bootstrap.sh
8 \  ?5 o  y2 u6 E+ ~, S    │      3 V% z5 _& Q% x0 C! [
    └─课程表. O2 s5 i6 j3 e, E4 H6 c6 W
            readme.md
  q' H0 u/ C: \2 C
  K# M: e4 f) ~& F- H; C- J: F0 U; Q6 P& ~3 S) v7 n
' t6 K2 W4 m" @8 y9 B% x* ~
游客,如果您要查看本帖隐藏内容请回复
: |* h: x. F" A8 U: g

8 C  }3 w3 `5 n* F! g& y+ H) d

IT充电站 - 免责声明

1、站内所有资源来源于网络用户分享,版权归原作者及其网站所有,本站不拥有此类资源的版权,不对任何资源负法律责任。
2、本站仅为资源分享的平台,站内资源仅供会员参考和学习之用,不得用于其他非法用途,请下载后24小时内从您的电脑中彻底删除。否则,一切后果请用户自负。
3、本站会员均可发帖,转载及发布的内容纯属会员个人意见,与本论坛立场无关。严禁在本站发布反动、色情、广告等不良信息及违法内容。
4、IT充电站论坛作为网络服务提供者,由于网站信息量巨大,对非法转载、盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,IT充电站论坛负有移除非法转载和盗版内容以及停止继续传播的义务。
5、IT充电站论坛在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
6、IT充电站论坛为用户免费分享产生,如本文内容侵犯到任何版权问题侵犯了您的权益,请联系QQ网站客服 提供侵权链接与权益证明,我们将尽快处理。
7、凡登陆本网站或直接、间接使用本站资料者,应仔细阅读声明,一旦使用本站任何资源,即被视为您已接受本站的免责声明。
8、一经注册为本站会员,一律视为同意网站规定,本站管理有权禁止违规用户
9、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和IT充电站的同意
10、若发现链接失效了请点此进行链接失效反馈,我们会第一时间修复链接


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入我们:共同分享全网最新IT教程资源

官方微信

官方微店

联系QQ:

1022602116

声明:内容均来自于网络,如有侵权行为请发送QQ邮件或者直接Q我

我们将在第一时间删除!因我们给你带来了困扰,我们非常的抱歉!

微信号:xxwm2048 Email:1022602116@qq.com

Powered by Discuz! X3.4© 2016-2019 Comsenz Inc.